From: Marek Olšák <marek.ol...@amd.com> because the closed driver exposes it. --- docs/relnotes/18.3.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/18.3.0.html b/docs/relnotes/18.3.0.html index c0132311a25..8b067b55d3c 100644 --- a/docs/relnotes/18.3.0.html +++ b/docs/relnotes/18.3.0.html @@ -48,20 +48,21 @@ TBD. <p> Note: some of the new features are only available with certain drivers. </p> <ul> <li>GL_AMD_framebuffer_multisample_advanced on radeonsi.</li> <li>GL_AMD_gpu_shader_int64 on i965, nvc0, radeonsi.</li> <li>GL_AMD_multi_draw_indirect on all GL 4.x drivers.</li> <li>GL_AMD_query_buffer_object on i965, nvc0, r600, radeonsi.</li> +<li>GL_AMD_texture_texture4 on i965, nvc0, r600, radeonsi.</li> <li>GL_EXT_window_rectangles on radeonsi.</li> </ul> <h2>Bug fixes</h2> <ul> <li>TBD</li> </ul> <h2>Changes</h2> diff --git a/src/compiler/glsl/builtin_functions.cpp b/src/compiler/glsl/builtin_functions.cpp index e37d96c4636..c778b65c6cd 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. @@ -2824,20 +2830,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 a455dde122a..9dbaef8f729 100644 --- a/src/compiler/glsl/glsl_parser_extras.cpp +++ b/src/compiler/glsl/glsl_parser_extras.cpp @@ -694,20 +694,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 81792de5704..71c21ced2bd 100644 --- a/src/compiler/glsl/glsl_parser_extras.h +++ b/src/compiler/glsl/glsl_parser_extras.h @@ -758,20 +758,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 34d7fa96bae..629a42f64e0 100644 --- a/src/mesa/main/extensions_table.h +++ b/src/mesa/main/extensions_table.h @@ -12,20 +12,21 @@ EXT(AMD_conservative_depth , ARB_conservative_depth 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