dawn-cmake/test/shader_io/vertex_output_builtins_struct.wgsl.expected.spvasm
James Price bb0496e52a test: Add E2E test coverage for shader IO
This provides much more complete coverage than what we have in the
unit tests. We now test:
- All builtins, for all stages, both struct and non-struct
- Multiple location attributes for vertex and fragment stages, both
  struct and non-struct
- Mixing builtins and location attributes, whilst mixing struct and
  non-struct
- A few "interesting" cases of IO structs being shared between
  different functions, stages, and with an SSBO variable

There are 7 skipped tests for MSL due to two different MSL bugs which
will be fixed in upcoming patches.

Change-Id: I8b802591762c8ff018e01bf37838551e353162b1
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53120
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Auto-Submit: James Price <jrprice@google.com>
2021-06-03 09:38:34 +00:00

50 lines
2.0 KiB
Plaintext

; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 26
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %VertexOutputs "VertexOutputs"
OpMemberName %VertexOutputs 0 "position"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %main "main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpMemberDecorate %VertexOutputs 0 Offset 0
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%void = OpTypeVoid
%VertexOutputs = OpTypeStruct %v4float
%9 = OpTypeFunction %void %VertexOutputs
%16 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%24 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%25 = OpConstantComposite %VertexOutputs %24
%tint_symbol_2 = OpFunction %void None %9
%tint_symbol = OpFunctionParameter %VertexOutputs
%14 = OpLabel
%15 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %15
OpReturn
OpFunctionEnd
%main = OpFunction %void None %16
%18 = OpLabel
OpStore %tint_pointsize %float_1
%20 = OpFunctionCall %void %tint_symbol_2 %25
OpReturn
OpFunctionEnd