Add test case for negative int div and
authorJari Komppa <jari.komppa@siru.fi>
Wed, 25 Mar 2020 13:47:14 +0000 (15:47 +0200)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Thu, 9 Apr 2020 07:12:33 +0000 (03:12 -0400)
Test for a case where negative integer is divided and then and:ed.

New tests:
dEQP-VK.glsl.combined_operations.negintdivand

Components: Vulkan
VK-GL-CTS issue: 2279

Change-Id: I9838ec66d48cbedb555c75ab82a2228287d63436

android/cts/master/vk-master-2020-03-01.txt
android/cts/master/vk-master.txt
external/vulkancts/data/vulkan/amber/combined_operations/negintdivand.amber [new file with mode: 0644]
external/vulkancts/modules/vulkan/amber/vktAmberGlslTests.cpp
external/vulkancts/mustpass/master/vk-default-no-waivers.txt
external/vulkancts/mustpass/master/vk-default.txt

index 68b50e5..6b79f5b 100644 (file)
@@ -94136,6 +94136,7 @@ dEQP-VK.glsl.shader_clock.compute.clock2x32ARB
 dEQP-VK.glsl.shader_clock.compute.clockRealtimeEXT
 dEQP-VK.glsl.shader_clock.compute.clockRealtime2x32EXT
 dEQP-VK.glsl.combined_operations.notxor
+dEQP-VK.glsl.combined_operations.negintdivand
 dEQP-VK.renderpass.suballocation.multisample.separate_stencil_usage.d16_unorm_s8_uint.samples_2.test_depth
 dEQP-VK.renderpass.suballocation.multisample.separate_stencil_usage.d16_unorm_s8_uint.samples_2.test_stencil
 dEQP-VK.renderpass.suballocation.multisample.separate_stencil_usage.d16_unorm_s8_uint.samples_4.test_depth
index a5fec9e..fa78ca6 100644 (file)
@@ -357482,6 +357482,7 @@ dEQP-VK.glsl.shader_clock.compute.clock2x32ARB
 dEQP-VK.glsl.shader_clock.compute.clockRealtimeEXT
 dEQP-VK.glsl.shader_clock.compute.clockRealtime2x32EXT
 dEQP-VK.glsl.combined_operations.notxor
+dEQP-VK.glsl.combined_operations.negintdivand
 dEQP-VK.renderpass.suballocation.simple.color
 dEQP-VK.renderpass.suballocation.simple.depth
 dEQP-VK.renderpass.suballocation.simple.stencil
diff --git a/external/vulkancts/data/vulkan/amber/combined_operations/negintdivand.amber b/external/vulkancts/data/vulkan/amber/combined_operations/negintdivand.amber
new file mode 100644 (file)
index 0000000..187a8e2
--- /dev/null
@@ -0,0 +1,53 @@
+#!amber
+# Copyright 2020 The Amber Authors.
+# Copyright 2020 The Google LLC
+#
+# 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 GLSL
+#version 430
+
+layout(location = 0) in vec4 position;
+layout(location = 1) out vec4 frag_color;
+
+void main() {
+  gl_Position = position;
+  frag_color = position * 0.5;
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) out vec4 color_out;
+layout(location = 1) in vec4 frag_color;
+void main() {
+  ivec2 iv = ivec2(frag_color.xy * 256);
+  if (((iv.y / 2) & 64) == 64)
+    color_out = vec4(1, 0, 0, 1);
+  else
+    color_out = vec4(0, 1, 1, 1);
+}
+END
+
+BUFFER framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics my_pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  BIND BUFFER framebuffer AS color LOCATION 0
+END
+
+RUN my_pipeline DRAW_RECT POS 0 0 SIZE 250 250
+EXPECT framebuffer IDX 0 220 SIZE 30 30 EQ_RGBA 0 255 255 255
+EXPECT framebuffer IDX 0 0 SIZE 30 30 EQ_RGBA 255 0 0 255
+
index 610792b..727aee7 100644 (file)
@@ -39,7 +39,8 @@ tcu::TestCaseGroup*   createCombinedOperationsGroup (tcu::TestContext& testCtx)
        static const std::string                                                                                kGroupName                              = "combined_operations";
        static const std::vector<std::pair<std::string, std::string>>   combinedOperationsTests =
        {
-               { "notxor",     "Bitwise negation of a bitwise xor operation"   },
+               { "notxor",                     "Bitwise negation of a bitwise xor operation"           },
+               { "negintdivand",       "Bitwise and of a negative value that was divided"      },
        };
 
        de::MovePtr<tcu::TestCaseGroup> group{new tcu::TestCaseGroup{testCtx, kGroupName.c_str(), "Combined operations test group"}};
index 106d4b5..4ce7230 100644 (file)
@@ -357393,6 +357393,7 @@ dEQP-VK.glsl.shader_clock.compute.clock2x32ARB
 dEQP-VK.glsl.shader_clock.compute.clockRealtimeEXT
 dEQP-VK.glsl.shader_clock.compute.clockRealtime2x32EXT
 dEQP-VK.glsl.combined_operations.notxor
+dEQP-VK.glsl.combined_operations.negintdivand
 dEQP-VK.renderpass.suballocation.simple.color
 dEQP-VK.renderpass.suballocation.simple.depth
 dEQP-VK.renderpass.suballocation.simple.stencil
index eb7e134..cf37b4e 100644 (file)
@@ -357355,6 +357355,7 @@ dEQP-VK.glsl.shader_clock.compute.clock2x32ARB
 dEQP-VK.glsl.shader_clock.compute.clockRealtimeEXT
 dEQP-VK.glsl.shader_clock.compute.clockRealtime2x32EXT
 dEQP-VK.glsl.combined_operations.notxor
+dEQP-VK.glsl.combined_operations.negintdivand
 dEQP-VK.renderpass.suballocation.simple.color
 dEQP-VK.renderpass.suballocation.simple.depth
 dEQP-VK.renderpass.suballocation.simple.stencil