On 25.07.2017 17:39, Marek Olšák wrote:
From: Marek Olšák <[email protected]>

This fixes the black Feral launcher window.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101867
---
  src/mesa/state_tracker/st_manager.c | 6 ++++++
  1 file changed, 6 insertions(+)

diff --git a/src/mesa/state_tracker/st_manager.c 
b/src/mesa/state_tracker/st_manager.c
index 834bcc9..ede5439 100644
--- a/src/mesa/state_tracker/st_manager.c
+++ b/src/mesa/state_tracker/st_manager.c
@@ -635,20 +635,26 @@ st_context_flush(struct st_context_iface *stctxi, 
unsigned flags,
     st_flush(st, fence, pipe_flags);
if ((flags & ST_FLUSH_WAIT) && fence) {
        st->pipe->screen->fence_finish(st->pipe->screen, NULL, *fence,
                                       PIPE_TIMEOUT_INFINITE);
        st->pipe->screen->fence_reference(st->pipe->screen, fence, NULL);
     }
if (flags & ST_FLUSH_FRONT)
        st_manager_flush_frontbuffer(st);
+
+   /* Enter st_validate_state in the next draw call to revalidate
+    * the framebuffer.
+    */
+   if (flags & ST_FLUSH_END_OF_FRAME)
+      st->gfx_shaders_may_be_dirty = true;

Why does this help? Which piece of state is changed from under us without properly updating the dirty flags? Also, why not one of the framebuffer-related flags? And is this always needed, or only if ST_FLUSH_FRONT?

Cheers,
Nicolai


  }
static boolean
  st_context_teximage(struct st_context_iface *stctxi,
                      enum st_texture_type tex_type,
                      int level, enum pipe_format pipe_format,
                      struct pipe_resource *tex, boolean mipmap)
  {
     struct st_context *st = (struct st_context *) stctxi;
     struct gl_context *ctx = st->ctx;



--
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to