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@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>
This commit is contained in:
Timothy Arceri 2020-02-17 11:01:50 +11:00 committed by Marge Bot
parent 61dc9354c0
commit ad094433b4
1 changed files with 16 additions and 0 deletions

View File

@ -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;