summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/tgsi
diff options
context:
space:
mode:
authorZack Rusin <zackr@vmware.com>2009-12-24 08:15:29 -0500
committerZack Rusin <zackr@vmware.com>2009-12-25 05:52:19 -0500
commit49155c3264d019869fadde50ff6167a369e966b6 (patch)
tree57d7d768631323062253f1ddc2a74a35842b993c /src/gallium/auxiliary/tgsi
parentafd01366b098bf790658e069caddb7a930da827d (diff)
draw/tgsi: fix geometry shader input/output swizzling
Diffstat (limited to 'src/gallium/auxiliary/tgsi')
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_exec.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c
index e2f28783cc2..ba89f2fbc3c 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c
@@ -292,6 +292,14 @@ tgsi_exec_machine_bind_shader(
* sizeof(struct tgsi_full_declaration));
maxDeclarations += 10;
}
+ if (parse.FullToken.FullDeclaration.Declaration.File == TGSI_FILE_OUTPUT) {
+ unsigned reg;
+ for (reg = parse.FullToken.FullDeclaration.Range.First;
+ reg <= parse.FullToken.FullDeclaration.Range.Last;
+ ++reg) {
+ ++mach->NumOutputs;
+ }
+ }
memcpy(declarations + numDeclarations,
&parse.FullToken.FullDeclaration,
sizeof(declarations[0]));
@@ -1471,7 +1479,7 @@ store_dest(
dst = &mach->Outputs[offset + index].xyzw[chan_index];
#if 0
if (TGSI_PROCESSOR_GEOMETRY == mach->Processor) {
- fprintf(stderr, "STORING OUT[%d] mask(%d), = (", index, execmask);
+ fprintf(stderr, "STORING OUT[%d] mask(%d), = (", offset + index, execmask);
for (i = 0; i < QUAD_SIZE; i++)
if (execmask & (1 << i))
fprintf(stderr, "%f, ", chan->f[i]);