diff options
Diffstat (limited to 'tests/cases/compute_descriptor_array_storagetexelbuffer.amber')
-rw-r--r-- | tests/cases/compute_descriptor_array_storagetexelbuffer.amber | 63 |
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 |