mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
glsl: move check_subroutine_resources() into the shared util code
We will make use of this in the nir linker in the following patch. Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
This commit is contained in:
parent
3dec68e682
commit
a6fd1c7752
3 changed files with 20 additions and 15 deletions
|
|
@ -3436,20 +3436,6 @@ link_calculate_subroutine_compat(struct gl_shader_program *prog)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
check_subroutine_resources(struct gl_shader_program *prog)
|
||||
{
|
||||
unsigned mask = prog->data->linked_stages;
|
||||
while (mask) {
|
||||
const int i = u_bit_scan(&mask);
|
||||
struct gl_program *p = prog->_LinkedShaders[i]->Program;
|
||||
|
||||
if (p->sh.NumSubroutineUniformRemapTable > MAX_SUBROUTINE_UNIFORM_LOCATIONS) {
|
||||
linker_error(prog, "Too many %s shader subroutine uniforms\n",
|
||||
_mesa_shader_stage_to_string(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Validate shader image resources.
|
||||
*/
|
||||
|
|
@ -4535,7 +4521,7 @@ link_and_validate_uniforms(struct gl_context *ctx,
|
|||
|
||||
link_calculate_subroutine_compat(prog);
|
||||
check_resources(ctx, prog);
|
||||
check_subroutine_resources(prog);
|
||||
link_util_check_subroutine_resources(prog);
|
||||
|
||||
if (!ctx->Const.UseNIRGLSLLinker) {
|
||||
check_image_resources(ctx, prog);
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
*/
|
||||
#include "main/mtypes.h"
|
||||
#include "linker_util.h"
|
||||
#include "util/bitscan.h"
|
||||
#include "util/set.h"
|
||||
#include "ir_uniform.h" /* for gl_uniform_storage */
|
||||
|
||||
|
|
@ -154,3 +155,18 @@ link_util_update_empty_uniform_locations(struct gl_shader_program *prog)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
link_util_check_subroutine_resources(struct gl_shader_program *prog)
|
||||
{
|
||||
unsigned mask = prog->data->linked_stages;
|
||||
while (mask) {
|
||||
const int i = u_bit_scan(&mask);
|
||||
struct gl_program *p = prog->_LinkedShaders[i]->Program;
|
||||
|
||||
if (p->sh.NumSubroutineUniformRemapTable > MAX_SUBROUTINE_UNIFORM_LOCATIONS) {
|
||||
linker_error(prog, "Too many %s shader subroutine uniforms\n",
|
||||
_mesa_shader_stage_to_string(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,6 +70,9 @@ link_util_find_empty_block(struct gl_shader_program *prog,
|
|||
void
|
||||
link_util_update_empty_uniform_locations(struct gl_shader_program *prog);
|
||||
|
||||
void
|
||||
link_util_check_subroutine_resources(struct gl_shader_program *prog);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue