mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-28 16:10:23 +01:00
glsl: Add default precision qualifiers to the symbol table
The GLSL ES spec specifies default precision qualifiers for certain types,
so populate the symbol table with these.
Notice that the desktop GLSL spec also indicates defaults for some types
but this is not really useful since precision qualifiers are completely
ignored in desktop GLSL.
v2: simplify and add samplerExternalOES, specified by
OES_EGL_image_external (Tapani)
v3: add atomic_uint (reported missing by Marta)
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
This commit is contained in:
parent
d6a6167354
commit
e3082fb273
1 changed files with 12 additions and 0 deletions
|
|
@ -313,6 +313,18 @@ translation_unit:
|
|||
{
|
||||
delete state->symbols;
|
||||
state->symbols = new(ralloc_parent(state)) glsl_symbol_table;
|
||||
if (state->es_shader) {
|
||||
if (state->stage == MESA_SHADER_FRAGMENT) {
|
||||
state->symbols->add_default_precision_qualifier("int", ast_precision_medium);
|
||||
} else {
|
||||
state->symbols->add_default_precision_qualifier("float", ast_precision_high);
|
||||
state->symbols->add_default_precision_qualifier("int", ast_precision_high);
|
||||
}
|
||||
state->symbols->add_default_precision_qualifier("sampler2D", ast_precision_low);
|
||||
state->symbols->add_default_precision_qualifier("samplerExternalOES", ast_precision_low);
|
||||
state->symbols->add_default_precision_qualifier("samplerCube", ast_precision_low);
|
||||
state->symbols->add_default_precision_qualifier("atomic_uint", ast_precision_high);
|
||||
}
|
||||
_mesa_glsl_initialize_types(state);
|
||||
}
|
||||
;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue