mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 02:10:11 +01:00
glsl: Make mode_string function globally available
I made this a function (instead of a method of ir_variable) because it made the change set smaller, and I expect that there will be an overload that takes an ir_var_mode enum. Having both functions used the same way seemed better. v2: Add missing case for ir_var_system_value. v3: Change the ir_var_mode_count case to just break. Move the assertion and the return outside the switch-statment. In the unlikely event that var->mode is an invalid value other than ir_var_mode_count, the assertion will still fire, and in release builds we won't wind up returning a garbage pointer. Suggested by Paul. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Paul Berry <stereotype441@gmail.com>
This commit is contained in:
parent
2cb760d994
commit
f8c579dc0f
3 changed files with 46 additions and 23 deletions
|
|
@ -1891,3 +1891,46 @@ vertices_per_prim(GLenum prim)
|
|||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate a string describing the mode of a variable
|
||||
*/
|
||||
const char *
|
||||
mode_string(const ir_variable *var)
|
||||
{
|
||||
switch (var->mode) {
|
||||
case ir_var_auto:
|
||||
return (var->read_only) ? "global constant" : "global variable";
|
||||
|
||||
case ir_var_uniform:
|
||||
return "uniform";
|
||||
|
||||
case ir_var_shader_in:
|
||||
return "shader input";
|
||||
|
||||
case ir_var_shader_out:
|
||||
return "shader output";
|
||||
|
||||
case ir_var_function_in:
|
||||
case ir_var_const_in:
|
||||
return "function input";
|
||||
|
||||
case ir_var_function_out:
|
||||
return "function output";
|
||||
|
||||
case ir_var_function_inout:
|
||||
return "function inout";
|
||||
|
||||
case ir_var_system_value:
|
||||
return "shader input";
|
||||
|
||||
case ir_var_temporary:
|
||||
return "compiler temporary";
|
||||
|
||||
case ir_var_mode_count:
|
||||
break;
|
||||
}
|
||||
|
||||
assert(!"Should not get here.");
|
||||
return "invalid variable";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2306,6 +2306,9 @@ extern char *
|
|||
prototype_string(const glsl_type *return_type, const char *name,
|
||||
exec_list *parameters);
|
||||
|
||||
const char *
|
||||
mode_string(const ir_variable *var);
|
||||
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
|
|
|
|||
|
|
@ -557,29 +557,6 @@ validate_geometry_shader_executable(struct gl_shader_program *prog,
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Generate a string describing the mode of a variable
|
||||
*/
|
||||
static const char *
|
||||
mode_string(const ir_variable *var)
|
||||
{
|
||||
switch (var->mode) {
|
||||
case ir_var_auto:
|
||||
return (var->read_only) ? "global constant" : "global variable";
|
||||
|
||||
case ir_var_uniform: return "uniform";
|
||||
case ir_var_shader_in: return "shader input";
|
||||
case ir_var_shader_out: return "shader output";
|
||||
|
||||
case ir_var_const_in:
|
||||
case ir_var_temporary:
|
||||
default:
|
||||
assert(!"Should not get here.");
|
||||
return "invalid variable";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Perform validation of global variables used across multiple shaders
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue