Mesa (master): glsl: add some error checks to the nir uniform linker

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Feb 29 00:30:28 UTC 2020


Module: Mesa
Branch: master
Commit: ad094433b4180ae5d9a33562a0982d399a0bb4bc
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ad094433b4180ae5d9a33562a0982d399a0bb4bc

Author: Timothy Arceri <tarceri at itsqueeze.com>
Date:   Mon Feb 17 11:01:50 2020 +1100

glsl: add some error checks to the nir uniform linker

These are optional for spirv but it shouldnt hurt to enable them.

Reviewed-by: Alejandro Piñeiro <apinheiro at igalia.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3992>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3992>

---

 src/compiler/glsl/gl_nir_link_uniforms.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/compiler/glsl/gl_nir_link_uniforms.c b/src/compiler/glsl/gl_nir_link_uniforms.c
index fc2de8753b1..375340026a0 100644
--- a/src/compiler/glsl/gl_nir_link_uniforms.c
+++ b/src/compiler/glsl/gl_nir_link_uniforms.c
@@ -802,6 +802,22 @@ gl_nir_link_uniforms(struct gl_context *ctx,
             return false;
       }
 
+      if (state.num_shader_samplers >
+          ctx->Const.Program[shader_type].MaxTextureImageUnits) {
+         linker_error(prog, "Too many %s shader texture samplers\n",
+                      _mesa_shader_stage_to_string(shader_type));
+         continue;
+      }
+
+      if (state.num_shader_images >
+          ctx->Const.Program[shader_type].MaxImageUniforms) {
+         linker_error(prog, "Too many %s shader image uniforms (%u > %u)\n",
+                      _mesa_shader_stage_to_string(shader_type),
+                      state.num_shader_images,
+                      ctx->Const.Program[shader_type].MaxImageUniforms);
+         continue;
+      }
+
       sh->Program->SamplersUsed = state.shader_samplers_used;
       sh->shadow_samplers = state.shader_shadow_samplers;
       sh->Program->info.num_textures = state.num_shader_samplers;



More information about the mesa-commit mailing list