From 34090712c6a56b8b8ff75b440b66392d5461388e Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Fri, 7 Jan 2022 11:10:40 +1000 Subject: [PATCH] glsl/linker: remove gl_context from check image resources Reviewed-by: Timothy Arceri Part-of: --- src/compiler/glsl/gl_nir_linker.c | 12 +++++++----- src/compiler/glsl/linker.cpp | 12 +++++++----- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/compiler/glsl/gl_nir_linker.c b/src/compiler/glsl/gl_nir_linker.c index 44273c1..63cff62 100644 --- a/src/compiler/glsl/gl_nir_linker.c +++ b/src/compiler/glsl/gl_nir_linker.c @@ -631,13 +631,15 @@ gl_nir_link_spirv(struct gl_context *ctx, struct gl_shader_program *prog, * Validate shader image resources. */ static void -check_image_resources(struct gl_context *ctx, struct gl_shader_program *prog) +check_image_resources(const struct gl_constants *consts, + const struct gl_extensions *exts, + struct gl_shader_program *prog) { unsigned total_image_units = 0; unsigned fragment_outputs = 0; unsigned total_shader_storage_blocks = 0; - if (!ctx->Extensions.ARB_shader_image_load_store) + if (!exts->ARB_shader_image_load_store) return; for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) { @@ -649,7 +651,7 @@ check_image_resources(struct gl_context *ctx, struct gl_shader_program *prog) total_shader_storage_blocks += sh->Program->info.num_ssbos; } - if (total_image_units > ctx->Const.MaxCombinedImageUniforms) + if (total_image_units > consts->MaxCombinedImageUniforms) linker_error(prog, "Too many combined image uniforms\n"); struct gl_linked_shader *frag_sh = @@ -660,7 +662,7 @@ check_image_resources(struct gl_context *ctx, struct gl_shader_program *prog) } if (total_image_units + fragment_outputs + total_shader_storage_blocks > - ctx->Const.MaxCombinedShaderOutputResources) + consts->MaxCombinedShaderOutputResources) linker_error(prog, "Too many combined image uniforms, shader storage " " buffers and fragment outputs\n"); } @@ -686,7 +688,7 @@ gl_nir_link_glsl(struct gl_context *ctx, struct gl_shader_program *prog) link_util_calculate_subroutine_compat(prog); link_util_check_uniform_resources(&ctx->Const, prog); link_util_check_subroutine_resources(prog); - check_image_resources(ctx, prog); + check_image_resources(&ctx->Const, &ctx->Extensions, prog); gl_nir_link_assign_atomic_counter_resources(&ctx->Const, prog); gl_nir_link_check_atomic_counter_resources(&ctx->Const, prog); diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp index 57d6391..ce98ba1 100644 --- a/src/compiler/glsl/linker.cpp +++ b/src/compiler/glsl/linker.cpp @@ -3424,13 +3424,15 @@ store_fragdepth_layout(struct gl_shader_program *prog) * Validate shader image resources. */ static void -check_image_resources(struct gl_context *ctx, struct gl_shader_program *prog) +check_image_resources(const struct gl_constants *consts, + const struct gl_extensions *exts, + struct gl_shader_program *prog) { unsigned total_image_units = 0; unsigned fragment_outputs = 0; unsigned total_shader_storage_blocks = 0; - if (!ctx->Extensions.ARB_shader_image_load_store) + if (!exts->ARB_shader_image_load_store) return; for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) { @@ -3451,11 +3453,11 @@ check_image_resources(struct gl_context *ctx, struct gl_shader_program *prog) } } - if (total_image_units > ctx->Const.MaxCombinedImageUniforms) + if (total_image_units > consts->MaxCombinedImageUniforms) linker_error(prog, "Too many combined image uniforms\n"); if (total_image_units + fragment_outputs + total_shader_storage_blocks > - ctx->Const.MaxCombinedShaderOutputResources) + consts->MaxCombinedShaderOutputResources) linker_error(prog, "Too many combined image uniforms, shader storage " " buffers and fragment outputs\n"); } @@ -4513,7 +4515,7 @@ link_and_validate_uniforms(struct gl_context *ctx, link_util_calculate_subroutine_compat(prog); link_util_check_uniform_resources(&ctx->Const, prog); link_util_check_subroutine_resources(prog); - check_image_resources(ctx, prog); + check_image_resources(&ctx->Const, &ctx->Extensions, prog); link_assign_atomic_counter_resources(&ctx->Const, prog); link_check_atomic_counter_resources(&ctx->Const, prog); } -- 2.7.4