aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndres Rodriguez <[email protected]>2019-09-10 14:30:35 -0400
committerMarge Bot <[email protected]>2020-01-17 17:15:52 +0000
commit51de5d5ac65ebeaaebe716291be19fd36692f5cb (patch)
tree54a58363546f6cd3013a1cb8809df54adae99fca
parentad820d5aca1b5d2133a7e7bd380c91401cd1c1e3 (diff)
vulkan/wsi: disable the hardware cursor
Ensure the hardware cursor is disabled when we set the mode for a VkDisplayKHR object. The extension doesn't expose any mechanisms to program the hardware cursor, so we need to ensure it is hidden. Currently, it seems like X is responsible for disabling the cursor before handing over the lease. But that seems a little frail, and we should be disabling the cursor ourselves so it works correctly independently of how the lease was prepared for us. Signed-off-by: Andres Rodriguez <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/1922> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/1922>
-rw-r--r--src/vulkan/wsi/wsi_common_display.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/vulkan/wsi/wsi_common_display.c b/src/vulkan/wsi/wsi_common_display.c
index 04c77162df4..0f9a1ffe8d3 100644
--- a/src/vulkan/wsi/wsi_common_display.c
+++ b/src/vulkan/wsi/wsi_common_display.c
@@ -1687,6 +1687,15 @@ _wsi_display_queue_next(struct wsi_swapchain *drv_chain)
&connector->id, 1,
&connector->current_drm_mode);
if (ret == 0) {
+ /* Disable the HW cursor as the app doesn't have a mechanism
+ * to control it.
+ * Refer to question 12 of the VK_KHR_display spec.
+ */
+ ret = drmModeSetCursor(wsi->fd, connector->crtc_id, 0, 0, 0 );
+ if (ret != 0) {
+ wsi_display_debug("failed to hide cursor err %d %s\n", ret, strerror(-ret));
+ }
+
/* Assume that the mode set is synchronous and that any
* previous image is now idle.
*/