summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2018-08-08 15:53:10 -0400
committerMarek Olšák <[email protected]>2018-08-23 16:56:17 -0400
commit3867af39f95c8b79f2662be348c1044f2259a7cc (patch)
tree3a85785b223afa6dc9fdb6f6d8f56a91b6f6153f
parentf01338118c51ee815ba78e94f1ea60aaa7963980 (diff)
glsl: fix error checking against MAX_UNIFORM_LOCATIONS
Tested-by: Dieter Nützel <[email protected]>
-rw-r--r--src/compiler/glsl/link_uniforms.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/compiler/glsl/link_uniforms.cpp b/src/compiler/glsl/link_uniforms.cpp
index 8d3f95fe114..434ecefb289 100644
--- a/src/compiler/glsl/link_uniforms.cpp
+++ b/src/compiler/glsl/link_uniforms.cpp
@@ -1209,8 +1209,12 @@ link_setup_uniform_remap_tables(struct gl_context *ctx,
if (empty_locs)
chosen_location = link_util_find_empty_block(prog, &prog->data->UniformStorage[i]);
- /* Add new entries to the total amount of entries. */
- total_entries += entries;
+ /* Add new entries to the total amount for checking against MAX_UNIFORM-
+ * _LOCATIONS. This only applies to the default uniform block (-1),
+ * because locations of uniform block entries are not assignable.
+ */
+ if (prog->data->UniformStorage[i].block_index == -1)
+ total_entries += entries;
if (chosen_location != -1) {
empty_locs -= entries;