This patch is Reviewed-by: Ian Romanick <ian.d.roman...@intel.com>
On 08/27/2015 08:48 PM, Ilia Mirkin wrote: > Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> > --- > src/glsl/builtin_functions.cpp | 31 +++++++++++++++++++++++++++++++ > 1 file changed, 31 insertions(+) > > diff --git a/src/glsl/builtin_functions.cpp b/src/glsl/builtin_functions.cpp > index 5e05199..3fdda32 100644 > --- a/src/glsl/builtin_functions.cpp > +++ b/src/glsl/builtin_functions.cpp > @@ -428,6 +428,13 @@ shader_image_size(const _mesa_glsl_parse_state *state) > } > > static bool > +shader_samples(const _mesa_glsl_parse_state *state) > +{ > + return state->is_version(450, 0) || > + state->ARB_shader_texture_image_samples_enable; > +} > + > +static bool > gs_streams(const _mesa_glsl_parse_state *state) > { > return gpu_shader5(state) && gs_only(state); > @@ -667,6 +674,7 @@ private: > B1(all); > B1(not); > BA2(textureSize); > + B1(textureSamples); > > /** Flags to _texture() */ > #define TEX_PROJECT 1 > @@ -1410,6 +1418,16 @@ builtin_builder::create_builtins() > _textureSize(texture_multisample_array, > glsl_type::ivec3_type, glsl_type::usampler2DMSArray_type), > NULL); > > + add_function("textureSamples", > + _textureSamples(glsl_type::sampler2DMS_type), > + _textureSamples(glsl_type::isampler2DMS_type), > + _textureSamples(glsl_type::usampler2DMS_type), > + > + _textureSamples(glsl_type::sampler2DMSArray_type), > + _textureSamples(glsl_type::isampler2DMSArray_type), > + _textureSamples(glsl_type::usampler2DMSArray_type), > + NULL); > + > add_function("texture", > _texture(ir_tex, v130, glsl_type::vec4_type, > glsl_type::sampler1D_type, glsl_type::float_type), > _texture(ir_tex, v130, glsl_type::ivec4_type, > glsl_type::isampler1D_type, glsl_type::float_type), > @@ -4173,6 +4191,19 @@ > builtin_builder::_textureSize(builtin_available_predicate avail, > } > > ir_function_signature * > +builtin_builder::_textureSamples(const glsl_type *sampler_type) > +{ > + ir_variable *s = in_var(sampler_type, "sampler"); > + MAKE_SIG(glsl_type::int_type, shader_samples, 1, s); > + > + ir_texture *tex = new(mem_ctx) ir_texture(ir_texture_samples); > + tex->set_sampler(new(mem_ctx) ir_dereference_variable(s), > glsl_type::int_type); > + body.emit(ret(tex)); > + > + return sig; > +} > + > +ir_function_signature * > builtin_builder::_texture(ir_texture_opcode opcode, > builtin_available_predicate avail, > const glsl_type *return_type, > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev