mirror of
https://github.com/X11Libre/xf86-video-amdgpu.git
synced 2026-03-24 01:24:31 +00:00
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 (Ported from radeon commit 9483a3d777919b224f70c3b4d01e4b320a57db31) Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Michel Dänzer
parent
43af92ede0
commit
e4888df6e3
@@ -615,7 +615,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) {
|
||||
@@ -787,6 +786,20 @@ static void drmmode_load_cursor_argb(xf86CrtcPtr crtc, CARD32 * image)
|
||||
}
|
||||
}
|
||||
|
||||
#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)
|
||||
{
|
||||
ScrnInfoPtr pScrn = crtc->scrn;
|
||||
@@ -951,6 +964,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,
|
||||
|
||||
Reference in New Issue
Block a user