summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland Scheidegger <sroland@vmware.com>2014-08-07 18:37:42 +0200
committerRoland Scheidegger <sroland@vmware.com>2014-08-08 18:54:07 +0200
commit92a059d294501380d1acce793ce1a97002982147 (patch)
tree46d66e8b6158fc551ac985ff86de76322f956f11
parentec73778f1fd6e14623422d62605fc69dc8fb7aa4 (diff)
downloadexternal_mesa3d-92a059d294501380d1acce793ce1a97002982147.zip
external_mesa3d-92a059d294501380d1acce793ce1a97002982147.tar.gz
external_mesa3d-92a059d294501380d1acce793ce1a97002982147.tar.bz2
draw: fix prim id float cast for non-llvm path
These values are always uints, casting them to floats does no good. Fixes piglit glsl-1.50-geometry-primitive-id-restart tests for softpipe. Reviewed-by: Brian Paul <brianp@vmware.com>
-rw-r--r--src/gallium/auxiliary/draw/draw_gs.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/gallium/auxiliary/draw/draw_gs.c b/src/gallium/auxiliary/draw/draw_gs.c
index f622822..2b6d2a0 100644
--- a/src/gallium/auxiliary/draw/draw_gs.c
+++ b/src/gallium/auxiliary/draw/draw_gs.c
@@ -144,14 +144,10 @@ static void tgsi_fetch_gs_input(struct draw_geometry_shader *shader,
for (slot = 0, vs_slot = 0; slot < shader->info.num_inputs; ++slot) {
unsigned idx = i * TGSI_EXEC_MAX_INPUT_ATTRIBS + slot;
if (shader->info.input_semantic_name[slot] == TGSI_SEMANTIC_PRIMID) {
- machine->Inputs[idx].xyzw[0].f[prim_idx] =
- (float)shader->in_prim_idx;
- machine->Inputs[idx].xyzw[1].f[prim_idx] =
- (float)shader->in_prim_idx;
- machine->Inputs[idx].xyzw[2].f[prim_idx] =
- (float)shader->in_prim_idx;
- machine->Inputs[idx].xyzw[3].f[prim_idx] =
- (float)shader->in_prim_idx;
+ machine->Inputs[idx].xyzw[0].u[prim_idx] = shader->in_prim_idx;
+ machine->Inputs[idx].xyzw[1].u[prim_idx] = shader->in_prim_idx;
+ machine->Inputs[idx].xyzw[2].u[prim_idx] = shader->in_prim_idx;
+ machine->Inputs[idx].xyzw[3].u[prim_idx] = shader->in_prim_idx;
} else {
vs_slot = draw_gs_get_input_index(
shader->info.input_semantic_name[slot],