60 lines
2.1 KiB
Diff
60 lines
2.1 KiB
Diff
From 58d357db299116657b468db9565c0e431bb7ea29 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <mdaenzer@redhat.com>
|
|
Date: Tue, 26 Nov 2019 17:14:46 +0100
|
|
Subject: [PATCH xserver 1/3] modesetting: Call glamor_finish from
|
|
drmmode_crtc_set_mode
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
This makes sure any pending drawing to a new scanout buffer will be
|
|
visible from the start.
|
|
|
|
This makes the finish call in drmmode_copy_fb superfluous, so remove it.
|
|
|
|
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
|
(Cherry picked from commit c66c548eabf06835cb0cb906598fb87c7bb30cf4)
|
|
|
|
Signed-off-by: Michel Dänzer <mdaenzer@redhat.com>
|
|
---
|
|
hw/xfree86/drivers/modesetting/drmmode_display.c | 9 +++++++--
|
|
1 file changed, 7 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c b/hw/xfree86/drivers/modesetting/drmmode_display.c
|
|
index 336f7686e..8786d13a3 100644
|
|
--- a/hw/xfree86/drivers/modesetting/drmmode_display.c
|
|
+++ b/hw/xfree86/drivers/modesetting/drmmode_display.c
|
|
@@ -754,6 +754,7 @@ drmmode_crtc_set_mode(xf86CrtcPtr crtc, Bool test_only)
|
|
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(crtc->scrn);
|
|
drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
|
|
drmmode_ptr drmmode = drmmode_crtc->drmmode;
|
|
+ ScreenPtr screen = crtc->scrn->pScreen;
|
|
drmModeModeInfo kmode;
|
|
int output_count = 0;
|
|
uint32_t *output_ids = NULL;
|
|
@@ -764,6 +765,12 @@ drmmode_crtc_set_mode(xf86CrtcPtr crtc, Bool test_only)
|
|
if (!drmmode_crtc_get_fb_id(crtc, &fb_id, &x, &y))
|
|
return 1;
|
|
|
|
+#ifdef GLAMOR_HAS_GBM
|
|
+ /* Make sure any pending drawing will be visible in a new scanout buffer */
|
|
+ if (drmmode->glamor)
|
|
+ glamor_finish(screen);
|
|
+#endif
|
|
+
|
|
if (ms->atomic_modeset) {
|
|
drmModeAtomicReq *req = drmModeAtomicAlloc();
|
|
Bool active;
|
|
@@ -1452,8 +1459,6 @@ drmmode_copy_fb(ScrnInfoPtr pScrn, drmmode_ptr drmmode)
|
|
|
|
FreeScratchGC(gc);
|
|
|
|
- glamor_finish(pScreen);
|
|
-
|
|
pScreen->canDoBGNoneRoot = TRUE;
|
|
|
|
if (drmmode->fbcon_pixmap)
|
|
--
|
|
2.24.0
|
|
|