aboutsummaryrefslogtreecommitdiff
path: root/tests/cases/opencl_write_image.amber
diff options
context:
space:
mode:
Diffstat (limited to 'tests/cases/opencl_write_image.amber')
-rw-r--r--tests/cases/opencl_write_image.amber45
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/cases/opencl_write_image.amber b/tests/cases/opencl_write_image.amber
new file mode 100644
index 0000000..28ada5a
--- /dev/null
+++ b/tests/cases/opencl_write_image.amber
@@ -0,0 +1,45 @@
+#!amber
+# Copyright 2019 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 write_imagef OPENCL-C
+kernel void foo(write_only image2d_t image, global float4* data) {
+ int gid_x = get_global_id(0);
+ int gid_y = get_global_id(1);
+ int linear = 2 * gid_y + gid_x;
+ int2 coord = (int2)(gid_x, gid_y);
+ write_imagef(image, coord, data[linear]);
+}
+END
+
+IMAGE texture DATA_TYPE vec4<float> DIM_2D WIDTH 2 HEIGHT 2 FILL 0.0
+BUFFER data DATA_TYPE vec4<float> DATA
+1.0 2.0 3.0 4.0
+2.0 3.0 4.0 1.0
+3.0 4.0 1.0 2.0
+4.0 1.0 2.0 3.0
+END
+
+PIPELINE compute read_pipe
+ ATTACH write_imagef ENTRY_POINT foo
+ BIND BUFFER data KERNEL ARG_NAME data
+ BIND BUFFER texture KERNEL ARG_NAME image
+END
+
+RUN read_pipe 2 2 1
+
+EXPECT texture IDX 0 EQ 1.0 2.0 3.0 4.0
+EXPECT texture IDX 16 EQ 2.0 3.0 4.0 1.0
+EXPECT texture IDX 32 EQ 3.0 4.0 1.0 2.0
+EXPECT texture IDX 48 EQ 4.0 1.0 2.0 3.0