aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorasuonpaa <34128694+asuonpaa@users.noreply.github.com>2020-05-20 20:00:00 +0300
committerGitHub <noreply@github.com>2020-05-20 13:00:00 -0400
commit5c66570fe01c0bca32246b66e9561a219128f244 (patch)
treed94722facc9cae113539a32537724fd161d29733 /tests
parent94e2e84b3cf375c3b8f9fb58d90bab1ca22de8c8 (diff)
downloadamber-5c66570fe01c0bca32246b66e9561a219128f244.tar.gz
Add support for uniform/storage texel buffers (#862)
Add support for uniform/storage texel buffers. Fixes #861
Diffstat (limited to 'tests')
-rw-r--r--tests/cases/draw_storagetexelbuffer.amber53
-rw-r--r--tests/cases/draw_uniformtexelbuffer.amber56
2 files changed, 109 insertions, 0 deletions
diff --git a/tests/cases/draw_storagetexelbuffer.amber b/tests/cases/draw_storagetexelbuffer.amber
new file mode 100644
index 0000000..285c08e
--- /dev/null
+++ b/tests/cases/draw_storagetexelbuffer.amber
@@ -0,0 +1,53 @@
+#!amber
+# Copyright 2020 The Amber Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER compute compute_shader GLSL
+#version 430
+layout(local_size_x=4,local_size_y=1) in;
+uniform layout(set=0, binding=0) samplerBuffer texelsIn;
+uniform layout(set=0, binding=1, rgba32f) imageBuffer texelsOut;
+
+void main ()
+{
+ vec4 color = texelFetch(texelsIn, int(gl_GlobalInvocationID));
+ imageStore(texelsOut, int(gl_GlobalInvocationID), color);
+}
+END
+
+BUFFER texel_buffer_in DATA_TYPE R8G8B8A8_UNORM DATA
+255 0 0 255
+ 0 255 0 255
+ 0 0 255 255
+ 0 255 255 255
+END
+
+BUFFER texel_buffer_out DATA_TYPE R32G32B32A32_SFLOAT SIZE 4 FILL 0
+
+BUFFER ref DATA_TYPE R32G32B32A32_SFLOAT DATA
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+0.0 1.0 1.0 1.0
+END
+
+PIPELINE compute pipeline
+ ATTACH compute_shader
+ BIND BUFFER texel_buffer_in AS uniform_texel_buffer DESCRIPTOR_SET 0 BINDING 0
+ BIND BUFFER texel_buffer_out AS storage_texel_buffer DESCRIPTOR_SET 0 BINDING 1
+END
+
+RUN pipeline 1 1 1
+
+EXPECT texel_buffer_out EQ_BUFFER ref
diff --git a/tests/cases/draw_uniformtexelbuffer.amber b/tests/cases/draw_uniformtexelbuffer.amber
new file mode 100644
index 0000000..4ece208
--- /dev/null
+++ b/tests/cases/draw_uniformtexelbuffer.amber
@@ -0,0 +1,56 @@
+#!amber
+# Copyright 2020 The Amber Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader PASSTHROUGH
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) out vec4 color_out;
+uniform layout(set=0, binding=0) samplerBuffer texels;
+
+void main()
+{
+ color_out = texelFetch(texels, int(gl_FragCoord.x) % 4);
+}
+END
+
+BUFFER texel_buffer DATA_TYPE R8G8B8A8_UNORM DATA
+255 0 0 255
+ 0 255 0 255
+ 0 0 255 255
+ 0 255 255 255
+END
+
+BUFFER framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics pipeline
+ ATTACH vert_shader
+ ATTACH frag_shader
+ BIND BUFFER texel_buffer AS uniform_texel_buffer DESCRIPTOR_SET 0 BINDING 0
+ FRAMEBUFFER_SIZE 256 256
+ BIND BUFFER framebuffer AS color LOCATION 0
+END
+
+CLEAR_COLOR pipeline 0 0 255 255
+CLEAR pipeline
+RUN pipeline DRAW_RECT POS 50 50 SIZE 100 100
+
+EXPECT framebuffer IDX 50 50 SIZE 1 100 EQ_RGBA 0 0 255 255
+EXPECT framebuffer IDX 51 50 SIZE 1 100 EQ_RGBA 0 255 255 255
+EXPECT framebuffer IDX 52 50 SIZE 1 100 EQ_RGBA 255 0 0 255
+EXPECT framebuffer IDX 53 50 SIZE 1 100 EQ_RGBA 0 255 0 255
+EXPECT framebuffer IDX 54 50 SIZE 1 100 EQ_RGBA 0 0 255 255
+EXPECT framebuffer IDX 55 50 SIZE 1 100 EQ_RGBA 0 255 255 255
+EXPECT framebuffer IDX 56 50 SIZE 1 100 EQ_RGBA 255 0 0 255
+EXPECT framebuffer IDX 57 50 SIZE 1 100 EQ_RGBA 0 255 0 255