From: Timothy Arceri Date: Mon, 17 Feb 2020 00:01:50 +0000 (+1100) Subject: glsl: add some error checks to the nir uniform linker X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ad094433b4180ae5d9a33562a0982d399a0bb4bc;p=mesa.git 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 Tested-by: Marge Bot Part-of: --- 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;