[Mesa-dev] [PATCH] glsl: add forgotten textureOffset function for sampler2DArrayShadow
idr at freedesktop.org
Mon Apr 18 22:43:52 UTC 2016
On 04/18/2016 02:05 PM, sroland at vmware.com wrote:
> From: Roland Scheidegger <sroland at vmware.com>
> This was part of EXT_gpu_shader4 - as such it should have been supported
> by glsl 130.
> It was however forgotten, and not added until glsl 430 - with the wrong
> syntax no less (glsl 430 mentions it was overlooked).
> glsl 440 (but revision 8 only) fixed this finally for good.
> It looks like most other implementations would support this with older
> glsl versions as well, so just add this to the other glsl 130 textureOffset
Can you clarify this? I believe that it would work on NVIDIA when the
shader doesn't specify an explicit version. Does it work on NVIDIA with
an explicit #version 130? How about AMD?
> (Completely untested...)
> src/compiler/glsl/builtin_functions.cpp | 3 +++
> 1 file changed, 3 insertions(+)
> diff --git a/src/compiler/glsl/builtin_functions.cpp b/src/compiler/glsl/builtin_functions.cpp
> index f488434..004beb9 100644
> --- a/src/compiler/glsl/builtin_functions.cpp
> +++ b/src/compiler/glsl/builtin_functions.cpp
> @@ -1707,6 +1707,9 @@ builtin_builder::create_builtins()
> _texture(ir_tex, v130, glsl_type::uvec4_type, glsl_type::usampler2DArray_type, glsl_type::vec3_type, TEX_OFFSET),
> _texture(ir_tex, v130, glsl_type::float_type, glsl_type::sampler1DArrayShadow_type, glsl_type::vec3_type, TEX_OFFSET),
> + /* the next one was forgotten in glsl spec (it's from EXT_gpu_shader4 initially),
> + had wrong syntax in 4.30, correct only in 4.40 but allow it in 130 */
/* The next one was forgotten in GLSL 1.30 spec. It's from
* EXT_gpu_shader4 originally. It was added in 4.30 with the
* wrong syntax. This was corrected in 4.40. 4.30 indicates
* that it was intended to be included previously, so allow it
* in 1.30.
> + _texture(ir_tex, v130, glsl_type::float_type, glsl_type::sampler2DArrayShadow_type, glsl_type::vec4_type, TEX_OFFSET),
> _texture(ir_txb, v130_fs_only, glsl_type::vec4_type, glsl_type::sampler1D_type, glsl_type::float_type, TEX_OFFSET),
> _texture(ir_txb, v130_fs_only, glsl_type::ivec4_type, glsl_type::isampler1D_type, glsl_type::float_type, TEX_OFFSET),
More information about the mesa-dev