xf86-video-ati: Branch 'master'

Michel Dänzer daenzer at kemper.freedesktop.org
Mon Jan 18 01:49:05 PST 2016


 src/drmmode_display.c |   17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

New commits:
commit 9483a3d777919b224f70c3b4d01e4b320a57db31
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Fri Jan 15 16:48:46 2016 +0900

    Fix RandR CRTC transforms
    
    Currently, Xorg will only transform the cursor as of the first time the
    cursor image changes after a transform is set.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=80678
    
    Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 9880ee3..0424dbd 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -673,7 +673,6 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
 		crtc->x = x;
 		crtc->y = y;
 		crtc->rotation = rotation;
-		crtc->transformPresent = FALSE;
 
 		output_ids = calloc(sizeof(uint32_t), xf86_config->num_output);
 		if (!output_ids) {
@@ -839,6 +838,19 @@ drmmode_load_cursor_argb (xf86CrtcPtr crtc, CARD32 *image)
 		ptr[i] = cpu_to_le32(image[i]);
 }
 
+#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,15,99,903,0)
+
+static Bool drmmode_load_cursor_argb_check(xf86CrtcPtr crtc, CARD32 * image)
+{
+	/* Fall back to SW cursor if the CRTC is transformed */
+	if (crtc->transformPresent)
+		return FALSE;
+
+	drmmode_load_cursor_argb(crtc, image);
+	return TRUE;
+}
+
+#endif
 
 static void
 drmmode_hide_cursor (xf86CrtcPtr crtc)
@@ -995,6 +1007,9 @@ static xf86CrtcFuncsRec drmmode_crtc_funcs = {
     .show_cursor = drmmode_show_cursor,
     .hide_cursor = drmmode_hide_cursor,
     .load_cursor_argb = drmmode_load_cursor_argb,
+#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,15,99,903,0)
+    .load_cursor_argb_check = drmmode_load_cursor_argb_check,
+#endif
 
     .gamma_set = drmmode_crtc_gamma_set,
     .shadow_create = drmmode_crtc_shadow_create,


More information about the xorg-commit mailing list