diff options
author | Kristian Høgsberg <[email protected]> | 2015-05-13 11:17:23 +0200 |
---|---|---|
committer | Samuel Iglesias Gonsalvez <[email protected]> | 2015-07-14 07:04:03 +0200 |
commit | a78a589efc5440443439d474e45fa1ef8b79178c (patch) | |
tree | d5fdf3e56c0c184e5dcf321650d99ae27302eb61 /src/glsl/linker.cpp | |
parent | 84fc5fece006f2bd95287496e32482ac08bfd399 (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.cpp | 4 |
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; |