Series is Reviewed-by: Ilia Mirkin <imir...@alum.mit.edu>
Note that AMD_texture_texture4 is only defined for single-component textures (not even RED allowed due to the age of the ext -- only ALPHA / LUMINANCE / DEPTH_COMPONENT / INTENSITY) -- but it doesn't say what will happen when a "bad" texture is supplied. I guess it's reasonable to take the ARB_texture_gather interpretation as if the driver reported MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB == 1, i.e. it's the user's fault if something doesn't work. -ilia On Wed, Nov 28, 2018 at 8:22 PM Marek Olšák <mar...@gmail.com> wrote: > > From: Marek Olšák <marek.ol...@amd.com> > > because the closed driver exposes it. Tested by piglit. > --- > docs/relnotes/19.0.0.html | 1 + > src/compiler/glsl/builtin_functions.cpp | 10 ++++++++++ > src/compiler/glsl/glsl_parser_extras.cpp | 1 + > src/compiler/glsl/glsl_parser_extras.h | 2 ++ > src/mesa/main/extensions_table.h | 1 + > 5 files changed, 15 insertions(+) > > diff --git a/docs/relnotes/19.0.0.html b/docs/relnotes/19.0.0.html > index d10bd2cf720..bc1776e8f4e 100644 > --- a/docs/relnotes/19.0.0.html > +++ b/docs/relnotes/19.0.0.html > @@ -32,20 +32,21 @@ Compatibility contexts may report a lower version > depending on each driver. > > <h2>SHA256 checksums</h2> > <pre> > TBD. > </pre> > > > <h2>New features</h2> > > <ul> > +<li>GL_AMD_texture_texture4 on all GL 4.0 drivers.</li> > <li>GL_EXT_shader_implicit_conversions on all drivers (ES extension).</li> > <li>GL_EXT_texture_compression_bptc on all GL 4.0 drivers (ES extension).<li> > <li>GL_EXT_texture_compression_rgtc on all GL 3.0 drivers (ES extension).<li> > <li>GL_EXT_texture_view on drivers supporting texture views (ES > extension).<li> > <li>GL_OES_texture_view on drivers supporting texture views (ES > extension).</li> > </ul> > > <h2>Bug fixes</h2> > > <ul> > diff --git a/src/compiler/glsl/builtin_functions.cpp > b/src/compiler/glsl/builtin_functions.cpp > index 5650365d1d5..62fbe10c623 100644 > --- a/src/compiler/glsl/builtin_functions.cpp > +++ b/src/compiler/glsl/builtin_functions.cpp > @@ -411,20 +411,26 @@ texture_query_lod(const _mesa_glsl_parse_state *state) > static bool > texture_gather_cube_map_array(const _mesa_glsl_parse_state *state) > { > return state->is_version(400, 320) || > state->ARB_texture_gather_enable || > state->ARB_gpu_shader5_enable || > state->EXT_texture_cube_map_array_enable || > state->OES_texture_cube_map_array_enable; > } > > +static bool > +texture_texture4(const _mesa_glsl_parse_state *state) > +{ > + return state->AMD_texture_texture4_enable; > +} > + > static bool > texture_gather_or_es31(const _mesa_glsl_parse_state *state) > { > return state->is_version(400, 310) || > state->ARB_texture_gather_enable || > state->ARB_gpu_shader5_enable; > } > > /* Only ARB_texture_gather but not GLSL 4.0 or ARB_gpu_shader5. > * used for relaxation of const offset requirements. > @@ -2895,20 +2901,24 @@ builtin_builder::create_builtins() > NULL); > > add_function("shadow2DRectGradARB", > _texture(ir_txd, shader_texture_lod_and_rect, > glsl_type::vec4_type, glsl_type::sampler2DRectShadow_type, > glsl_type::vec3_type), > NULL); > > add_function("shadow2DRectProjGradARB", > _texture(ir_txd, shader_texture_lod_and_rect, > glsl_type::vec4_type, glsl_type::sampler2DRectShadow_type, > glsl_type::vec4_type, TEX_PROJECT), > NULL); > > + add_function("texture4", > + _texture(ir_tg4, texture_texture4, glsl_type::vec4_type, > glsl_type::sampler2D_type, glsl_type::vec2_type), > + NULL); > + > add_function("textureGather", > _texture(ir_tg4, texture_gather_or_es31, > glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec2_type), > _texture(ir_tg4, texture_gather_or_es31, > glsl_type::ivec4_type, glsl_type::isampler2D_type, glsl_type::vec2_type), > _texture(ir_tg4, texture_gather_or_es31, > glsl_type::uvec4_type, glsl_type::usampler2D_type, glsl_type::vec2_type), > > _texture(ir_tg4, gpu_shader5, glsl_type::vec4_type, > glsl_type::sampler2DRect_type, glsl_type::vec2_type), > _texture(ir_tg4, gpu_shader5, glsl_type::ivec4_type, > glsl_type::isampler2DRect_type, glsl_type::vec2_type), > _texture(ir_tg4, gpu_shader5, glsl_type::uvec4_type, > glsl_type::usampler2DRect_type, glsl_type::vec2_type), > > _texture(ir_tg4, texture_gather_or_es31, > glsl_type::vec4_type, glsl_type::sampler2DArray_type, glsl_type::vec3_type), > diff --git a/src/compiler/glsl/glsl_parser_extras.cpp > b/src/compiler/glsl/glsl_parser_extras.cpp > index 21ed34d79d0..1def5c7da5c 100644 > --- a/src/compiler/glsl/glsl_parser_extras.cpp > +++ b/src/compiler/glsl/glsl_parser_extras.cpp > @@ -699,20 +699,21 @@ static const _mesa_glsl_extension > _mesa_glsl_supported_extensions[] = { > EXT(OES_texture_cube_map_array), > EXT_AEP(OES_texture_storage_multisample_2d_array), > EXT(OES_viewport_array), > > /* All other extensions go here, sorted alphabetically. > */ > EXT(AMD_conservative_depth), > EXT(AMD_gpu_shader_int64), > EXT(AMD_shader_stencil_export), > EXT(AMD_shader_trinary_minmax), > + EXT(AMD_texture_texture4), > EXT(AMD_vertex_shader_layer), > EXT(AMD_vertex_shader_viewport_index), > EXT(ANDROID_extension_pack_es31a), > EXT(EXT_blend_func_extended), > EXT(EXT_frag_depth), > EXT(EXT_draw_buffers), > EXT(EXT_clip_cull_distance), > EXT(EXT_geometry_point_size), > EXT_AEP(EXT_geometry_shader), > EXT_AEP(EXT_gpu_shader5), > diff --git a/src/compiler/glsl/glsl_parser_extras.h > b/src/compiler/glsl/glsl_parser_extras.h > index da8b2fa3ab5..ce18f3f89cd 100644 > --- a/src/compiler/glsl/glsl_parser_extras.h > +++ b/src/compiler/glsl/glsl_parser_extras.h > @@ -779,20 +779,22 @@ struct _mesa_glsl_parse_state { > /* All other extensions go here, sorted alphabetically. > */ > bool AMD_conservative_depth_enable; > bool AMD_conservative_depth_warn; > bool AMD_gpu_shader_int64_enable; > bool AMD_gpu_shader_int64_warn; > bool AMD_shader_stencil_export_enable; > bool AMD_shader_stencil_export_warn; > bool AMD_shader_trinary_minmax_enable; > bool AMD_shader_trinary_minmax_warn; > + bool AMD_texture_texture4_enable; > + bool AMD_texture_texture4_warn; > bool AMD_vertex_shader_layer_enable; > bool AMD_vertex_shader_layer_warn; > bool AMD_vertex_shader_viewport_index_enable; > bool AMD_vertex_shader_viewport_index_warn; > bool ANDROID_extension_pack_es31a_enable; > bool ANDROID_extension_pack_es31a_warn; > bool EXT_blend_func_extended_enable; > bool EXT_blend_func_extended_warn; > bool EXT_clip_cull_distance_enable; > bool EXT_clip_cull_distance_warn; > diff --git a/src/mesa/main/extensions_table.h > b/src/mesa/main/extensions_table.h > index 45ee7675ab2..2a3e1ab32ca 100644 > --- a/src/mesa/main/extensions_table.h > +++ b/src/mesa/main/extensions_table.h > @@ -13,20 +13,21 @@ EXT(AMD_depth_clamp_separate , > AMD_depth_clamp_separate > EXT(AMD_draw_buffers_blend , ARB_draw_buffers_blend > , GLL, GLC, x , x , 2009) > EXT(AMD_framebuffer_multisample_advanced , > AMD_framebuffer_multisample_advanced , GLL, GLC, x , ES2, 2018) > EXT(AMD_gpu_shader_int64 , ARB_gpu_shader_int64 > , x , GLC, x , x , 2015) > EXT(AMD_multi_draw_indirect , ARB_draw_indirect > , GLL, GLC, x , x , 2011) > EXT(AMD_performance_monitor , AMD_performance_monitor > , GLL, GLC, x , ES2, 2007) > EXT(AMD_pinned_memory , AMD_pinned_memory > , GLL, GLC, x , x , 2013) > EXT(AMD_query_buffer_object , ARB_query_buffer_object > , GLL, GLC, x , x , 2012) > EXT(AMD_seamless_cubemap_per_texture , > AMD_seamless_cubemap_per_texture , GLL, GLC, x , x , 2009) > EXT(AMD_shader_stencil_export , ARB_shader_stencil_export > , GLL, GLC, x , x , 2009) > EXT(AMD_shader_trinary_minmax , dummy_true > , GLL, GLC, x , x , 2012) > +EXT(AMD_texture_texture4 , ARB_texture_gather > , GLL, GLC, x , x , 2008) > EXT(AMD_vertex_shader_layer , AMD_vertex_shader_layer > , GLL, GLC, x , x , 2012) > EXT(AMD_vertex_shader_viewport_index , > AMD_vertex_shader_viewport_index , GLL, GLC, x , x , 2012) > > EXT(ANDROID_extension_pack_es31a , ANDROID_extension_pack_es31a > , x , x , x , 31, 2014) > > EXT(ANGLE_texture_compression_dxt3 , ANGLE_texture_compression_dxt > , GLL, GLC, ES1, ES2, 2011) > EXT(ANGLE_texture_compression_dxt5 , ANGLE_texture_compression_dxt > , GLL, GLC, ES1, ES2, 2011) > > EXT(APPLE_object_purgeable , APPLE_object_purgeable > , GLL, GLC, x , x , 2006) > EXT(APPLE_packed_pixels , dummy_true > , GLL, x , x , x , 2002) > -- > 2.17.1 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev