Commit b96313c0e1289b removed BRW_NEW_BLORP for a bunch of SURFACE_STATE
setup code, including render targets, on the basis that blorp invalidates
binding tables but not surface states, however, at least on Broadwell,
this seems to be causing a regression in a CTS test that seems related
to render target surface tracking, for which blorp does emit new surface
states.

Fixes:
KHR-GL45.transform_feedback.draw_xfb_test (on Broadwell)
---

Ken, my understanding of this is that blorp always needs to upload new
render target surfaces so we need to track BRW_NEW_BLORP and always
emit render target surfaces if that state is dirty. Makes sense?

It doesn't explain why the particular CTS tests that was regressing
because of this fails in Broadwell but not in Skylake though...

 src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c 
b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
index 1f89b72354..3a057a48c0 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
@@ -1029,7 +1029,8 @@ const struct brw_tracked_state brw_renderbuffer_surfaces 
= {
    .dirty = {
       .mesa = _NEW_BUFFERS |
               _NEW_COLOR,
-      .brw = BRW_NEW_BATCH,
+      .brw = BRW_NEW_BATCH |
+             BRW_NEW_BLORP,
    },
    .emit = update_renderbuffer_surfaces,
 };
@@ -1038,6 +1039,7 @@ const struct brw_tracked_state gen6_renderbuffer_surfaces 
= {
    .dirty = {
       .mesa = _NEW_BUFFERS,
       .brw = BRW_NEW_BATCH |
+             BRW_NEW_BLORP |
              BRW_NEW_FAST_CLEAR_COLOR,
    },
    .emit = update_renderbuffer_surfaces,
-- 
2.11.0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to