mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-31 09:50:08 +01:00
glsl: move mode_string() to helper
This will be used from multiple files in the following patches. Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28690>
This commit is contained in:
parent
7d00b759f3
commit
344bcd1703
3 changed files with 45 additions and 43 deletions
|
|
@ -100,47 +100,6 @@ interstage_member_mismatch(struct gl_shader_program *prog,
|
|||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate a string describing the mode of a variable
|
||||
*/
|
||||
static const char *
|
||||
mode_string(const nir_variable *var)
|
||||
{
|
||||
switch (var->data.mode) {
|
||||
case nir_var_shader_temp:
|
||||
return (var->data.read_only) ? "global constant" : "global variable";
|
||||
|
||||
case nir_var_uniform:
|
||||
case nir_var_image:
|
||||
case nir_var_mem_ubo:
|
||||
return "uniform";
|
||||
|
||||
case nir_var_mem_ssbo:
|
||||
return "buffer";
|
||||
|
||||
case nir_var_shader_in:
|
||||
return "shader input";
|
||||
|
||||
case nir_var_shader_out:
|
||||
return "shader output";
|
||||
|
||||
case nir_var_system_value:
|
||||
return "shader input";
|
||||
|
||||
case nir_var_function_temp:
|
||||
return "local variable";
|
||||
|
||||
case nir_var_mem_shared:
|
||||
return "shader shared";
|
||||
|
||||
case nir_num_variable_modes:
|
||||
break;
|
||||
}
|
||||
|
||||
assert(!"Should not get here.");
|
||||
return "invalid variable";
|
||||
}
|
||||
|
||||
static bool
|
||||
is_interface_instance(nir_variable *var)
|
||||
{
|
||||
|
|
@ -173,7 +132,7 @@ validate_intrastage_arrays(struct gl_shader_program *prog,
|
|||
linker_error(prog, "%s `%s' declared as type "
|
||||
"`%s' but outermost dimension has an index"
|
||||
" of `%i'\n",
|
||||
mode_string(var),
|
||||
gl_nir_mode_string(var),
|
||||
var->name, glsl_get_type_name(var->type),
|
||||
existing->data.max_array_access);
|
||||
}
|
||||
|
|
@ -188,7 +147,7 @@ validate_intrastage_arrays(struct gl_shader_program *prog,
|
|||
linker_error(prog, "%s `%s' declared as type "
|
||||
"`%s' but outermost dimension has an index"
|
||||
" of `%i'\n",
|
||||
mode_string(var),
|
||||
gl_nir_mode_string(var),
|
||||
var->name, glsl_get_type_name(existing->type),
|
||||
var->data.max_array_access);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -261,6 +261,47 @@ validate_geometry_shader_emissions(const struct gl_constants *consts,
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate a string describing the mode of a variable
|
||||
*/
|
||||
const char *
|
||||
gl_nir_mode_string(const nir_variable *var)
|
||||
{
|
||||
switch (var->data.mode) {
|
||||
case nir_var_shader_temp:
|
||||
return (var->data.read_only) ? "global constant" : "global variable";
|
||||
|
||||
case nir_var_uniform:
|
||||
case nir_var_image:
|
||||
case nir_var_mem_ubo:
|
||||
return "uniform";
|
||||
|
||||
case nir_var_mem_ssbo:
|
||||
return "buffer";
|
||||
|
||||
case nir_var_shader_in:
|
||||
return "shader input";
|
||||
|
||||
case nir_var_shader_out:
|
||||
return "shader output";
|
||||
|
||||
case nir_var_system_value:
|
||||
return "shader input";
|
||||
|
||||
case nir_var_function_temp:
|
||||
return "local variable";
|
||||
|
||||
case nir_var_mem_shared:
|
||||
return "shader shared";
|
||||
|
||||
case nir_num_variable_modes:
|
||||
break;
|
||||
}
|
||||
|
||||
assert(!"Should not get here.");
|
||||
return "invalid variable";
|
||||
}
|
||||
|
||||
bool
|
||||
gl_nir_can_add_pointsize_to_program(const struct gl_constants *consts,
|
||||
struct gl_program *prog)
|
||||
|
|
|
|||
|
|
@ -76,6 +76,8 @@ bool gl_nir_link_varyings(const struct gl_constants *consts,
|
|||
const struct gl_extensions *exts,
|
||||
gl_api api, struct gl_shader_program *prog);
|
||||
|
||||
const char * gl_nir_mode_string(const nir_variable *var);
|
||||
|
||||
struct nir_xfb_info *
|
||||
gl_to_nir_xfb_info(struct gl_transform_feedback_info *info, void *mem_ctx);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue