tools: Return position from generated vertex shaders
This is required to generate valid MSL code, and will soon be
validated by Tint too.
Change-Id: I4c5f5c4ecb1c91131c934de1132217d9f6be1f8e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53420
Auto-Submit: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.spvasm b/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.spvasm
index 3c4624c..e517f8c 100644
--- a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 35
; Schema: 0
OpCapability Shader
OpCapability Image1D
OpMemoryModel Logical GLSL450
- OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize
+ OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureStore_2ed2a3 "textureStore_2ed2a3"
+ OpName %tint_symbol_2 "tint_symbol_2"
+ OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main"
@@ -21,6 +24,7 @@
OpDecorate %arg_0 NonReadable
OpDecorate %arg_0 DescriptorSet 1
OpDecorate %arg_0 Binding 0
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -28,32 +32,42 @@
%7 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
%arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %11 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
%void = OpTypeVoid
- %8 = OpTypeFunction %void
+ %12 = OpTypeFunction %void
%int = OpTypeInt 32 1
%int_1 = OpConstant %int 1
- %v4float = OpTypeVector %float 4
- %17 = OpConstantNull %v4float
+ %20 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureStore_2ed2a3 = OpFunction %void None %8
- %11 = OpLabel
- %13 = OpLoad %7 %arg_0
- OpImageWrite %13 %int_1 %17
+%textureStore_2ed2a3 = OpFunction %void None %12
+ %15 = OpLabel
+ %17 = OpLoad %7 %arg_0
+ OpImageWrite %17 %int_1 %11
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %8
- %19 = OpLabel
- OpStore %tint_pointsize %float_1
- %21 = OpFunctionCall %void %textureStore_2ed2a3
- OpReturn
- OpFunctionEnd
-%fragment_main = OpFunction %void None %8
+%tint_symbol_2 = OpFunction %void None %20
+%tint_symbol = OpFunctionParameter %v4float
%23 = OpLabel
- %24 = OpFunctionCall %void %textureStore_2ed2a3
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %8
- %26 = OpLabel
+%vertex_main = OpFunction %void None %12
+ %25 = OpLabel
+ OpStore %tint_pointsize %float_1
%27 = OpFunctionCall %void %textureStore_2ed2a3
+ %28 = OpFunctionCall %void %tint_symbol_2 %11
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %30 = OpLabel
+ %31 = OpFunctionCall %void %textureStore_2ed2a3
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_2ed2a3
OpReturn
OpFunctionEnd