r600g: try to fix streamout for the cases where BURST_COUNT > 0
authorMarek Olšák <maraeo@gmail.com>
Wed, 19 Dec 2012 15:59:45 +0000 (16:59 +0100)
committerMarek Olšák <maraeo@gmail.com>
Thu, 20 Dec 2012 16:13:12 +0000 (17:13 +0100)
The burst was incorrectly used, because ELEM_SIZE was always 0.
I don't know if the burst works, because I don't know of any test
which uses it.

NOTE: This is a candidate for the stable branches.

Reviewed-by: Dave Airlie <airlied@redhat.com>
src/gallium/drivers/r600/r600_shader.c

index 55b5db3b0c16f8966c0c96a04ba8bc7916e2be41..470a3458c04587c5259c4a13f6d960d5df8a9af6 100644 (file)
@@ -1587,7 +1587,7 @@ static int r600_shader_from_tgsi(struct r600_screen *rscreen,
 
                        memset(&output, 0, sizeof(struct r600_bytecode_output));
                        output.gpr = so_gpr[i];
-                       output.elem_size = 0;
+                       output.elem_size = so.output[i].num_components;
                        output.array_base = so.output[i].dst_offset - so.output[i].start_component;
                        output.type = V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_WRITE;
                        output.burst_count = 1;