Mesa (master): tgsi/exec: fix system value handling.
Dave Airlie
airlied at kemper.freedesktop.org
Tue Apr 26 22:27:36 UTC 2016
Module: Mesa
Branch: master
Commit: 9013d9267ce11efc9b841816630b34cbe8820d1d
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9013d9267ce11efc9b841816630b34cbe8820d1d
Author: Dave Airlie <airlied at redhat.com>
Date: Tue Apr 26 11:14:24 2016 +1000
tgsi/exec: fix system value handling.
a) SysSemanticToIndex needs to be indexed with the semantic name
not the decl->Declaration.Semantic.
b) doing this in run is too late, as the mappings are all setup
prior to run in the execs.
Reviewed-by: Brian Paul <brianp at vmware.com>
Signed-off-by: Dave Airlie <airlied at redhat.com>
---
src/gallium/auxiliary/tgsi/tgsi_exec.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c
index 4567a94..e8bb103 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c
@@ -964,6 +964,11 @@ tgsi_exec_machine_bind_shader(
++mach->NumOutputs;
}
}
+ else if (parse.FullToken.FullDeclaration.Declaration.File == TGSI_FILE_SYSTEM_VALUE) {
+ const struct tgsi_full_declaration *decl = &parse.FullToken.FullDeclaration;
+ mach->SysSemanticToIndex[decl->Semantic.Name] = decl->Range.First;
+ }
+
memcpy(declarations + numDeclarations,
&parse.FullToken.FullDeclaration,
sizeof(declarations[0]));
@@ -2777,9 +2782,6 @@ exec_declaration(struct tgsi_exec_machine *mach,
}
}
- if (decl->Declaration.File == TGSI_FILE_SYSTEM_VALUE) {
- mach->SysSemanticToIndex[decl->Declaration.Semantic] = decl->Range.First;
- }
}
typedef void (* micro_unary_op)(union tgsi_exec_channel *dst,
More information about the mesa-commit
mailing list