Mesa (staging/19.2): glsl/nir: Avoid overflow when setting max_uniform_location

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Sep 11 16:04:53 UTC 2019


Module: Mesa
Branch: staging/19.2
Commit: 2e2f59a30a60cd16229f5cb114d796a739394237
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2e2f59a30a60cd16229f5cb114d796a739394237

Author: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
Date:   Wed Aug 21 10:04:56 2019 -0700

glsl/nir: Avoid overflow when setting max_uniform_location

Don't use the UNMAPPED_UNIFORM_LOC (-1) to set the unsigned
max_uniform_location.  Those unmapped uniforms don't have to be
accounted at this point.

Fixes: 7a9e5cdfbb9 ("nir/linker: Add gl_nir_link_uniforms()")
Reviewed-by: Alejandro Piñeiro <apinheiro at igalia.com>
(cherry picked from commit 4f33f96c4517f86f6f720f745cd49f8a0754393b)

---

 src/compiler/glsl/gl_nir_link_uniforms.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/compiler/glsl/gl_nir_link_uniforms.c b/src/compiler/glsl/gl_nir_link_uniforms.c
index ac97334e9cd..6323d2940db 100644
--- a/src/compiler/glsl/gl_nir_link_uniforms.c
+++ b/src/compiler/glsl/gl_nir_link_uniforms.c
@@ -603,7 +603,8 @@ nir_link_uniform(struct gl_context *ctx,
       state->num_shader_uniform_components += values;
       state->num_values += values;
 
-      if (state->max_uniform_location < uniform->remap_location + entries)
+      if (uniform->remap_location != UNMAPPED_UNIFORM_LOC &&
+          state->max_uniform_location < uniform->remap_location + entries)
          state->max_uniform_location = uniform->remap_location + entries;
 
       return MAX2(uniform->array_elements, 1);




More information about the mesa-commit mailing list