glsl_type: Don't have two versions of a type with the same name

Previously some sampler types were duplicated in GLSL 1.30 and
GL_EXT_texture_array.  This resulted in not being able to find the
built-in sampler functions when the extension was used.  When the
built-in functions were compiled, they bound to the 1.30 version.
This caused a type mismatch when trying to find the function.  It also
resulted in a confusing error message:

0:0(0): error: no matching function for call to `texture2DArray(sampler2DArray, vec3)'
0:0(0): error: candidates are: vec4 texture2DArray(sampler2DArray, vec3)

0:0(0): error:                 vec4 texture2DArray(sampler2DArray, vec3, float)
This commit is contained in:
Ian Romanick 2010-08-05 17:29:15 -07:00
parent 1e0f0459e0
commit 0a09d679ca
2 changed files with 4 additions and 9 deletions

View File

@ -212,23 +212,17 @@ const glsl_type glsl_type::builtin_130_types[] = {
glsl_type(GL_UNSIGNED_INT_VEC3, GLSL_TYPE_UINT, 3, 1, "uvec3"),
glsl_type(GL_UNSIGNED_INT_VEC4, GLSL_TYPE_UINT, 4, 1, "uvec4"),
/* 1D and 2D texture arrays */
glsl_type(GL_SAMPLER_1D_ARRAY,
GLSL_SAMPLER_DIM_1D, 0, 1, GLSL_TYPE_FLOAT, "sampler1DArray"),
/* 1D and 2D texture arrays - several of these are included only in
* builtin_EXT_texture_array_types.
*/
glsl_type(GL_INT_SAMPLER_1D_ARRAY,
GLSL_SAMPLER_DIM_1D, 0, 1, GLSL_TYPE_INT, "isampler1DArray"),
glsl_type(GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
GLSL_SAMPLER_DIM_1D, 0, 1, GLSL_TYPE_UINT, "usampler1DArray"),
glsl_type(GL_SAMPLER_1D_ARRAY_SHADOW,
GLSL_SAMPLER_DIM_1D, 1, 1, GLSL_TYPE_FLOAT, "sampler1DArrayShadow"),
glsl_type(GL_SAMPLER_2D_ARRAY,
GLSL_SAMPLER_DIM_2D, 0, 1, GLSL_TYPE_FLOAT, "sampler2DArray"),
glsl_type(GL_INT_SAMPLER_2D_ARRAY,
GLSL_SAMPLER_DIM_2D, 0, 1, GLSL_TYPE_INT, "isampler2DArray"),
glsl_type(GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
GLSL_SAMPLER_DIM_2D, 0, 1, GLSL_TYPE_UINT, "usampler2DArray"),
glsl_type(GL_SAMPLER_2D_ARRAY_SHADOW,
GLSL_SAMPLER_DIM_2D, 1, 1, GLSL_TYPE_FLOAT, "sampler2DArrayShadow"),
/* cube shadow samplers */
glsl_type(GL_SAMPLER_CUBE_SHADOW,

View File

@ -144,6 +144,7 @@ glsl_type::generate_130_types(glsl_symbol_table *symtab)
add_types_to_symbol_table(symtab, builtin_130_types,
Elements(builtin_130_types), false);
generate_EXT_texture_array_types(symtab, false);
}