[Mesa-dev] [PATCH 3/3] i965: Fix BRW_BATCH_STRUCT to specify RENDER_RING, not UNKNOWN_RING.

Kenneth Graunke kenneth at whitecape.org
Tue Nov 26 16:32:15 PST 2013

I missed this in the boolean -> enum conversion.  C cheerfully casts
false -> 0 -> UNKNOWN_RING.  On Gen4-5, this causes the render ring
prelude hook to get called in the middle of the batch, which is crazy.

BRW_BATCH_STRUCT is not used on Gen6+.

Fixes regressions since 395a32717df494353703f3581edcd3ba380f16d6
("i965: Introduce an UNKNOWN_RING state.").

Fixes "fips -v glxgears" on Ironlake.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Cc: Eric Anholt <eric at anholt.net>
 src/mesa/drivers/dri/i965/brw_state.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_state.h b/src/mesa/drivers/dri/i965/brw_state.h
index 2a4b23c..3f7831c 100644
--- a/src/mesa/drivers/dri/i965/brw_state.h
+++ b/src/mesa/drivers/dri/i965/brw_state.h
@@ -173,8 +173,8 @@ void brw_destroy_caches( struct brw_context *brw );
  * brw_state_batch.c
-#define BRW_BATCH_STRUCT(brw, s) intel_batchbuffer_data(brw, (s), \
-							sizeof(*(s)), false)
+#define BRW_BATCH_STRUCT(brw, s) \
+   intel_batchbuffer_data(brw, (s), sizeof(*(s)), RENDER_RING)
 void *brw_state_batch(struct brw_context *brw,
 		      enum state_struct_type type,

More information about the mesa-dev mailing list