r600g: fix streamout on evergreen
authorVadim Girlin <vadimgirlin@gmail.com>
Wed, 18 Jan 2012 09:46:26 +0000 (13:46 +0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 20 Jan 2012 20:10:39 +0000 (15:10 -0500)
Enable it in the evergreen_context_draw if needed.
Same as already done in the r600_context_draw for r6xx/r7xx.

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
src/gallium/drivers/r600/evergreen_hw_context.c

index e75eaf2b79f52036e2972f626956ec17c0bb626f..9401d823166c95266ae29df1fbf95f7238a0f73f 100644 (file)
@@ -1168,6 +1168,12 @@ void evergreen_context_draw(struct r600_context *ctx, const struct r600_draw *dr
                r600_context_block_resource_emit_dirty(ctx, dirty_block);
        }
 
+       /* Enable stream out if needed. */
+       if (ctx->streamout_start) {
+               r600_context_streamout_begin(ctx);
+               ctx->streamout_start = FALSE;
+       }
+
        /* draw packet */
        pm4 = &ctx->pm4[ctx->pm4_cdwords];
        pm4[0] = PKT3(PKT3_INDEX_TYPE, 0, ctx->predicate_drawing);