From 3867af39f95c8b79f2662be348c1044f2259a7cc Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Wed, 8 Aug 2018 15:53:10 -0400 Subject: [PATCH] glsl: fix error checking against MAX_UNIFORM_LOCATIONS MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Tested-by: Dieter Nützel --- src/compiler/glsl/link_uniforms.cpp | 8 ++++++-- 1 file 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; -- 2.30.2