summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2012-06-14 22:25:50 +0200
committerMarek Olšák <[email protected]>2012-06-15 22:43:00 +0200
commitf01594be0ee34758fc62274b9e967a2a4c3595df (patch)
treef0c4accaf36c23a6ff703addd5c82885706666f6
parentbb07e251318d1b224fb78fc0bd4200216c42a5cf (diff)
r600g: compute CS space for streamout correctly, add comments
SET_CONTEXT_REG was not counted in. Reviewed-by: Alex Deucher <[email protected]>
-rw-r--r--src/gallium/drivers/r600/r600_hw_context.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/gallium/drivers/r600/r600_hw_context.c b/src/gallium/drivers/r600/r600_hw_context.c
index 0fed95c576c..1b1c6f4af65 100644
--- a/src/gallium/drivers/r600/r600_hw_context.c
+++ b/src/gallium/drivers/r600/r600_hw_context.c
@@ -1324,15 +1324,16 @@ void r600_context_streamout_begin(struct r600_context *ctx)
ctx->num_cs_dw_streamout_end =
12 + /* flush_vgt_streamout */
- util_bitcount(buffer_en) * 8 +
- 3;
+ util_bitcount(buffer_en) * 8 + /* STRMOUT_BUFFER_UPDATE */
+ 3 /* set_streamout_enable(0) */;
r600_need_cs_space(ctx,
12 + /* flush_vgt_streamout */
- 6 + /* enables */
- util_bitcount(buffer_en & ctx->streamout_append_bitmask) * 8 +
- util_bitcount(buffer_en & ~ctx->streamout_append_bitmask) * 6 +
- (ctx->family > CHIP_R600 && ctx->family < CHIP_RV770 ? 2 : 0) +
+ 6 + /* set_streamout_enable */
+ util_bitcount(buffer_en) * 7 + /* SET_CONTEXT_REG */
+ util_bitcount(buffer_en & ctx->streamout_append_bitmask) * 8 + /* STRMOUT_BUFFER_UPDATE */
+ util_bitcount(buffer_en & ~ctx->streamout_append_bitmask) * 6 + /* STRMOUT_BUFFER_UPDATE */
+ (ctx->family > CHIP_R600 && ctx->family < CHIP_RV770 ? 2 : 0) + /* SURFACE_BASE_UPDATE */
ctx->num_cs_dw_streamout_end, TRUE);
if (ctx->chip_class >= EVERGREEN) {