Blame SOURCES/0001-llvmpipe-finish-rendering-before-flushing-frontbuffe.patch
|
|
a7efb2 |
From 0db29ee48d4f4fd0858bcf7def39926e2ee19d63 Mon Sep 17 00:00:00 2001
|
|
|
a7efb2 |
From: Dave Airlie <airlied@redhat.com>
|
|
|
a7efb2 |
Date: Thu, 1 Sep 2022 11:37:27 +1000
|
|
|
a7efb2 |
Subject: [PATCH] llvmpipe: finish rendering before flushing frontbuffer
|
|
|
a7efb2 |
resources.
|
|
|
a7efb2 |
|
|
|
a7efb2 |
Fixes misrendering on front with mesa demos
|
|
|
a7efb2 |
---
|
|
|
a7efb2 |
src/gallium/drivers/llvmpipe/lp_screen.c | 6 +++++-
|
|
|
a7efb2 |
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
|
a7efb2 |
|
|
|
a7efb2 |
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c
|
|
|
a7efb2 |
index 333d7695ee7..0fcbcccedd2 100644
|
|
|
a7efb2 |
--- a/src/gallium/drivers/llvmpipe/lp_screen.c
|
|
|
a7efb2 |
+++ b/src/gallium/drivers/llvmpipe/lp_screen.c
|
|
|
a7efb2 |
@@ -51,6 +51,7 @@
|
|
|
a7efb2 |
#include "lp_limits.h"
|
|
|
a7efb2 |
#include "lp_rast.h"
|
|
|
a7efb2 |
#include "lp_cs_tpool.h"
|
|
|
a7efb2 |
+#include "lp_flush.h"
|
|
|
a7efb2 |
|
|
|
a7efb2 |
#include "frontend/sw_winsys.h"
|
|
|
a7efb2 |
|
|
|
a7efb2 |
@@ -835,8 +836,11 @@ llvmpipe_flush_frontbuffer(struct pipe_screen *_screen,
|
|
|
a7efb2 |
struct llvmpipe_resource *texture = llvmpipe_resource(resource);
|
|
|
a7efb2 |
|
|
|
a7efb2 |
assert(texture->dt);
|
|
|
a7efb2 |
- if (texture->dt)
|
|
|
a7efb2 |
+
|
|
|
a7efb2 |
+ if (texture->dt) {
|
|
|
a7efb2 |
+ llvmpipe_flush_resource(_pipe, resource, 0, true, true, false, "frontbuffer");
|
|
|
a7efb2 |
winsys->displaytarget_display(winsys, texture->dt, context_private, sub_box);
|
|
|
a7efb2 |
+ }
|
|
|
a7efb2 |
}
|
|
|
a7efb2 |
|
|
|
a7efb2 |
static void
|
|
|
a7efb2 |
--
|
|
|
a7efb2 |
2.31.1
|
|
|
a7efb2 |
|