On 29/06/15 15:35, Tapani Pälli wrote:
Instead of using symbol table, build mask by inspecting IR. This
change is required by further patches to move resource list creation
to happen later when symbol table does not exist anymore.
Signed-off-by: Tapani Pälli <tapani.pa...@intel.com>
---
src/glsl/linker.cpp | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index 4a726d4..9be48f0 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -2591,9 +2591,14 @@ build_stageref(struct gl_shader_program *shProg, const
char *name)
struct gl_shader *sh = shProg->_LinkedShaders[i];
if (!sh)
continue;
- ir_variable *var = sh->symbols->get_variable(name);
- if (var)
- stages |= (1 << i);
+
It would be nice to add a comment here to say why you are using the ir
and not get_variable(). Something along the line:
/* A variable in sh->symbols->get_variable(name) may have been optimized
away by a driver-specific optimisation pass, let's inspect the IR
instead to avoid this problem. */
I am sure you can come up with a better comment :)
With a comment here, the whole series is:
Reviewed-by: Martin Peres <martin.pe...@linux.intel.com>
+ foreach_in_list(ir_instruction, node, sh->ir) {
+ ir_variable *var = node->as_variable();
+ if (var && strcmp(var->name, name) == 0) {
+ stages |= (1 << i);
+ break;
+ }
+ }
}
return stages;
}
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev