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