summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2017-07-25 17:34:52 +0200
committerEmil Velikov <[email protected]>2017-08-03 00:19:05 +0100
commita1cb12b0a3ab8881bf1b7c8a8375b6bac3f7c71e (patch)
tree44ae2926face2f3a8edf12ba8dc625d0cfc49ba2 /src/mesa
parentff04dfc28ad8613a0bb7151d1dac79c143ca273e (diff)
st/mesa: always unconditionally revalidate main framebuffer after SwapBuffers
This fixes the black Feral launcher window. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101867 Cc: 17.2 <[email protected]> Tested-by: Edmondo Tommasina <[email protected]> (cherry picked from commit 7257c171e9eadc05903140cffa26a253f0d0178a)
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/state_tracker/st_manager.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c
index dec2c28f2ad..204fe974e9f 100644
--- a/src/mesa/state_tracker/st_manager.c
+++ b/src/mesa/state_tracker/st_manager.c
@@ -504,6 +504,16 @@ st_context_flush(struct st_context_iface *stctxi, unsigned flags,
if (flags & ST_FLUSH_FRONT)
st_manager_flush_frontbuffer(st);
+
+ /* DRI3 changes the framebuffer after SwapBuffers, but we need to invoke
+ * st_manager_validate_framebuffers to notice that.
+ *
+ * Set gfx_shaders_may_be_dirty to invoke st_validate_state in the next
+ * draw call, which will invoke st_manager_validate_framebuffers, but it
+ * won't dirty states if there is no change.
+ */
+ if (flags & ST_FLUSH_END_OF_FRAME)
+ st->gfx_shaders_may_be_dirty = true;
}
static boolean