[PATCH xserver 4/5] modesetting: Call xf86CursorResetCursor on modeset

Michel Dänzer michel at daenzer.net
Mon Dec 21 01:39:56 PST 2015


From: Michel Dänzer <michel.daenzer at amd.com>

This will switch from HW cursor to SW cursor in the following cases:
* A transform is present on a CRTC
* This screen is a GPU screen acting as an output slave for another
  screen

Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
 hw/xfree86/drivers/modesetting/drmmode_display.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c b/hw/xfree86/drivers/modesetting/drmmode_display.c
index 4f0a415..e440b0d 100644
--- a/hw/xfree86/drivers/modesetting/drmmode_display.c
+++ b/hw/xfree86/drivers/modesetting/drmmode_display.c
@@ -334,6 +334,7 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
                        Rotation rotation, int x, int y)
 {
     ScrnInfoPtr pScrn = crtc->scrn;
+    ScreenPtr pScreen = pScrn->pScreen;
     xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(crtc->scrn);
     drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
     drmmode_ptr drmmode = drmmode_crtc->drmmode;
@@ -451,11 +452,11 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
         }
     }
 
-#if 0
-    if (pScrn->pScreen &&
-        !xf86ReturnOptValBool(info->Options, OPTION_SW_CURSOR, FALSE))
-        xf86_reload_cursors(pScrn->pScreen);
-#endif
+    if (pScreen->isGPU && pScreen->current_master)
+        xf86CursorResetCursor(pScreen->current_master);
+    else
+        xf86CursorResetCursor(pScreen);
+
  done:
     if (!ret) {
         crtc->x = saved_x;
-- 
2.6.2



More information about the xorg-devel mailing list