From: aitor_lunarg Date: Wed, 5 Oct 2022 11:26:49 +0000 (+0200) Subject: Add remaining div by zero tests X-Git-Tag: upstream/1.3.5~133 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=679026e7e8b0797c526d887f15fdc528539502f3;p=platform%2Fupstream%2FVK-GL-CTS.git Add remaining div by zero tests This change adds remaining amber tests that execute various explicit and implicit division by zero operations, which should not crash or fail the rendering operation. New test: dEQP-VK.glsl.crash_test.divbyzero_vert dEQP-VK.glsl.crash_test.divbyzero_tesc dEQP-VK.glsl.crash_test.divbyzero_tese dEQP-VK.glsl.crash_test.divbyzero_geom Components: Vulkan VK-GL-CTS issue: 869 Change-Id: I5a448300ea81987d36ce1e2e977aa975fd5335ff --- diff --git a/android/cts/main/vk-master-2022-03-01/glsl.txt b/android/cts/main/vk-master-2022-03-01/glsl.txt index f76a089..be0075a 100644 --- a/android/cts/main/vk-master-2022-03-01/glsl.txt +++ b/android/cts/main/vk-master-2022-03-01/glsl.txt @@ -40,6 +40,10 @@ dEQP-VK.glsl.switch.empty_case_default_static_vertex dEQP-VK.glsl.switch.empty_case_default_static_fragment dEQP-VK.glsl.switch.empty_case_default_uniform_vertex dEQP-VK.glsl.switch.empty_case_default_uniform_fragment +dEQP-VK.glsl.crash_test.divbyzero_vert +dEQP-VK.glsl.crash_test.divbyzero_tesc +dEQP-VK.glsl.crash_test.divbyzero_tese +dEQP-VK.glsl.crash_test.divbyzero_geom dEQP-VK.glsl.crash_test.divbyzero_frag dEQP-VK.glsl.crash_test.divbyzero_comp dEQP-VK.glsl.builtin_var.fragcoord_msaa_input.1_bit_no_sample_shading diff --git a/android/cts/main/vk-master/glsl.txt b/android/cts/main/vk-master/glsl.txt index 8243f53..6819350 100644 --- a/android/cts/main/vk-master/glsl.txt +++ b/android/cts/main/vk-master/glsl.txt @@ -13080,6 +13080,10 @@ dEQP-VK.glsl.demote.function_static_loop_uniform dEQP-VK.glsl.demote.function_static_loop_dynamic dEQP-VK.glsl.demote.function_static_loop_texture dEQP-VK.glsl.demote.function_static_loop_deriv +dEQP-VK.glsl.crash_test.divbyzero_vert +dEQP-VK.glsl.crash_test.divbyzero_tesc +dEQP-VK.glsl.crash_test.divbyzero_tese +dEQP-VK.glsl.crash_test.divbyzero_geom dEQP-VK.glsl.crash_test.divbyzero_frag dEQP-VK.glsl.crash_test.divbyzero_comp dEQP-VK.glsl.conversions.scalar_to_scalar.float_to_float_vertex diff --git a/external/vulkancts/data/vulkan/amber/crash_test/divbyzero_geom.amber b/external/vulkancts/data/vulkan/amber/crash_test/divbyzero_geom.amber new file mode 100644 index 0000000..795e137 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/crash_test/divbyzero_geom.amber @@ -0,0 +1,125 @@ +#!amber +# Copyright 2022 Google LLC +# Copyright 2022 LunarG, Inc. +# +# 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 +# +# http://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. + +DEVICE_FEATURE geometryShader + +SHADER vertex vert_shader PASSTHROUGH + +SHADER geometry geom_shader GLSL +#version 450 + +layout (triangles) in; +layout (triangle_strip, max_vertices = 3) out; + +layout(set = 0, binding = 0) buffer block0 +{ + int data[20]; +} ssbo; + +void main(void) +{ + // Only want to perform these operations once + if(gl_InvocationID == 0) + { + // Zero constants + int ival = ssbo.data[0]; + float val = float(ival); + + // int div + ssbo.data[1] = 7 / ival; + // float div + ssbo.data[2] = int(7.0 / val); + // normalize float + ssbo.data[3] = int(normalize(val)); + // normalize vec2 + ssbo.data[4] = int(normalize(vec2(val))[ival]); + // normalize vec3 + ssbo.data[5] = int(normalize(vec3(val))[ival]); + // normalize vec4 + ssbo.data[6] = int(normalize(vec4(val))[ival]); + // integer mod + ssbo.data[7] = 7 % ival; + // float mod + ssbo.data[8] = int(mod(7.0, val)); + // vec2 mod + ssbo.data[9] = int(mod(vec2(7.0), vec2(val))[ival]); + // vec3 mod + ssbo.data[10] = int(mod(vec3(7.0), vec3(val))[ival]); + // vec4 mod + ssbo.data[11] = int(mod(vec4(7.0), vec4(val))[ival]); + // float smoothstep + ssbo.data[12] = int(smoothstep(val, val, 0.3)); + // vec2 smoothstep + ssbo.data[13] = int(smoothstep(vec2(val), vec2(val), vec2(0.3))[ival]); + // vec3 smoothstep + ssbo.data[14] = int(smoothstep(vec3(val), vec3(val), vec3(0.3))[ival]); + // vec4 smoothstep + ssbo.data[15] = int(smoothstep(vec4(val), vec4(val), vec4(0.3))[ival]); + // float atan2 + ssbo.data[16] = int(atan(7.0, val)); + // vec2 atan2 + ssbo.data[17] = int(atan(vec2(7.0), vec2(val))[ival]); + // vec3 atan2 + ssbo.data[18] = int(atan(vec3(7.0), vec3(val))[ival]); + // vec4 atan2 + ssbo.data[19] = int(atan(vec4(7.0), vec4(val))[ival]); + + // Known good value + ssbo.data[0] = 42; + } + + gl_Position = gl_in[0].gl_Position; + EmitVertex(); + + gl_Position = gl_in[1].gl_Position; + EmitVertex(); + + gl_Position = gl_in[2].gl_Position; + EmitVertex(); + + EndPrimitive(); +} +END + +SHADER fragment frag_shader GLSL +#version 450 + +layout (location = 0) out vec4 outColor; + +void main(void) +{ + outColor = vec4(1.0f, 0.0f, 0.0f, 1.0f); +} +END + +BUFFER ssbo_buffer DATA_TYPE int32 DATA +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +END + +BUFFER framebuffer FORMAT R8G8B8A8_UNORM + +PIPELINE graphics my_pipeline + ATTACH vert_shader + ATTACH geom_shader + ATTACH frag_shader + + BIND BUFFER framebuffer AS color LOCATION 0 + BIND BUFFER ssbo_buffer AS storage DESCRIPTOR_SET 0 BINDING 0 +END + +RUN my_pipeline DRAW_RECT POS 0 0 SIZE 32 32 + +EXPECT ssbo_buffer IDX 0 EQ 42 \ No newline at end of file diff --git a/external/vulkancts/data/vulkan/amber/crash_test/divbyzero_tesc.amber b/external/vulkancts/data/vulkan/amber/crash_test/divbyzero_tesc.amber new file mode 100644 index 0000000..e4abbfd --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/crash_test/divbyzero_tesc.amber @@ -0,0 +1,145 @@ +#!amber +# Copyright 2022 Google LLC +# Copyright 2022 LunarG, Inc. +# +# 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 +# +# http://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. + +DEVICE_FEATURE tessellationShader + +SHADER vertex vert_shader PASSTHROUGH + +SHADER tessellation_control tesc_shader GLSL +#version 450 + +layout (vertices = 3) out; + +layout(set = 0, binding = 0) buffer block0 +{ + int data[20]; +} ssbo; + +void main(void) +{ + gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position; + + // Only want to perform these operations once + if(gl_InvocationID == 0) + { + gl_TessLevelInner[0] = 1.0; + gl_TessLevelInner[1] = 1.0; + gl_TessLevelOuter[0] = 1.0; + gl_TessLevelOuter[1] = 1.0; + gl_TessLevelOuter[2] = 1.0; + + // Zero constants + int ival = ssbo.data[0]; + float val = float(ival); + + // int div + ssbo.data[1] = 7 / ival; + // float div + ssbo.data[2] = int(7.0 / val); + // normalize float + ssbo.data[3] = int(normalize(val)); + // normalize vec2 + ssbo.data[4] = int(normalize(vec2(val))[ival]); + // normalize vec3 + ssbo.data[5] = int(normalize(vec3(val))[ival]); + // normalize vec4 + ssbo.data[6] = int(normalize(vec4(val))[ival]); + // integer mod + ssbo.data[7] = 7 % ival; + // float mod + ssbo.data[8] = int(mod(7.0, val)); + // vec2 mod + ssbo.data[9] = int(mod(vec2(7.0), vec2(val))[ival]); + // vec3 mod + ssbo.data[10] = int(mod(vec3(7.0), vec3(val))[ival]); + // vec4 mod + ssbo.data[11] = int(mod(vec4(7.0), vec4(val))[ival]); + // float smoothstep + ssbo.data[12] = int(smoothstep(val, val, 0.3)); + // vec2 smoothstep + ssbo.data[13] = int(smoothstep(vec2(val), vec2(val), vec2(0.3))[ival]); + // vec3 smoothstep + ssbo.data[14] = int(smoothstep(vec3(val), vec3(val), vec3(0.3))[ival]); + // vec4 smoothstep + ssbo.data[15] = int(smoothstep(vec4(val), vec4(val), vec4(0.3))[ival]); + // float atan2 + ssbo.data[16] = int(atan(7.0, val)); + // vec2 atan2 + ssbo.data[17] = int(atan(vec2(7.0), vec2(val))[ival]); + // vec3 atan2 + ssbo.data[18] = int(atan(vec3(7.0), vec3(val))[ival]); + // vec4 atan2 + ssbo.data[19] = int(atan(vec4(7.0), vec4(val))[ival]); + + // Known good value + ssbo.data[0] = 42; + } +} +END + +SHADER tessellation_evaluation tese_shader GLSL +#version 450 + +layout (triangles, equal_spacing, cw) in; + +void main(void) +{ + gl_Position = (gl_TessCoord.x * gl_in[0].gl_Position) + + (gl_TessCoord.y * gl_in[1].gl_Position) + + (gl_TessCoord.z * gl_in[2].gl_Position); +} +END + +SHADER fragment frag_shader GLSL +#version 450 + +layout (location = 0) out vec4 outColor; + +void main(void) +{ + outColor = vec4(1.0f, 0.0f, 0.0f, 1.0f); +} +END + +BUFFER vertexPosition DATA_TYPE vec3 DATA +-0.50 -0.50 0.0 + 0.50 -0.50 0.0 + 0.50 0.50 0.0 + 0.50 0.50 0.0 +-0.50 0.50 0.0 +-0.50 -0.50 0.0 +END + +BUFFER ssbo_buffer DATA_TYPE int32 DATA +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +END + +BUFFER framebuffer FORMAT R8G8B8A8_UNORM + +PIPELINE graphics my_pipeline + ATTACH vert_shader + ATTACH tesc_shader + ATTACH tese_shader + ATTACH frag_shader + + VERTEX_DATA vertexPosition LOCATION 0 + BIND BUFFER framebuffer AS color LOCATION 0 + BIND BUFFER ssbo_buffer AS storage DESCRIPTOR_SET 0 BINDING 0 +END + +RUN my_pipeline DRAW_ARRAY AS PATCH_LIST START_IDX 0 COUNT 6 + +EXPECT ssbo_buffer IDX 0 EQ 42 \ No newline at end of file diff --git a/external/vulkancts/data/vulkan/amber/crash_test/divbyzero_tese.amber b/external/vulkancts/data/vulkan/amber/crash_test/divbyzero_tese.amber new file mode 100644 index 0000000..3161d72 --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/crash_test/divbyzero_tese.amber @@ -0,0 +1,148 @@ +#!amber +# Copyright 2022 Google LLC +# Copyright 2022 LunarG, Inc. +# +# 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 +# +# http://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. + +DEVICE_FEATURE tessellationShader + +SHADER vertex vert_shader PASSTHROUGH + +SHADER tessellation_control tesc_shader GLSL +#version 450 + +layout (vertices = 3) out; + +void main(void) +{ + gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position; + + if(gl_InvocationID == 0) + { + gl_TessLevelInner[0] = 1.0; + gl_TessLevelInner[1] = 1.0; + gl_TessLevelOuter[0] = 1.0; + gl_TessLevelOuter[1] = 1.0; + gl_TessLevelOuter[2] = 1.0; + } +} +END + +SHADER tessellation_evaluation tese_shader GLSL +#version 450 + +layout (triangles, equal_spacing, cw) in; + +layout(set = 0, binding = 0) buffer block0 +{ + int data[20]; +} ssbo; + +void main(void) +{ + gl_Position = (gl_TessCoord.x * gl_in[0].gl_Position) + + (gl_TessCoord.y * gl_in[1].gl_Position) + + (gl_TessCoord.z * gl_in[2].gl_Position); + + // Only want to perform these operations once + if(gl_Position.x == 0.5f && gl_Position.y == -0.5f) + { + // Zero constants + int ival = ssbo.data[0]; + float val = float(ival); + + // int div + ssbo.data[1] = 7 / ival; + // float div + ssbo.data[2] = int(7.0 / val); + // normalize float + ssbo.data[3] = int(normalize(val)); + // normalize vec2 + ssbo.data[4] = int(normalize(vec2(val))[ival]); + // normalize vec3 + ssbo.data[5] = int(normalize(vec3(val))[ival]); + // normalize vec4 + ssbo.data[6] = int(normalize(vec4(val))[ival]); + // integer mod + ssbo.data[7] = 7 % ival; + // float mod + ssbo.data[8] = int(mod(7.0, val)); + // vec2 mod + ssbo.data[9] = int(mod(vec2(7.0), vec2(val))[ival]); + // vec3 mod + ssbo.data[10] = int(mod(vec3(7.0), vec3(val))[ival]); + // vec4 mod + ssbo.data[11] = int(mod(vec4(7.0), vec4(val))[ival]); + // float smoothstep + ssbo.data[12] = int(smoothstep(val, val, 0.3)); + // vec2 smoothstep + ssbo.data[13] = int(smoothstep(vec2(val), vec2(val), vec2(0.3))[ival]); + // vec3 smoothstep + ssbo.data[14] = int(smoothstep(vec3(val), vec3(val), vec3(0.3))[ival]); + // vec4 smoothstep + ssbo.data[15] = int(smoothstep(vec4(val), vec4(val), vec4(0.3))[ival]); + // float atan2 + ssbo.data[16] = int(atan(7.0, val)); + // vec2 atan2 + ssbo.data[17] = int(atan(vec2(7.0), vec2(val))[ival]); + // vec3 atan2 + ssbo.data[18] = int(atan(vec3(7.0), vec3(val))[ival]); + // vec4 atan2 + ssbo.data[19] = int(atan(vec4(7.0), vec4(val))[ival]); + + // Known good value + ssbo.data[0] = 42; + } +} +END + +SHADER fragment frag_shader GLSL +#version 450 + +layout (location = 0) out vec4 outColor; + +void main(void) +{ + outColor = vec4(1.0f, 0.0f, 0.0f, 1.0f); +} +END + +BUFFER vertexPosition DATA_TYPE vec3 DATA +-0.50 -0.50 0.0 + 0.50 -0.50 0.0 + 0.50 0.50 0.0 + 0.50 0.50 0.0 +-0.50 0.50 0.0 +-0.50 -0.50 0.0 +END + +BUFFER ssbo_buffer DATA_TYPE int32 DATA +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +END + +BUFFER framebuffer FORMAT R8G8B8A8_UNORM + +PIPELINE graphics my_pipeline + ATTACH vert_shader + ATTACH tesc_shader + ATTACH tese_shader + ATTACH frag_shader + + VERTEX_DATA vertexPosition LOCATION 0 + BIND BUFFER framebuffer AS color LOCATION 0 + BIND BUFFER ssbo_buffer AS storage DESCRIPTOR_SET 0 BINDING 0 +END + +RUN my_pipeline DRAW_ARRAY AS PATCH_LIST START_IDX 0 COUNT 6 + +EXPECT ssbo_buffer IDX 0 EQ 42 \ No newline at end of file diff --git a/external/vulkancts/data/vulkan/amber/crash_test/divbyzero_vert.amber b/external/vulkancts/data/vulkan/amber/crash_test/divbyzero_vert.amber new file mode 100644 index 0000000..2443ffb --- /dev/null +++ b/external/vulkancts/data/vulkan/amber/crash_test/divbyzero_vert.amber @@ -0,0 +1,106 @@ +#!amber +# Copyright 2022 Google LLC +# Copyright 2022 LunarG, Inc. +# +# 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 +# +# http://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 450 +layout(location = 0) in vec2 vertex_position; + +layout(set = 0, binding = 0) buffer block0 +{ + int data[20]; +} ssbo; + +void main() +{ + gl_Position = vec4(vertex_position, 0.0f, 1.0f); + + // Only want to perform these operations once + if(gl_VertexIndex == 0) + { + // Zero constants + int ival = ssbo.data[0]; + float val = float(ival); + + // int div + ssbo.data[1] = 7 / ival; + // float div + ssbo.data[2] = int(7.0 / val); + // normalize float + ssbo.data[3] = int(normalize(val)); + // normalize vec2 + ssbo.data[4] = int(normalize(vec2(val))[ival]); + // normalize vec3 + ssbo.data[5] = int(normalize(vec3(val))[ival]); + // normalize vec4 + ssbo.data[6] = int(normalize(vec4(val))[ival]); + // integer mod + ssbo.data[7] = 7 % ival; + // float mod + ssbo.data[8] = int(mod(7.0, val)); + // vec2 mod + ssbo.data[9] = int(mod(vec2(7.0), vec2(val))[ival]); + // vec3 mod + ssbo.data[10] = int(mod(vec3(7.0), vec3(val))[ival]); + // vec4 mod + ssbo.data[11] = int(mod(vec4(7.0), vec4(val))[ival]); + // float smoothstep + ssbo.data[12] = int(smoothstep(val, val, 0.3)); + // vec2 smoothstep + ssbo.data[13] = int(smoothstep(vec2(val), vec2(val), vec2(0.3))[ival]); + // vec3 smoothstep + ssbo.data[14] = int(smoothstep(vec3(val), vec3(val), vec3(0.3))[ival]); + // vec4 smoothstep + ssbo.data[15] = int(smoothstep(vec4(val), vec4(val), vec4(0.3))[ival]); + // float atan2 + ssbo.data[16] = int(atan(7.0, val)); + // vec2 atan2 + ssbo.data[17] = int(atan(vec2(7.0), vec2(val))[ival]); + // vec3 atan2 + ssbo.data[18] = int(atan(vec3(7.0), vec3(val))[ival]); + // vec4 atan2 + ssbo.data[19] = int(atan(vec4(7.0), vec4(val))[ival]); + + // Known good value + ssbo.data[0] = 42; + } +} +END + + +SHADER fragment frag_shader GLSL +#version 450 +layout(location = 0) out vec4 color_out; +void main() { + color_out = vec4(1.0, 0.0, 0.0, 1.0); +} +END + +BUFFER ssbo_buffer DATA_TYPE int32 DATA +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +END + +BUFFER framebuffer FORMAT B8G8R8A8_UNORM + +PIPELINE graphics my_pipeline + ATTACH vert_shader + ATTACH frag_shader + BIND BUFFER framebuffer AS color LOCATION 0 + BIND BUFFER ssbo_buffer AS storage DESCRIPTOR_SET 0 BINDING 0 +END + +RUN my_pipeline DRAW_RECT POS 0 0 SIZE 32 32 + +EXPECT ssbo_buffer IDX 0 EQ 42 diff --git a/external/vulkancts/modules/vulkan/amber/vktAmberGlslTests.cpp b/external/vulkancts/modules/vulkan/amber/vktAmberGlslTests.cpp index d5f68c4..55f7001 100644 --- a/external/vulkancts/modules/vulkan/amber/vktAmberGlslTests.cpp +++ b/external/vulkancts/modules/vulkan/amber/vktAmberGlslTests.cpp @@ -53,17 +53,27 @@ tcu::TestCaseGroup* createCombinedOperationsGroup (tcu::TestContext& testCtx) tcu::TestCaseGroup* createCrashTestGroup (tcu::TestContext& testCtx) { - static const std::string kGroupName = "crash_test"; - static const std::vector> crashTests = + struct TestParameters { - { "divbyzero_frag", "Fragment shader division by zero tests" }, - { "divbyzero_comp", "Compute shader division by zero tests" }, + std::string name; + std::string description; + std::vector requirements; + }; + static const std::string kGroupName = "crash_test"; + static const std::vector crashTestParameters = + { + { "divbyzero_vert", "Vertex shader division by zero tests", {} }, + { "divbyzero_tesc", "Tessellation control shader division by zero tests", { "Features.tessellationShader" }}, + { "divbyzero_tese", "Tessellation evaluation shader division by zero tests", { "Features.tessellationShader" }}, + { "divbyzero_geom", "Geoemtry shader division by zero tests", { "Features.geometryShader" }}, + { "divbyzero_frag", "Fragment shader division by zero tests", {} }, + { "divbyzero_comp", "Compute shader division by zero tests", {} }, }; - de::MovePtr group{new tcu::TestCaseGroup{testCtx, kGroupName.c_str(), "Crash test group"}}; - for (const auto& test : crashTests) + de::MovePtr group{new tcu::TestCaseGroup{testCtx, kGroupName.c_str(), "Crash test group"}}; + for (const auto& params : crashTestParameters) { - group->addChild(createAmberTestCase(testCtx, test.first.c_str(), test.second.c_str(), kGroupName.c_str(), test.first + ".amber")); + group->addChild(createAmberTestCase(testCtx, params.name.c_str(), params.description.c_str(), kGroupName.c_str(), params.name + ".amber", params.requirements)); } return group.release(); } diff --git a/external/vulkancts/mustpass/main/vk-default/glsl.txt b/external/vulkancts/mustpass/main/vk-default/glsl.txt index edde261..62ea76d 100644 --- a/external/vulkancts/mustpass/main/vk-default/glsl.txt +++ b/external/vulkancts/mustpass/main/vk-default/glsl.txt @@ -13128,6 +13128,10 @@ dEQP-VK.glsl.demote.function_static_loop_uniform dEQP-VK.glsl.demote.function_static_loop_dynamic dEQP-VK.glsl.demote.function_static_loop_texture dEQP-VK.glsl.demote.function_static_loop_deriv +dEQP-VK.glsl.crash_test.divbyzero_vert +dEQP-VK.glsl.crash_test.divbyzero_tesc +dEQP-VK.glsl.crash_test.divbyzero_tese +dEQP-VK.glsl.crash_test.divbyzero_geom dEQP-VK.glsl.crash_test.divbyzero_frag dEQP-VK.glsl.crash_test.divbyzero_comp dEQP-VK.glsl.conversions.scalar_to_scalar.float_to_float_vertex