diff options
author | Brian Paul <brian.paul@tungstengraphics.com> | 2008-11-05 15:58:09 -0700 |
---|---|---|
committer | Brian Paul <brian.paul@tungstengraphics.com> | 2008-11-05 15:58:09 -0700 |
commit | 80a718a63bf2fa817e346f0f5731ee9ef2e0e68b (patch) | |
tree | 4a1bdb03ae8b8482b9a15e56c9604fcc34e95b0e /src/gallium/auxiliary/draw/draw_vs_sse.c | |
parent | 7115b79b77e541f3eb81db00f6f0c34a0f224feb (diff) | |
parent | de14fdd63f26a2e6fc55fad92c08966f269601a6 (diff) | |
download | external_mesa3d-80a718a63bf2fa817e346f0f5731ee9ef2e0e68b.zip external_mesa3d-80a718a63bf2fa817e346f0f5731ee9ef2e0e68b.tar.gz external_mesa3d-80a718a63bf2fa817e346f0f5731ee9ef2e0e68b.tar.bz2 |
Merge commit 'origin/gallium-0.1' into gallium-0.2
Conflicts:
src/gallium/auxiliary/rtasm/rtasm_execmem.c
src/mesa/shader/slang/slang_emit.c
src/mesa/shader/slang/slang_log.c
src/mesa/state_tracker/st_atom_framebuffer.c
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_vs_sse.c')
-rw-r--r-- | src/gallium/auxiliary/draw/draw_vs_sse.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/draw/draw_vs_sse.c b/src/gallium/auxiliary/draw/draw_vs_sse.c index b11ae31..0e2036f 100644 --- a/src/gallium/auxiliary/draw/draw_vs_sse.c +++ b/src/gallium/auxiliary/draw/draw_vs_sse.c @@ -99,9 +99,23 @@ vs_sse_run_linear( struct draw_vertex_shader *base, struct tgsi_exec_machine *machine = shader->machine; unsigned int i; + /* By default, execute all channels. XXX move this inside the loop + * below when we support shader conditionals/loops. + */ + tgsi_set_exec_mask(machine, 1, 1, 1, 1); + for (i = 0; i < count; i += MAX_TGSI_VERTICES) { unsigned int max_vertices = MIN2(MAX_TGSI_VERTICES, count - i); + if (max_vertices < 4) { + /* disable the unused execution channels */ + tgsi_set_exec_mask(machine, + 1, + max_vertices > 1, + max_vertices > 2, + 0); + } + /* run compiled shader */ shader->func(machine->Inputs, |