On 04/12/2018 12:58 PM, Karol Herbst wrote:
currently fails in mesa with: ir_dereference_variable @ 0x1446830 specifies undeclared variable `wrongHandle' @ 0xffd1b0 v2: add image test convert to compiler test quote the spec Signed-off-by: Karol Herbst <kher...@redhat.com> --- .../compiler/images/func-call-uvec2-image.frag | 34 ++++++++++++++++++++++ .../samplers/func-call-uvec2-texture2D.frag | 33 +++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 tests/spec/arb_bindless_texture/compiler/images/func-call-uvec2-image.frag create mode 100644 tests/spec/arb_bindless_texture/compiler/samplers/func-call-uvec2-texture2D.frag diff --git a/tests/spec/arb_bindless_texture/compiler/images/func-call-uvec2-image.frag b/tests/spec/arb_bindless_texture/compiler/images/func-call-uvec2-image.frag new file mode 100644 index 000000000..a603440f2 --- /dev/null +++ b/tests/spec/arb_bindless_texture/compiler/images/func-call-uvec2-image.frag @@ -0,0 +1,34 @@ +// [config] +// expect_result: pass +// glsl_version: 3.30 +// require_extensions: GL_ARB_bindless_texture GL_ARB_shader_image_load_store +// [end config] + +#version 330 +#extension GL_ARB_bindless_texture: require +#extension GL_ARB_shader_image_load_store: enable + +layout (bindless_image) writeonly uniform image2D img; +uniform uvec2 handleOffset; + +out vec4 finalColor; + +// The ARB_bindless_texture spec says: +// +// "Replace Section 4.1.7 (Samplers), p. 25" +// +// "Samplers can be used as l-values, so can be assigned into and used as +// "out" and "inout" function parameters." + +image2D adjustImageHandle(in writeonly image2D wrongHandle)
"out" and "inout" and the test uses "in"?
+{ + uvec2 handle = uvec2(wrongHandle); + handle.x -= 0x12345678u; + handle.y -= 0x9abcdef0u; + return image2D(handle + handleOffset); +} + +void main() +{ + imageStore(adjustImageHandle(img), ivec2(0, 0), vec4(1, 2, 3, 4)); +} diff --git a/tests/spec/arb_bindless_texture/compiler/samplers/func-call-uvec2-texture2D.frag b/tests/spec/arb_bindless_texture/compiler/samplers/func-call-uvec2-texture2D.frag new file mode 100644 index 000000000..4491dd515 --- /dev/null +++ b/tests/spec/arb_bindless_texture/compiler/samplers/func-call-uvec2-texture2D.frag @@ -0,0 +1,33 @@ +// [config] +// expect_result: pass +// glsl_version: 3.30 +// require_extensions: GL_ARB_bindless_texture +// [end config] + +#version 330 +#extension GL_ARB_bindless_texture: require + +layout (bindless_sampler) uniform sampler2D tex; +uniform uvec2 handleOffset; + +out vec4 finalColor; + +// The ARB_bindless_texture spec says: +// +// "Replace Section 4.1.7 (Samplers), p. 25" +// +// "Samplers can be used as l-values, so can be assigned into and used as +// "out" and "inout" function parameters." + +sampler2D adjustSamplerHandle(in sampler2D wrongHandle) +{ + uvec2 handle = uvec2(wrongHandle); + handle.x -= 0x12345678u; + handle.y -= 0x9abcdef0u; + return sampler2D(handle + handleOffset); +} + +void main() +{ + finalColor = texture2D(adjustSamplerHandle(tex), vec2(0, 0)); +}
_______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit