[spirv-reader][ir] ICE on various execution mode flags.
Several of the execution mode flags are not support in WGSL. ICE with an
appropriate error message. Remove the `vk-gl-cts` tests which reference
the execution modes.
Bug: 429624853, 429624970
Change-Id: I994d220fa7ee18c32d73103366a2832800b03791
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/251434
Auto-Submit: dan sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Commit-Queue: James Price <jrprice@google.com>
diff --git a/src/tint/lang/spirv/reader/parser/BUILD.bazel b/src/tint/lang/spirv/reader/parser/BUILD.bazel
index 48335aa..a929fc7 100644
--- a/src/tint/lang/spirv/reader/parser/BUILD.bazel
+++ b/src/tint/lang/spirv/reader/parser/BUILD.bazel
@@ -96,6 +96,7 @@
"composite_test.cc",
"constant_test.cc",
"convert_test.cc",
+ "execution_mode_test.cc",
"function_test.cc",
"helper_test.h",
"image_sampler_test.cc",
diff --git a/src/tint/lang/spirv/reader/parser/BUILD.cmake b/src/tint/lang/spirv/reader/parser/BUILD.cmake
index c832152..060efd6 100644
--- a/src/tint/lang/spirv/reader/parser/BUILD.cmake
+++ b/src/tint/lang/spirv/reader/parser/BUILD.cmake
@@ -106,6 +106,7 @@
lang/spirv/reader/parser/composite_test.cc
lang/spirv/reader/parser/constant_test.cc
lang/spirv/reader/parser/convert_test.cc
+ lang/spirv/reader/parser/execution_mode_test.cc
lang/spirv/reader/parser/function_test.cc
lang/spirv/reader/parser/helper_test.h
lang/spirv/reader/parser/image_sampler_test.cc
diff --git a/src/tint/lang/spirv/reader/parser/BUILD.gn b/src/tint/lang/spirv/reader/parser/BUILD.gn
index 949d77a..14400da 100644
--- a/src/tint/lang/spirv/reader/parser/BUILD.gn
+++ b/src/tint/lang/spirv/reader/parser/BUILD.gn
@@ -103,6 +103,7 @@
"composite_test.cc",
"constant_test.cc",
"convert_test.cc",
+ "execution_mode_test.cc",
"function_test.cc",
"helper_test.h",
"image_sampler_test.cc",
diff --git a/src/tint/lang/spirv/reader/parser/execution_mode_test.cc b/src/tint/lang/spirv/reader/parser/execution_mode_test.cc
new file mode 100644
index 0000000..2b037cd
--- /dev/null
+++ b/src/tint/lang/spirv/reader/parser/execution_mode_test.cc
@@ -0,0 +1,150 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "src/tint/lang/spirv/reader/parser/helper_test.h"
+
+namespace tint::spirv::reader {
+namespace {
+
+TEST_F(SpirvParserDeathTest, ExecutionMode_DepthGreater) {
+ auto spirv_asm = R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Fragment %main "main"
+ OpExecutionMode %main OriginUpperLeft
+ OpExecutionMode %main DepthGreater
+ OpName %main "main"
+ %void = OpTypeVoid
+ %6 = OpTypeFunction %void
+ %main = OpFunction %void None %6
+ %15 = OpLabel
+ OpReturn
+ OpFunctionEnd
+)";
+
+ EXPECT_DEATH_IF_SUPPORTED(
+ {
+ auto binary = Assemble(spirv_asm, SPV_ENV_UNIVERSAL_1_0);
+ if (binary != Success) {
+ return;
+ }
+
+ [[maybe_unused]] auto res =
+ Parse(Slice(binary.Get().data(), binary.Get().size()), options);
+ },
+ "ExecutionMode DepthGreater is not supported");
+}
+
+TEST_F(SpirvParserDeathTest, ExecutionMode_DepthLess) {
+ auto spirv_asm = R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Fragment %main "main"
+ OpExecutionMode %main OriginUpperLeft
+ OpExecutionMode %main DepthLess
+ OpName %main "main"
+ %void = OpTypeVoid
+ %6 = OpTypeFunction %void
+ %main = OpFunction %void None %6
+ %15 = OpLabel
+ OpReturn
+ OpFunctionEnd
+)";
+
+ EXPECT_DEATH_IF_SUPPORTED(
+ {
+ auto binary = Assemble(spirv_asm, SPV_ENV_UNIVERSAL_1_0);
+ if (binary != Success) {
+ return;
+ }
+
+ [[maybe_unused]] auto res =
+ Parse(Slice(binary.Get().data(), binary.Get().size()), options);
+ },
+ "ExecutionMode DepthLess is not supported");
+}
+
+TEST_F(SpirvParserDeathTest, ExecutionMode_DepthUnchanged) {
+ auto spirv_asm = R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Fragment %main "main"
+ OpExecutionMode %main OriginUpperLeft
+ OpExecutionMode %main DepthUnchanged
+ OpName %main "main"
+ %void = OpTypeVoid
+ %6 = OpTypeFunction %void
+ %main = OpFunction %void None %6
+ %15 = OpLabel
+ OpReturn
+ OpFunctionEnd
+)";
+
+ EXPECT_DEATH_IF_SUPPORTED(
+ {
+ auto binary = Assemble(spirv_asm, SPV_ENV_UNIVERSAL_1_0);
+ if (binary != Success) {
+ return;
+ }
+
+ [[maybe_unused]] auto res =
+ Parse(Slice(binary.Get().data(), binary.Get().size()), options);
+ },
+ "ExecutionMode DepthUnchanged is not supported");
+}
+
+TEST_F(SpirvParserDeathTest, ExecutionMode_EarlyFragmentTest) {
+ auto spirv_asm = R"(
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Fragment %main "main"
+ OpExecutionMode %main OriginUpperLeft
+ OpExecutionMode %main EarlyFragmentTests
+ OpName %main "main"
+ %void = OpTypeVoid
+ %6 = OpTypeFunction %void
+ %main = OpFunction %void None %6
+ %15 = OpLabel
+ OpReturn
+ OpFunctionEnd
+)";
+
+ EXPECT_DEATH_IF_SUPPORTED(
+ {
+ auto binary = Assemble(spirv_asm, SPV_ENV_UNIVERSAL_1_0);
+ if (binary != Success) {
+ return;
+ }
+
+ [[maybe_unused]] auto res =
+ Parse(Slice(binary.Get().data(), binary.Get().size()), options);
+ },
+ "ExecutionMode EarlyFragmentTests is not supported");
+}
+
+} // namespace
+} // namespace tint::spirv::reader
diff --git a/src/tint/lang/spirv/reader/parser/parser.cc b/src/tint/lang/spirv/reader/parser/parser.cc
index c3b5c86..2436fe4 100644
--- a/src/tint/lang/spirv/reader/parser/parser.cc
+++ b/src/tint/lang/spirv/reader/parser/parser.cc
@@ -1508,6 +1508,18 @@
b_.Constant(u32(execution_mode.GetSingleWordInOperand(3))),
b_.Constant(u32(execution_mode.GetSingleWordInOperand(4))));
break;
+ case spv::ExecutionMode::DepthGreater:
+ TINT_ICE() << "ExecutionMode DepthGreater is not supported in WGSL";
+ /* Ice aborts, so this doesn't fallthrough */
+ case spv::ExecutionMode::DepthLess:
+ TINT_ICE() << "ExecutionMode DepthLess is not supported in WGSL";
+ /* Ice aborts, so this doesn't fallthrough */
+ case spv::ExecutionMode::DepthUnchanged:
+ TINT_ICE() << "ExecutionMode DepthUnchanged is not supported in WGSL";
+ /* Ice aborts, so this doesn't fallthrough */
+ case spv::ExecutionMode::EarlyFragmentTests:
+ TINT_ICE() << "ExecutionMode EarlyFragmentTests is not supported in WGSL";
+ /* Ice aborts, so this doesn't fallthrough */
case spv::ExecutionMode::DepthReplacing:
case spv::ExecutionMode::OriginUpperLeft:
// These are ignored as they are implicitly supported by Tint IR.
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.spvasm b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.spvasm
deleted file mode 100644
index c63fe28..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.spvasm
+++ /dev/null
@@ -1,31 +0,0 @@
- OpCapability Shader
- %1 = OpExtInstImport "GLSL.std.450"
- OpMemoryModel Logical GLSL450
- OpEntryPoint Fragment %main "main" %color_out %gl_FragDepth
- OpExecutionMode %main OriginUpperLeft
- OpExecutionMode %main EarlyFragmentTests
- OpExecutionMode %main DepthReplacing
- OpSource GLSL 430
- OpName %main "main"
- OpName %color_out "color_out"
- OpName %gl_FragDepth "gl_FragDepth"
- OpDecorate %color_out Location 0
- OpDecorate %gl_FragDepth BuiltIn FragDepth
- %void = OpTypeVoid
- %6 = OpTypeFunction %void
- %float = OpTypeFloat 32
- %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
- %color_out = OpVariable %_ptr_Output_v4float Output
- %float_1 = OpConstant %float 1
- %float_0 = OpConstant %float 0
- %12 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-%_ptr_Output_float = OpTypePointer Output %float
-%gl_FragDepth = OpVariable %_ptr_Output_float Output
-%float_0_300000012 = OpConstant %float 0.300000012
- %main = OpFunction %void None %6
- %15 = OpLabel
- OpStore %color_out %12
- OpStore %gl_FragDepth %float_0_300000012
- OpReturn
- OpFunctionEnd
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.spvasm b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.spvasm
deleted file mode 100644
index 490b9ef..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.spvasm
+++ /dev/null
@@ -1,32 +0,0 @@
- OpCapability Shader
- %1 = OpExtInstImport "GLSL.std.450"
- OpMemoryModel Logical GLSL450
- OpEntryPoint Fragment %main "main" %color_out %gl_FragDepth
- OpExecutionMode %main OriginUpperLeft
- OpExecutionMode %main EarlyFragmentTests
- OpExecutionMode %main DepthReplacing
- OpExecutionMode %main DepthGreater
- OpSource GLSL 430
- OpName %main "main"
- OpName %color_out "color_out"
- OpName %gl_FragDepth "gl_FragDepth"
- OpDecorate %color_out Location 0
- OpDecorate %gl_FragDepth BuiltIn FragDepth
- %void = OpTypeVoid
- %6 = OpTypeFunction %void
- %float = OpTypeFloat 32
- %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
- %color_out = OpVariable %_ptr_Output_v4float Output
- %float_1 = OpConstant %float 1
- %float_0 = OpConstant %float 0
- %12 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-%_ptr_Output_float = OpTypePointer Output %float
-%gl_FragDepth = OpVariable %_ptr_Output_float Output
-%float_0_400000006 = OpConstant %float 0.400000006
- %main = OpFunction %void None %6
- %15 = OpLabel
- OpStore %color_out %12
- OpStore %gl_FragDepth %float_0_400000006
- OpReturn
- OpFunctionEnd
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.spvasm b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.spvasm
deleted file mode 100644
index c195cb3..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.spvasm
+++ /dev/null
@@ -1,31 +0,0 @@
- OpCapability Shader
- %1 = OpExtInstImport "GLSL.std.450"
- OpMemoryModel Logical GLSL450
- OpEntryPoint Fragment %main "main" %color_out %gl_FragDepth
- OpExecutionMode %main OriginUpperLeft
- OpExecutionMode %main EarlyFragmentTests
- OpExecutionMode %main DepthReplacing
- OpSource GLSL 430
- OpName %main "main"
- OpName %color_out "color_out"
- OpName %gl_FragDepth "gl_FragDepth"
- OpDecorate %color_out Location 0
- OpDecorate %gl_FragDepth BuiltIn FragDepth
- %void = OpTypeVoid
- %6 = OpTypeFunction %void
- %float = OpTypeFloat 32
- %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
- %color_out = OpVariable %_ptr_Output_v4float Output
- %float_1 = OpConstant %float 1
- %float_0 = OpConstant %float 0
- %12 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-%_ptr_Output_float = OpTypePointer Output %float
-%gl_FragDepth = OpVariable %_ptr_Output_float Output
-%float_0_699999988 = OpConstant %float 0.699999988
- %main = OpFunction %void None %6
- %15 = OpLabel
- OpStore %color_out %12
- OpStore %gl_FragDepth %float_0_699999988
- OpReturn
- OpFunctionEnd
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.spvasm b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.spvasm
deleted file mode 100644
index 2667aee..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.spvasm
+++ /dev/null
@@ -1,31 +0,0 @@
- OpCapability Shader
- %1 = OpExtInstImport "GLSL.std.450"
- OpMemoryModel Logical GLSL450
- OpEntryPoint Fragment %main "main" %color_out %gl_FragDepth
- OpExecutionMode %main OriginUpperLeft
- OpExecutionMode %main EarlyFragmentTests
- OpExecutionMode %main DepthReplacing
- OpSource GLSL 430
- OpName %main "main"
- OpName %color_out "color_out"
- OpName %gl_FragDepth "gl_FragDepth"
- OpDecorate %color_out Location 0
- OpDecorate %gl_FragDepth BuiltIn FragDepth
- %void = OpTypeVoid
- %6 = OpTypeFunction %void
- %float = OpTypeFloat 32
- %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
- %color_out = OpVariable %_ptr_Output_v4float Output
- %float_1 = OpConstant %float 1
- %float_0 = OpConstant %float 0
- %12 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-%_ptr_Output_float = OpTypePointer Output %float
-%gl_FragDepth = OpVariable %_ptr_Output_float Output
- %float_0_5 = OpConstant %float 0.5
- %main = OpFunction %void None %6
- %15 = OpLabel
- OpStore %color_out %12
- OpStore %gl_FragDepth %float_0_5
- OpReturn
- OpFunctionEnd
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.spvasm b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.spvasm
deleted file mode 100644
index ff79f72..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.spvasm
+++ /dev/null
@@ -1,30 +0,0 @@
- OpCapability Shader
- %1 = OpExtInstImport "GLSL.std.450"
- OpMemoryModel Logical GLSL450
- OpEntryPoint Fragment %main "main" %outColor %gl_FragDepth
- OpExecutionMode %main OriginUpperLeft
- OpExecutionMode %main DepthReplacing
- OpExecutionMode %main DepthGreater
- OpSource GLSL 430
- OpName %main "main"
- OpName %outColor "outColor"
- OpName %gl_FragDepth "gl_FragDepth"
- OpDecorate %outColor Location 0
- OpDecorate %gl_FragDepth BuiltIn FragDepth
- %void = OpTypeVoid
- %6 = OpTypeFunction %void
- %float = OpTypeFloat 32
- %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
- %outColor = OpVariable %_ptr_Output_v4float Output
- %float_0 = OpConstant %float 0
- %11 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
-%_ptr_Output_float = OpTypePointer Output %float
-%gl_FragDepth = OpVariable %_ptr_Output_float Output
-%float_0_300000012 = OpConstant %float 0.300000012
- %main = OpFunction %void None %6
- %14 = OpLabel
- OpStore %outColor %11
- OpStore %gl_FragDepth %float_0_300000012
- OpReturn
- OpFunctionEnd
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.spvasm b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.spvasm
deleted file mode 100644
index e503380..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.spvasm
+++ /dev/null
@@ -1,30 +0,0 @@
- OpCapability Shader
- %1 = OpExtInstImport "GLSL.std.450"
- OpMemoryModel Logical GLSL450
- OpEntryPoint Fragment %main "main" %outColor %gl_FragDepth
- OpExecutionMode %main OriginUpperLeft
- OpExecutionMode %main DepthReplacing
- OpExecutionMode %main DepthLess
- OpSource GLSL 430
- OpName %main "main"
- OpName %outColor "outColor"
- OpName %gl_FragDepth "gl_FragDepth"
- OpDecorate %outColor Location 0
- OpDecorate %gl_FragDepth BuiltIn FragDepth
- %void = OpTypeVoid
- %6 = OpTypeFunction %void
- %float = OpTypeFloat 32
- %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
- %outColor = OpVariable %_ptr_Output_v4float Output
- %float_0 = OpConstant %float 0
- %11 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
-%_ptr_Output_float = OpTypePointer Output %float
-%gl_FragDepth = OpVariable %_ptr_Output_float Output
-%float_0_100000001 = OpConstant %float 0.100000001
- %main = OpFunction %void None %6
- %14 = OpLabel
- OpStore %outColor %11
- OpStore %gl_FragDepth %float_0_100000001
- OpReturn
- OpFunctionEnd
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.spvasm b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.spvasm
deleted file mode 100644
index 29ea362..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.spvasm
+++ /dev/null
@@ -1,30 +0,0 @@
- OpCapability Shader
- %1 = OpExtInstImport "GLSL.std.450"
- OpMemoryModel Logical GLSL450
- OpEntryPoint Fragment %main "main" %outColor %gl_FragDepth
- OpExecutionMode %main OriginUpperLeft
- OpExecutionMode %main DepthReplacing
- OpExecutionMode %main DepthLess
- OpSource GLSL 430
- OpName %main "main"
- OpName %outColor "outColor"
- OpName %gl_FragDepth "gl_FragDepth"
- OpDecorate %outColor Location 0
- OpDecorate %gl_FragDepth BuiltIn FragDepth
- %void = OpTypeVoid
- %6 = OpTypeFunction %void
- %float = OpTypeFloat 32
- %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
- %outColor = OpVariable %_ptr_Output_v4float Output
- %float_0 = OpConstant %float 0
- %11 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
-%_ptr_Output_float = OpTypePointer Output %float
-%gl_FragDepth = OpVariable %_ptr_Output_float Output
-%float_0_600000024 = OpConstant %float 0.600000024
- %main = OpFunction %void None %6
- %14 = OpLabel
- OpStore %outColor %11
- OpStore %gl_FragDepth %float_0_600000024
- OpReturn
- OpFunctionEnd
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.spvasm b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.spvasm
deleted file mode 100644
index 544b4ff..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.spvasm
+++ /dev/null
@@ -1,38 +0,0 @@
- OpCapability Shader
- %1 = OpExtInstImport "GLSL.std.450"
- OpMemoryModel Logical GLSL450
- OpEntryPoint Fragment %main "main" %outColor %gl_FragDepth %gl_FragCoord
- OpExecutionMode %main OriginUpperLeft
- OpExecutionMode %main DepthReplacing
- OpExecutionMode %main DepthUnchanged
- OpSource GLSL 430
- OpName %main "main"
- OpName %outColor "outColor"
- OpName %gl_FragDepth "gl_FragDepth"
- OpName %gl_FragCoord "gl_FragCoord"
- OpDecorate %outColor Location 0
- OpDecorate %gl_FragDepth BuiltIn FragDepth
- OpDecorate %gl_FragCoord BuiltIn FragCoord
- %void = OpTypeVoid
- %7 = OpTypeFunction %void
- %float = OpTypeFloat 32
- %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
- %outColor = OpVariable %_ptr_Output_v4float Output
- %float_0 = OpConstant %float 0
- %12 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
-%_ptr_Output_float = OpTypePointer Output %float
-%gl_FragDepth = OpVariable %_ptr_Output_float Output
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%gl_FragCoord = OpVariable %_ptr_Input_v4float Input
- %uint = OpTypeInt 32 0
- %uint_2 = OpConstant %uint 2
-%_ptr_Input_float = OpTypePointer Input %float
- %main = OpFunction %void None %7
- %18 = OpLabel
- OpStore %outColor %12
- %19 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_2
- %20 = OpLoad %float %19
- OpStore %gl_FragDepth %20
- OpReturn
- OpFunctionEnd
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.spvasm b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.spvasm
deleted file mode 100644
index 65f7b45..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.spvasm
+++ /dev/null
@@ -1,30 +0,0 @@
- OpCapability Shader
- %1 = OpExtInstImport "GLSL.std.450"
- OpMemoryModel Logical GLSL450
- OpEntryPoint Fragment %main "main" %outColor %gl_FragDepth
- OpExecutionMode %main OriginUpperLeft
- OpExecutionMode %main DepthReplacing
- OpExecutionMode %main DepthUnchanged
- OpSource GLSL 430
- OpName %main "main"
- OpName %outColor "outColor"
- OpName %gl_FragDepth "gl_FragDepth"
- OpDecorate %outColor Location 0
- OpDecorate %gl_FragDepth BuiltIn FragDepth
- %void = OpTypeVoid
- %6 = OpTypeFunction %void
- %float = OpTypeFloat 32
- %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
- %outColor = OpVariable %_ptr_Output_v4float Output
- %float_0 = OpConstant %float 0
- %11 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
-%_ptr_Output_float = OpTypePointer Output %float
-%gl_FragDepth = OpVariable %_ptr_Output_float Output
-%float_0_699999988 = OpConstant %float 0.699999988
- %main = OpFunction %void None %6
- %14 = OpLabel
- OpStore %outColor %11
- OpStore %gl_FragDepth %float_0_699999988
- OpReturn
- OpFunctionEnd
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.spvasm b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.spvasm
deleted file mode 100644
index 0842b2d..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.spvasm
+++ /dev/null
@@ -1,30 +0,0 @@
- OpCapability Shader
- %1 = OpExtInstImport "GLSL.std.450"
- OpMemoryModel Logical GLSL450
- OpEntryPoint Fragment %main "main" %outColor %gl_FragDepth
- OpExecutionMode %main OriginUpperLeft
- OpExecutionMode %main DepthReplacing
- OpExecutionMode %main DepthUnchanged
- OpSource GLSL 430
- OpName %main "main"
- OpName %outColor "outColor"
- OpName %gl_FragDepth "gl_FragDepth"
- OpDecorate %outColor Location 0
- OpDecorate %gl_FragDepth BuiltIn FragDepth
- %void = OpTypeVoid
- %6 = OpTypeFunction %void
- %float = OpTypeFloat 32
- %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
- %outColor = OpVariable %_ptr_Output_v4float Output
- %float_0 = OpConstant %float 0
- %11 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
-%_ptr_Output_float = OpTypePointer Output %float
-%gl_FragDepth = OpVariable %_ptr_Output_float Output
-%float_0_400000006 = OpConstant %float 0.400000006
- %main = OpFunction %void None %6
- %14 = OpLabel
- OpStore %outColor %11
- OpStore %gl_FragDepth %float_0_400000006
- OpReturn
- OpFunctionEnd