summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Berry <stereotype441@gmail.com>2013-09-12 09:11:37 -0700
committerPaul Berry <stereotype441@gmail.com>2013-09-13 14:59:06 -0700
commit71ffac691b8423d823a4637a0542ccb4005cc996 (patch)
tree0b7e14ac608ca0f263c9c71365f33bbacb24102d
parent4b3c0a797f89830fd5ba0943b061abf4fc38337e (diff)
glsl/builtins: Fix {texture1D,texture2D,shadow1D}ArrayLod availibility.
These functions are defined in EXT_texture_array, which makes no mention of what shader types they should be allowed in. At the time EXT_texture_array was introduced, functions ending in "Lod" were available only in vertex shaders, however this restriction was lifted in later spec versions and extensions. We already have the function lod_exists_in_stage() for figuring out whether functions ending in "Lod" should be available, so just re-use that. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
-rw-r--r--src/glsl/builtin_functions.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/glsl/builtin_functions.cpp b/src/glsl/builtin_functions.cpp
index c468bd505a..528af0dc65 100644
--- a/src/glsl/builtin_functions.cpp
+++ b/src/glsl/builtin_functions.cpp
@@ -214,9 +214,9 @@ gpu_shader5(const _mesa_glsl_parse_state *state)
}
static bool
-vs_texture_array(const _mesa_glsl_parse_state *state)
+texture_array_lod(const _mesa_glsl_parse_state *state)
{
- return state->target == vertex_shader &&
+ return lod_exists_in_stage(state) &&
state->EXT_texture_array_enable;
}
@@ -1609,7 +1609,7 @@ builtin_builder::create_builtins()
NULL);
add_function("texture1DArrayLod",
- _texture(ir_txl, vs_texture_array, glsl_type::vec4_type, glsl_type::sampler1DArray_type, glsl_type::vec2_type),
+ _texture(ir_txl, texture_array_lod, glsl_type::vec4_type, glsl_type::sampler1DArray_type, glsl_type::vec2_type),
NULL);
add_function("texture1DProjLod",
@@ -1642,7 +1642,7 @@ builtin_builder::create_builtins()
NULL);
add_function("texture2DArrayLod",
- _texture(ir_txl, vs_texture_array, glsl_type::vec4_type, glsl_type::sampler2DArray_type, glsl_type::vec3_type),
+ _texture(ir_txl, texture_array_lod, glsl_type::vec4_type, glsl_type::sampler2DArray_type, glsl_type::vec3_type),
NULL);
add_function("texture2DProjLod",
@@ -1725,7 +1725,7 @@ builtin_builder::create_builtins()
NULL);
add_function("shadow1DArrayLod",
- _texture(ir_txl, vs_texture_array, glsl_type::vec4_type, glsl_type::sampler1DArrayShadow_type, glsl_type::vec3_type),
+ _texture(ir_txl, texture_array_lod, glsl_type::vec4_type, glsl_type::sampler1DArrayShadow_type, glsl_type::vec3_type),
NULL);
add_function("shadow1DProjLod",