aboutsummaryrefslogtreecommitdiff
path: root/tests/cases/compute_descriptor_array_storagetexelbuffer.amber
diff options
context:
space:
mode:
Diffstat (limited to 'tests/cases/compute_descriptor_array_storagetexelbuffer.amber')
-rw-r--r--tests/cases/compute_descriptor_array_storagetexelbuffer.amber63
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/cases/compute_descriptor_array_storagetexelbuffer.amber b/tests/cases/compute_descriptor_array_storagetexelbuffer.amber
new file mode 100644
index 0000000..d4a1994
--- /dev/null
+++ b/tests/cases/compute_descriptor_array_storagetexelbuffer.amber
@@ -0,0 +1,63 @@
+#!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[2];
+
+void main ()
+{
+ vec4 color = texelFetch(texelsIn, int(gl_GlobalInvocationID));
+ imageStore(texelsOut[0], int(gl_GlobalInvocationID), color);
+ imageStore(texelsOut[1], int(gl_GlobalInvocationID), color * 2.0);
+}
+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_out0 DATA_TYPE R32G32B32A32_SFLOAT SIZE 4 FILL 0
+BUFFER texel_buffer_out1 DATA_TYPE R32G32B32A32_SFLOAT SIZE 4 FILL 0
+
+BUFFER ref0 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
+
+BUFFER ref1 DATA_TYPE R32G32B32A32_SFLOAT DATA
+2.0 0.0 0.0 2.0
+0.0 2.0 0.0 2.0
+0.0 0.0 2.0 2.0
+0.0 2.0 2.0 2.0
+END
+
+PIPELINE compute pipeline
+ ATTACH compute_shader
+ BIND BUFFER texel_buffer_in AS uniform_texel_buffer DESCRIPTOR_SET 0 BINDING 0
+ BIND BUFFER_ARRAY texel_buffer_out0 texel_buffer_out1 AS storage_texel_buffer DESCRIPTOR_SET 0 BINDING 1
+END
+
+RUN pipeline 1 1 1
+
+EXPECT texel_buffer_out0 EQ_BUFFER ref0
+EXPECT texel_buffer_out1 EQ_BUFFER ref1