summaryrefslogtreecommitdiffstats
path: root/src/glsl/linker.cpp
diff options
context:
space:
mode:
authorKristian Høgsberg <[email protected]>2015-05-13 11:17:23 +0200
committerSamuel Iglesias Gonsalvez <[email protected]>2015-07-14 07:04:03 +0200
commita78a589efc5440443439d474e45fa1ef8b79178c (patch)
treed5fdf3e56c0c184e5dcf321650d99ae27302eb61 /src/glsl/linker.cpp
parent84fc5fece006f2bd95287496e32482ac08bfd399 (diff)
glsl: link buffer variables and shader storage buffer interface blocks
Reviewed-by: Jordan Justen <[email protected]>
Diffstat (limited to 'src/glsl/linker.cpp')
-rw-r--r--src/glsl/linker.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index 3005b70a4f6..28ad2f38e0e 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -777,7 +777,7 @@ cross_validate_globals(struct gl_shader_program *prog,
if (var == NULL)
continue;
- if (uniforms_only && (var->data.mode != ir_var_uniform))
+ if (uniforms_only && (var->data.mode != ir_var_uniform && var->data.mode != ir_var_shader_storage))
continue;
/* Don't cross validate temporaries that are at global scope. These
@@ -2574,7 +2574,7 @@ check_explicit_uniform_locations(struct gl_context *ctx,
foreach_in_list(ir_instruction, node, sh->ir) {
ir_variable *var = node->as_variable();
- if ((var && var->data.mode == ir_var_uniform) &&
+ if (var && (var->data.mode == ir_var_uniform || var->data.mode == ir_var_shader_storage) &&
var->data.explicit_location) {
if (!reserve_explicit_locations(prog, uniform_map, var)) {
delete uniform_map;