Mesa (glsl2): glsl_type: Don' t have two versions of a type with the same name
Ian Romanick
idr at kemper.freedesktop.org
Fri Aug 6 00:37:40 UTC 2010
Module: Mesa
Branch: glsl2
Commit: 0a09d679ca97dcb634a939df2110a90c9504e2ec
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0a09d679ca97dcb634a939df2110a90c9504e2ec
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Thu Aug 5 17:29:15 2010 -0700
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)
---
src/glsl/builtin_types.h | 12 +++---------
src/glsl/glsl_types.cpp | 1 +
2 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/src/glsl/builtin_types.h b/src/glsl/builtin_types.h
index bd8f8b5..bfa4f3f 100644
--- a/src/glsl/builtin_types.h
+++ b/src/glsl/builtin_types.h
@@ -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,
diff --git a/src/glsl/glsl_types.cpp b/src/glsl/glsl_types.cpp
index 88f305a..03f8460 100644
--- a/src/glsl/glsl_types.cpp
+++ b/src/glsl/glsl_types.cpp
@@ -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);
}
More information about the mesa-commit
mailing list