diff options
author | Brian Paul <[email protected]> | 2010-12-08 19:00:32 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2010-12-08 19:00:32 -0700 |
commit | 0be042cb4d256393750f7060d79bdaa2cd47d72e (patch) | |
tree | ad153fb00ece82c16d80d8269d9a8bbeb75bad7d /src/gallium/auxiliary/draw/draw_vs_exec.c | |
parent | 691048a22acf930e263711cf206e792a1b52f342 (diff) |
draw: setup instance ID for VS interpreter
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_vs_exec.c')
-rw-r--r-- | src/gallium/auxiliary/draw/draw_vs_exec.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/draw/draw_vs_exec.c b/src/gallium/auxiliary/draw/draw_vs_exec.c index dab3eb1ca8e..08608b480e0 100644 --- a/src/gallium/auxiliary/draw/draw_vs_exec.c +++ b/src/gallium/auxiliary/draw/draw_vs_exec.c @@ -99,6 +99,12 @@ vs_exec_run_linear( struct draw_vertex_shader *shader, tgsi_exec_set_constant_buffers(machine, PIPE_MAX_CONSTANT_BUFFERS, constants, const_size); + if (shader->info.uses_instanceid) { + unsigned i = machine->SysSemanticToIndex[TGSI_SEMANTIC_INSTANCEID]; + assert(i < Elements(machine->SystemValue)); + machine->SystemValue[i][0] = shader->draw->instance_id; + } + for (i = 0; i < count; i += MAX_TGSI_VERTICES) { unsigned int max_vertices = MIN2(MAX_TGSI_VERTICES, count - i); |