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/textureSampleLevel/47daa4.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.spvasm
index 237ca8a..c42defb 100644
--- a/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.spvasm
@@ -1,11 +1,11 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 49
; Schema: 0
OpCapability Shader
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
@@ -13,8 +13,11 @@
OpName %tint_pointsize "tint_pointsize"
OpName %arg_0 "arg_0"
OpName %arg_1 "arg_1"
+ OpName %tint_symbol_1 "tint_symbol_1"
OpName %textureSampleLevel_47daa4 "textureSampleLevel_47daa4"
OpName %res "res"
+ 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"
@@ -23,6 +26,7 @@
OpDecorate %arg_0 Binding 0
OpDecorate %arg_1 DescriptorSet 1
OpDecorate %arg_1 Binding 1
+ OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
@@ -33,43 +37,54 @@
%10 = OpTypeSampler
%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
%arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
- %void = OpTypeVoid
- %11 = OpTypeFunction %void
%v4float = OpTypeVector %float 4
- %20 = OpTypeSampledImage %7
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %14 = OpConstantNull %v4float
+%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+ %void = OpTypeVoid
+ %15 = OpTypeFunction %void
+ %23 = OpTypeSampledImage %7
%v2float = OpTypeVector %float 2
- %23 = OpConstantNull %v2float
+ %26 = OpConstantNull %v2float
%int = OpTypeInt 32 1
%int_1 = OpConstant %int 1
%v2int = OpTypeVector %int 2
- %28 = OpConstantNull %v2int
+ %31 = OpConstantNull %v2int
%_ptr_Function_float = OpTypePointer Function %float
+ %34 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1
-%textureSampleLevel_47daa4 = OpFunction %void None %11
- %14 = OpLabel
+%textureSampleLevel_47daa4 = OpFunction %void None %15
+ %18 = OpLabel
%res = OpVariable %_ptr_Function_float Function %4
- %18 = OpLoad %10 %arg_1
- %19 = OpLoad %7 %arg_0
- %21 = OpSampledImage %20 %19 %18
- %24 = OpConvertSToF %float %int_1
- %16 = OpImageSampleExplicitLod %v4float %21 %23 Lod|ConstOffset %24 %28
- %15 = OpCompositeExtract %float %16 0
- OpStore %res %15
+ %21 = OpLoad %10 %arg_1
+ %22 = OpLoad %7 %arg_0
+ %24 = OpSampledImage %23 %22 %21
+ %27 = OpConvertSToF %float %int_1
+ %20 = OpImageSampleExplicitLod %v4float %24 %26 Lod|ConstOffset %27 %31
+ %19 = OpCompositeExtract %float %20 0
+ OpStore %res %19
OpReturn
OpFunctionEnd
-%vertex_main = OpFunction %void None %11
- %32 = OpLabel
- OpStore %tint_pointsize %float_1
- %34 = OpFunctionCall %void %textureSampleLevel_47daa4
+%tint_symbol_2 = OpFunction %void None %34
+%tint_symbol = OpFunctionParameter %v4float
+ %37 = OpLabel
+ OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %11
- %36 = OpLabel
- %37 = OpFunctionCall %void %textureSampleLevel_47daa4
- OpReturn
- OpFunctionEnd
-%compute_main = OpFunction %void None %11
+%vertex_main = OpFunction %void None %15
%39 = OpLabel
- %40 = OpFunctionCall %void %textureSampleLevel_47daa4
+ OpStore %tint_pointsize %float_1
+ %41 = OpFunctionCall %void %textureSampleLevel_47daa4
+ %42 = OpFunctionCall %void %tint_symbol_2 %14
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %15
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureSampleLevel_47daa4
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %15
+ %47 = OpLabel
+ %48 = OpFunctionCall %void %textureSampleLevel_47daa4
OpReturn
OpFunctionEnd