dawn-cmake/test/tint/shader_io/fragment_input_builtins_struct.wgsl.expected.spvasm
Ben Clayton 8e3485248e tint/writer/spirv: Inline constant expressions
This is required to handle materialized values, and for constant
expressions.

Bug: tint:1504
Change-Id: If0a49e9b03566c06aa6e4e4c284fc427e1541e91
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/92082
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
2022-06-01 15:57:22 +00:00

78 lines
3.4 KiB
Plaintext

; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 40
; Schema: 0
OpCapability Shader
OpCapability SampleRateShading
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %position_1 %front_facing_1 %sample_index_1 %sample_mask_1
OpExecutionMode %main OriginUpperLeft
OpName %position_1 "position_1"
OpName %front_facing_1 "front_facing_1"
OpName %sample_index_1 "sample_index_1"
OpName %sample_mask_1 "sample_mask_1"
OpName %FragmentInputs "FragmentInputs"
OpMemberName %FragmentInputs 0 "position"
OpMemberName %FragmentInputs 1 "front_facing"
OpMemberName %FragmentInputs 2 "sample_index"
OpMemberName %FragmentInputs 3 "sample_mask"
OpName %main_inner "main_inner"
OpName %inputs "inputs"
OpName %main "main"
OpDecorate %position_1 BuiltIn FragCoord
OpDecorate %front_facing_1 BuiltIn FrontFacing
OpDecorate %sample_index_1 BuiltIn SampleId
OpDecorate %_arr_uint_uint_1 ArrayStride 4
OpDecorate %sample_mask_1 BuiltIn SampleMask
OpMemberDecorate %FragmentInputs 0 Offset 0
OpMemberDecorate %FragmentInputs 1 Offset 16
OpMemberDecorate %FragmentInputs 2 Offset 20
OpMemberDecorate %FragmentInputs 3 Offset 24
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%position_1 = OpVariable %_ptr_Input_v4float Input
%bool = OpTypeBool
%_ptr_Input_bool = OpTypePointer Input %bool
%front_facing_1 = OpVariable %_ptr_Input_bool Input
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%sample_index_1 = OpVariable %_ptr_Input_uint Input
%uint_1 = OpConstant %uint 1
%_arr_uint_uint_1 = OpTypeArray %uint %uint_1
%_ptr_Input__arr_uint_uint_1 = OpTypePointer Input %_arr_uint_uint_1
%sample_mask_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
%void = OpTypeVoid
%FragmentInputs = OpTypeStruct %v4float %bool %uint %uint
%15 = OpTypeFunction %void %FragmentInputs
%28 = OpTypeFunction %void
%int = OpTypeInt 32 1
%36 = OpConstantNull %int
%main_inner = OpFunction %void None %15
%inputs = OpFunctionParameter %FragmentInputs
%20 = OpLabel
%21 = OpCompositeExtract %bool %inputs 1
OpSelectionMerge %22 None
OpBranchConditional %21 %23 %22
%23 = OpLabel
%24 = OpCompositeExtract %v4float %inputs 0
%25 = OpCompositeExtract %uint %inputs 2
%26 = OpCompositeExtract %uint %inputs 3
%27 = OpIAdd %uint %25 %26
OpBranch %22
%22 = OpLabel
OpReturn
OpFunctionEnd
%main = OpFunction %void None %28
%30 = OpLabel
%32 = OpLoad %v4float %position_1
%33 = OpLoad %bool %front_facing_1
%34 = OpLoad %uint %sample_index_1
%37 = OpAccessChain %_ptr_Input_uint %sample_mask_1 %36
%38 = OpLoad %uint %37
%39 = OpCompositeConstruct %FragmentInputs %32 %33 %34 %38
%31 = OpFunctionCall %void %main_inner %39
OpReturn
OpFunctionEnd