[PATCH] modesetting: flush glamor before flushinh dirty rects to kernel

Dave Airlie airlied at gmail.com
Thu Jan 22 21:56:34 PST 2015


From: Dave Airlie <airlied at redhat.com>

Some kernel drivers require notification that the frontbuffer
has changed, so we add a damage collector and send the dirty
rects in the block handler. It appears the glamor block
handler was getting called after this one, leading to things
getting out of sync.

I found this while trying to bring up glamor on virgl.

Signed-off-by: Dave Airlie <airlied at redhat.com>
---
 hw/xfree86/drivers/modesetting/driver.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c
index 1cb0c7c..caf8f26 100644
--- a/hw/xfree86/drivers/modesetting/driver.c
+++ b/hw/xfree86/drivers/modesetting/driver.c
@@ -539,6 +539,8 @@ msBlockHandler(ScreenPtr pScreen, void *pTimeout, void *pReadmask)
     pScreen->BlockHandler = ms->BlockHandler;
     pScreen->BlockHandler(pScreen, pTimeout, pReadmask);
     pScreen->BlockHandler = msBlockHandler;
+    if (ms->drmmode.glamor == TRUE)
+        glamor_block_handler(pScreen);
     if (pScreen->isGPU)
         dispatch_slave_dirty(pScreen);
     else if (ms->dirty_enabled)
-- 
1.9.3



More information about the xorg-devel mailing list