r600g: fix combined MEM_STREAM instructions
authorVadim Girlin <vadimgirlin@gmail.com>
Wed, 18 Jan 2012 19:17:29 +0000 (23:17 +0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 20 Jan 2012 20:09:42 +0000 (15:09 -0500)
BURST_COUNT is clipped with ARRAY_SIZE, so set it to the max value
to avoid clipping.

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

index 5819c2bc1a0004f7c9257612c7fdd97a1b084b01..cfcca36cb25ee04bd1a1f299cc47330822d87d7d 100644 (file)
@@ -1014,7 +1014,9 @@ static int r600_shader_from_tgsi(struct r600_pipe_context * rctx, struct r600_pi
                        output.type = V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_WRITE;
                        output.burst_count = 1;
                        output.barrier = 1;
-                       output.array_size = 0;
+                       /* array_size is an upper limit for the burst_count
+                        * with MEM_STREAM instructions */
+                       output.array_size = 0xFFF;
                        output.comp_mask = (1 << so.output[i].num_components) - 1;
                        if (ctx.bc->chip_class >= EVERGREEN) {
                                switch (so.output[i].output_buffer) {