summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/spec/arb_bindless_texture/execution/images/ubo-named-block.shader_test51
-rw-r--r--tests/spec/arb_bindless_texture/execution/samplers/ubo-named-block.shader_test37
2 files changed, 88 insertions, 0 deletions
diff --git a/tests/spec/arb_bindless_texture/execution/images/ubo-named-block.shader_test b/tests/spec/arb_bindless_texture/execution/images/ubo-named-block.shader_test
new file mode 100644
index 000000000..12872402c
--- /dev/null
+++ b/tests/spec/arb_bindless_texture/execution/images/ubo-named-block.shader_test
@@ -0,0 +1,51 @@
+# Test access to a uniform buffer object via dereferencing the block name,
+# where it has a structure which contains a bindless image.
+[require]
+GL >= 3.3
+GLSL >= 3.30
+GL_ARB_bindless_texture
+GL_ARB_shader_image_load_store
+
+[vertex shader passthrough]
+
+[fragment shader]
+#version 330
+#extension GL_ARB_bindless_texture: require
+#extension GL_ARB_shader_image_load_store: enable
+#extension GL_ARB_uniform_buffer_object: enable
+
+struct Struct {
+ vec4 color;
+ writeonly image2D img;
+};
+
+layout (std140) uniform Block {
+ Struct s;
+} block;
+
+out vec4 outcolor;
+
+void main()
+{
+ imageStore(block.s.img, ivec2(gl_FragCoord.xy), block.s.color);
+ outcolor = vec4(0.0, 0.0, 0.0, 1.0);
+}
+
+[test]
+# Texture 0 is the imageStore output.
+texture rgbw 0 (16, 16) GL_RGBA8
+resident image texture 0 GL_RGBA8
+uniform handle Block.s.img 0
+
+# Texture 1 is the rendering output. We don't care about this.
+texture rgbw 1 (16, 16) GL_RGBA8
+
+# Store red using imageStore
+uniform vec4 Block.s.color 1.0 0.0 0.0 1.0
+fb tex 2d 1
+draw rect -1 -1 2 2
+
+# Test the result of imageStore
+memory barrier GL_FRAMEBUFFER_BARRIER_BIT
+fb tex 2d 0
+probe all rgba 1.0 0.0 0.0 1.0
diff --git a/tests/spec/arb_bindless_texture/execution/samplers/ubo-named-block.shader_test b/tests/spec/arb_bindless_texture/execution/samplers/ubo-named-block.shader_test
new file mode 100644
index 000000000..5c3c4785f
--- /dev/null
+++ b/tests/spec/arb_bindless_texture/execution/samplers/ubo-named-block.shader_test
@@ -0,0 +1,37 @@
+# Test access to a uniform buffer object via dereferencing the block name,
+# where it has a structure which contains a bindless sampler.
+[require]
+GL >= 3.3
+GLSL >= 3.30
+GL_ARB_bindless_texture
+
+[vertex shader passthrough]
+
+[fragment shader]
+#version 330
+#extension GL_ARB_bindless_texture: require
+#extension GL_ARB_uniform_buffer_object: enable
+
+struct Struct {
+ uvec2 coord;
+ sampler2D tex;
+};
+
+layout (std140) uniform Block {
+ Struct s;
+} block;
+
+out vec4 color;
+
+void main()
+{
+ color = texture2D(block.s.tex, block.s.coord);
+}
+
+[test]
+texture rgbw 0 (16, 16)
+resident texture 0
+uniform uvec2 Block.s.coord 0 0
+uniform handle Block.s.tex 0
+draw rect -1 -1 2 2
+relative probe rgb (0.0, 0.0) (1.0, 0.0, 0.0)