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. --- src/glsl/builtin_functions.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/glsl/builtin_functions.cpp b/src/glsl/builtin_functions.cpp index ce78df1..10fc590 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; } @@ -1610,7 +1610,7 @@ builtin_builder::create_builtins() NULL); add_function("texture1DArrayLod", - _texture(ir_txl, vs_texture_array, glsl_type::vec4_type, glsl_type::sampler1DArray_type, 2, glsl_type::vec2_type), + _texture(ir_txl, texture_array_lod, glsl_type::vec4_type, glsl_type::sampler1DArray_type, 2, glsl_type::vec2_type), NULL); add_function("texture1DProjLod", @@ -1643,7 +1643,7 @@ builtin_builder::create_builtins() NULL); add_function("texture2DArrayLod", - _texture(ir_txl, vs_texture_array, glsl_type::vec4_type, glsl_type::sampler2DArray_type, 3, glsl_type::vec3_type), + _texture(ir_txl, texture_array_lod, glsl_type::vec4_type, glsl_type::sampler2DArray_type, 3, glsl_type::vec3_type), NULL); add_function("texture2DProjLod", @@ -1726,7 +1726,7 @@ builtin_builder::create_builtins() NULL); add_function("shadow1DArrayLod", - _texture(ir_txl, vs_texture_array, glsl_type::vec4_type, glsl_type::sampler1DArrayShadow_type, 2, glsl_type::vec3_type), + _texture(ir_txl, texture_array_lod, glsl_type::vec4_type, glsl_type::sampler1DArrayShadow_type, 2, glsl_type::vec3_type), NULL); add_function("shadow1DProjLod", -- 1.8.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev