summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/auxiliary/draw/draw_gs.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/gallium/auxiliary/draw/draw_gs.c b/src/gallium/auxiliary/draw/draw_gs.c
index 99335af12d3..e605965fd87 100644
--- a/src/gallium/auxiliary/draw/draw_gs.c
+++ b/src/gallium/auxiliary/draw/draw_gs.c
@@ -172,6 +172,7 @@ draw_geometry_fetch_outputs(struct draw_geometry_shader *shader,
{
struct tgsi_exec_machine *machine = shader->machine;
unsigned prim_idx, j, slot;
+ unsigned current_idx = 0;
float (*output)[4];
output = *p_output;
@@ -184,9 +185,8 @@ draw_geometry_fetch_outputs(struct draw_geometry_shader *shader,
shader->primitive_lengths[prim_idx + shader->emitted_primitives] =
machine->Primitives[prim_idx];
shader->emitted_vertices += num_verts_per_prim;
- for (j = 0; j < num_verts_per_prim; j++) {
- int idx = (prim_idx * num_verts_per_prim + j) *
- shader->info.num_outputs;
+ for (j = 0; j < num_verts_per_prim; j++, current_idx++) {
+ int idx = current_idx * shader->info.num_outputs;
#ifdef DEBUG_OUTPUTS
debug_printf("%d) Output vert:\n", idx / shader->info.num_outputs);
#endif
@@ -208,7 +208,7 @@ draw_geometry_fetch_outputs(struct draw_geometry_shader *shader,
}
}
*p_output = output;
- shader->emitted_primitives += num_primitives;
+ shader->emitted_primitives += num_primitives;
}
/*#define DEBUG_INPUTS 1*/