Module: Mesa
Branch: staging/22.2
Commit: c9d05409aeebd79eadf6721d12324a116d62bfa6
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c9d05409aeebd79eadf6721d12324a116d62bfa6

Author: Dave Airlie <[email protected]>
Date:   Thu Sep  1 11:37:27 2022 +1000

llvmpipe: finish rendering before flushing frontbuffer resources.

Fixes misrendering on front with mesa demos

Cc: mesa-stable
Reviewed-By: Mike Blumenkrantz <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18360>
(cherry picked from commit 91dcadf95690c658b34b20cf5dbf77f79c1cf297)

---

 .pick_status.json                        | 2 +-
 src/gallium/drivers/llvmpipe/lp_screen.c | 6 +++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index 07719bbff53..055df55fac1 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -7213,7 +7213,7 @@
         "description": "llvmpipe: finish rendering before flushing frontbuffer 
resources.",
         "nominated": true,
         "nomination_type": 0,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": null
     },
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c 
b/src/gallium/drivers/llvmpipe/lp_screen.c
index ebaa8326697..55ee39b201f 100644
--- a/src/gallium/drivers/llvmpipe/lp_screen.c
+++ b/src/gallium/drivers/llvmpipe/lp_screen.c
@@ -51,6 +51,7 @@
 #include "lp_limits.h"
 #include "lp_rast.h"
 #include "lp_cs_tpool.h"
+#include "lp_flush.h"
 
 #include "frontend/sw_winsys.h"
 
@@ -832,8 +833,11 @@ llvmpipe_flush_frontbuffer(struct pipe_screen *_screen,
    struct llvmpipe_resource *texture = llvmpipe_resource(resource);
 
    assert(texture->dt);
-   if (texture->dt)
+
+   if (texture->dt) {
+      llvmpipe_flush_resource(_pipe, resource, 0, true, true, false, 
"frontbuffer");
       winsys->displaytarget_display(winsys, texture->dt, context_private, 
sub_box);
+   }
 }
 
 static void

Reply via email to