On 10/04/2013 09:17 PM, Chris Forbes wrote: > Signed-off-by: Chris Forbes <chr...@ijw.co.nz> > --- > src/glsl/builtin_functions.cpp | 56 > +++++++++++++++++++++++++++++++++++++ > src/glsl/glcpp/glcpp-parse.y | 3 ++ > src/glsl/glsl_parser_extras.cpp | 1 + > src/glsl/glsl_parser_extras.h | 2 ++ > src/glsl/ir.cpp | 4 +-- > src/glsl/ir.h | 4 ++- > src/glsl/ir_clone.cpp | 1 + > src/glsl/ir_hv_accept.cpp | 1 + > src/glsl/ir_print_visitor.cpp | 7 +++-- > src/glsl/ir_reader.cpp | 8 +++++- > src/glsl/ir_rvalue_visitor.cpp | 1 + > src/glsl/opt_tree_grafting.cpp | 1 + > src/glsl/standalone_scaffolding.cpp | 1 + > src/mesa/program/ir_to_mesa.cpp | 3 ++ > 14 files changed, 87 insertions(+), 6 deletions(-) > > diff --git a/src/glsl/builtin_functions.cpp b/src/glsl/builtin_functions.cpp > index df735ef..40084f7 100644 > --- a/src/glsl/builtin_functions.cpp > +++ b/src/glsl/builtin_functions.cpp > @@ -256,6 +256,13 @@ texture_cube_map_array(const _mesa_glsl_parse_state > *state) > } > > static bool > +texture_query_levels(const _mesa_glsl_parse_state *state) > +{ > + return state->is_version(430, 0) || > + state->ARB_texture_query_levels_enable; > +} > + > +static bool > texture_query_lod(const _mesa_glsl_parse_state *state) > { > return state->target == fragment_shader && > @@ -504,6 +511,7 @@ private: > B0(EndPrimitive) > > B2(textureQueryLod); > + B1(textureQueryLevels); > B1(dFdx); > B1(dFdy); > B1(fwidth); > @@ -1603,6 +1611,39 @@ builtin_builder::create_builtins() > _textureQueryLod(glsl_type::samplerCubeArrayShadow_type, > glsl_type::vec3_type), > NULL); > > + add_function("textureQueryLevels", > + _textureQueryLevels(glsl_type::sampler1D_type), > + _textureQueryLevels(glsl_type::sampler2D_type), > + _textureQueryLevels(glsl_type::sampler3D_type), > + _textureQueryLevels(glsl_type::samplerCube_type), > + _textureQueryLevels(glsl_type::sampler1DArray_type), > + _textureQueryLevels(glsl_type::sampler2DArray_type), > + _textureQueryLevels(glsl_type::samplerCubeArray_type), > + _textureQueryLevels(glsl_type::sampler1DShadow_type), > + _textureQueryLevels(glsl_type::sampler2DShadow_type), > + _textureQueryLevels(glsl_type::samplerCubeShadow_type), > + _textureQueryLevels(glsl_type::sampler1DArrayShadow_type), > + _textureQueryLevels(glsl_type::sampler2DArrayShadow_type), > + _textureQueryLevels(glsl_type::samplerCubeArrayShadow_type),
I noticed that ARB_texture_query_levels, GLSL 4.30, and GLSL 4.40 all say "gsampler...Shadow". Which is weird, since there are no integer/unsigned shadow sampling types. FWIW, I've filed a spec bug (#11001). The resolution is obvious, and you've done the right thing. > + > + _textureQueryLevels(glsl_type::isampler1D_type), > + _textureQueryLevels(glsl_type::isampler2D_type), > + _textureQueryLevels(glsl_type::isampler3D_type), > + _textureQueryLevels(glsl_type::isamplerCube_type), > + _textureQueryLevels(glsl_type::isampler1DArray_type), > + _textureQueryLevels(glsl_type::isampler2DArray_type), > + _textureQueryLevels(glsl_type::isamplerCubeArray_type), > + > + _textureQueryLevels(glsl_type::usampler1D_type), > + _textureQueryLevels(glsl_type::usampler2D_type), > + _textureQueryLevels(glsl_type::usampler3D_type), > + _textureQueryLevels(glsl_type::usamplerCube_type), > + _textureQueryLevels(glsl_type::usampler1DArray_type), > + _textureQueryLevels(glsl_type::usampler2DArray_type), > + _textureQueryLevels(glsl_type::usamplerCubeArray_type), > + > + NULL); This looks good. Patches 1-3 are: Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev