diff options
Diffstat (limited to 'src/mesa/drivers/dri/i965/gen6_sol.c')
-rw-r--r-- | src/mesa/drivers/dri/i965/gen6_sol.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/mesa/drivers/dri/i965/gen6_sol.c b/src/mesa/drivers/dri/i965/gen6_sol.c index 3cbf28e7dc4..bb2dd123930 100644 --- a/src/mesa/drivers/dri/i965/gen6_sol.c +++ b/src/mesa/drivers/dri/i965/gen6_sol.c @@ -184,11 +184,14 @@ brw_begin_transform_feedback(struct gl_context *ctx, GLenum mode, brw->sol.offset_0_batch_start = 0; if (intel->gen >= 7) { - /* Ask the kernel to reset the SO offsets for any previous transform - * feedback, so we start at the start of the user's buffer. (note: these - * are not the query counters) - */ - intel->batch.needs_sol_reset = true; + /* Reset the SOL buffer offset register. */ + for (int i = 0; i < 4; i++) { + BEGIN_BATCH(3); + OUT_BATCH(MI_LOAD_REGISTER_IMM | (3 - 2)); + OUT_BATCH(GEN7_SO_WRITE_OFFSET(i)); + OUT_BATCH(0); + ADVANCE_BATCH(); + } } } |