summaryrefslogtreecommitdiffstats
path: root/src/glsl/linker.cpp
diff options
context:
space:
mode:
authorJordan Justen <[email protected]>2013-03-10 03:20:03 -0700
committerJordan Justen <[email protected]>2013-05-23 09:37:12 -0700
commit5ebf5473125d1e7ccf3636a0ca07d196550d2383 (patch)
treedd6c529e24892ae71192c2b228befdff01d2bc83 /src/glsl/linker.cpp
parentb24eeb078f3d24b9b90f32c93708aeabcad0a697 (diff)
glsl linker: remove interface block instance names
Convert interface blocks with instance names into flat interface blocks without an instance name. Signed-off-by: Jordan Justen <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/glsl/linker.cpp')
-rw-r--r--src/glsl/linker.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index dea58387160..c8d430caf57 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -1733,6 +1733,12 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
prog->LinkStatus = true;
}
+
+ for (unsigned int i = 0; i < MESA_SHADER_TYPES; i++) {
+ if (prog->_LinkedShaders[i] != NULL)
+ lower_named_interface_blocks(mem_ctx, prog->_LinkedShaders[i]);
+ }
+
/* Implement the GLSL 1.30+ rule for discard vs infinite loops Do
* it before optimization because we want most of the checks to get
* dropped thanks to constant propagation.