spirv: Use generic transform to process shader IO

The refactored CanonicalizeEntryPointIO transform makes it much easier
to handle SPIR-V style IO as well, and doing this removes a lot of
duplicated code. Remove all of the SPIR-V transform code for shader IO
and vertex point size.

Bug: tint:920
Change-Id: Id1b97517619b4d2fd09b45d5aee848259f3dfa77
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/60840
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
This commit is contained in:
James Price
2021-08-05 17:34:19 +00:00
committed by Tint LUCI CQ
parent 11e172ab64
commit 11c6fcdb51
1981 changed files with 55207 additions and 57171 deletions

View File

@@ -1,43 +1,57 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 24
; Bound: 31
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3
OpEntryPoint GLCompute %main "main" %local_invocation_id_1 %local_invocation_index_1 %global_invocation_id_1 %workgroup_id_1
OpExecutionMode %main LocalSize 1 1 1
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %local_invocation_id_1 "local_invocation_id_1"
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %global_invocation_id_1 "global_invocation_id_1"
OpName %workgroup_id_1 "workgroup_id_1"
OpName %main_inner "main_inner"
OpName %local_invocation_id "local_invocation_id"
OpName %local_invocation_index "local_invocation_index"
OpName %global_invocation_id "global_invocation_id"
OpName %workgroup_id "workgroup_id"
OpName %main "main"
OpDecorate %tint_symbol BuiltIn LocalInvocationId
OpDecorate %tint_symbol_1 BuiltIn LocalInvocationIndex
OpDecorate %tint_symbol_2 BuiltIn GlobalInvocationId
OpDecorate %tint_symbol_3 BuiltIn WorkgroupId
OpDecorate %local_invocation_id_1 BuiltIn LocalInvocationId
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
OpDecorate %global_invocation_id_1 BuiltIn GlobalInvocationId
OpDecorate %workgroup_id_1 BuiltIn WorkgroupId
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%tint_symbol = OpVariable %_ptr_Input_v3uint Input
%local_invocation_id_1 = OpVariable %_ptr_Input_v3uint Input
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
%tint_symbol_2 = OpVariable %_ptr_Input_v3uint Input
%tint_symbol_3 = OpVariable %_ptr_Input_v3uint Input
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%global_invocation_id_1 = OpVariable %_ptr_Input_v3uint Input
%workgroup_id_1 = OpVariable %_ptr_Input_v3uint Input
%void = OpTypeVoid
%9 = OpTypeFunction %void
%uint_0 = OpConstant %uint 0
%main = OpFunction %void None %9
%12 = OpLabel
%14 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0
%15 = OpLoad %uint %14
%16 = OpLoad %uint %tint_symbol_1
%17 = OpIAdd %uint %15 %16
%18 = OpAccessChain %_ptr_Input_uint %tint_symbol_2 %uint_0
%19 = OpLoad %uint %18
%20 = OpIAdd %uint %17 %19
%21 = OpAccessChain %_ptr_Input_uint %tint_symbol_3 %uint_0
%22 = OpLoad %uint %21
%23 = OpIAdd %uint %20 %22
%9 = OpTypeFunction %void %v3uint %uint %v3uint %v3uint
%23 = OpTypeFunction %void
%main_inner = OpFunction %void None %9
%local_invocation_id = OpFunctionParameter %v3uint
%local_invocation_index = OpFunctionParameter %uint
%global_invocation_id = OpFunctionParameter %v3uint
%workgroup_id = OpFunctionParameter %v3uint
%16 = OpLabel
%17 = OpCompositeExtract %uint %local_invocation_id 0
%18 = OpIAdd %uint %17 %local_invocation_index
%19 = OpCompositeExtract %uint %global_invocation_id 0
%20 = OpIAdd %uint %18 %19
%21 = OpCompositeExtract %uint %workgroup_id 0
%22 = OpIAdd %uint %20 %21
OpReturn
OpFunctionEnd
%main = OpFunction %void None %23
%25 = OpLabel
%27 = OpLoad %v3uint %local_invocation_id_1
%28 = OpLoad %uint %local_invocation_index_1
%29 = OpLoad %v3uint %global_invocation_id_1
%30 = OpLoad %v3uint %workgroup_id_1
%26 = OpFunctionCall %void %main_inner %27 %28 %29 %30
OpReturn
OpFunctionEnd

View File

@@ -1,26 +1,28 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 29
; Bound: 34
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3
OpEntryPoint GLCompute %main "main" %local_invocation_id_1 %local_invocation_index_1 %global_invocation_id_1 %workgroup_id_1
OpExecutionMode %main LocalSize 1 1 1
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %main "main"
OpName %local_invocation_id_1 "local_invocation_id_1"
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %global_invocation_id_1 "global_invocation_id_1"
OpName %workgroup_id_1 "workgroup_id_1"
OpName %ComputeInputs "ComputeInputs"
OpMemberName %ComputeInputs 0 "local_invocation_id"
OpMemberName %ComputeInputs 1 "local_invocation_index"
OpMemberName %ComputeInputs 2 "global_invocation_id"
OpMemberName %ComputeInputs 3 "workgroup_id"
OpDecorate %tint_symbol BuiltIn LocalInvocationId
OpDecorate %tint_symbol_1 BuiltIn LocalInvocationIndex
OpDecorate %tint_symbol_2 BuiltIn GlobalInvocationId
OpDecorate %tint_symbol_3 BuiltIn WorkgroupId
OpName %main_inner "main_inner"
OpName %inputs "inputs"
OpName %main "main"
OpDecorate %local_invocation_id_1 BuiltIn LocalInvocationId
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
OpDecorate %global_invocation_id_1 BuiltIn GlobalInvocationId
OpDecorate %workgroup_id_1 BuiltIn WorkgroupId
OpMemberDecorate %ComputeInputs 0 Offset 0
OpMemberDecorate %ComputeInputs 1 Offset 12
OpMemberDecorate %ComputeInputs 2 Offset 16
@@ -28,30 +30,37 @@
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%tint_symbol = OpVariable %_ptr_Input_v3uint Input
%local_invocation_id_1 = OpVariable %_ptr_Input_v3uint Input
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
%tint_symbol_2 = OpVariable %_ptr_Input_v3uint Input
%tint_symbol_3 = OpVariable %_ptr_Input_v3uint Input
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%global_invocation_id_1 = OpVariable %_ptr_Input_v3uint Input
%workgroup_id_1 = OpVariable %_ptr_Input_v3uint Input
%void = OpTypeVoid
%9 = OpTypeFunction %void
%ComputeInputs = OpTypeStruct %v3uint %uint %v3uint %v3uint
%main = OpFunction %void None %9
%12 = OpLabel
%14 = OpLoad %v3uint %tint_symbol
%15 = OpLoad %uint %tint_symbol_1
%16 = OpLoad %v3uint %tint_symbol_2
%17 = OpLoad %v3uint %tint_symbol_3
%18 = OpCompositeConstruct %ComputeInputs %14 %15 %16 %17
%19 = OpCompositeExtract %v3uint %18 0
%9 = OpTypeFunction %void %ComputeInputs
%25 = OpTypeFunction %void
%main_inner = OpFunction %void None %9
%inputs = OpFunctionParameter %ComputeInputs
%14 = OpLabel
%15 = OpCompositeExtract %v3uint %inputs 0
%16 = OpCompositeExtract %uint %15 0
%17 = OpCompositeExtract %uint %inputs 1
%18 = OpIAdd %uint %16 %17
%19 = OpCompositeExtract %v3uint %inputs 2
%20 = OpCompositeExtract %uint %19 0
%21 = OpCompositeExtract %uint %18 1
%22 = OpIAdd %uint %20 %21
%23 = OpCompositeExtract %v3uint %18 2
%24 = OpCompositeExtract %uint %23 0
%25 = OpIAdd %uint %22 %24
%26 = OpCompositeExtract %v3uint %18 3
%27 = OpCompositeExtract %uint %26 0
%28 = OpIAdd %uint %25 %27
%21 = OpIAdd %uint %18 %20
%22 = OpCompositeExtract %v3uint %inputs 3
%23 = OpCompositeExtract %uint %22 0
%24 = OpIAdd %uint %21 %23
OpReturn
OpFunctionEnd
%main = OpFunction %void None %25
%27 = OpLabel
%29 = OpLoad %v3uint %local_invocation_id_1
%30 = OpLoad %uint %local_invocation_index_1
%31 = OpLoad %v3uint %global_invocation_id_1
%32 = OpLoad %v3uint %workgroup_id_1
%33 = OpCompositeConstruct %ComputeInputs %29 %30 %31 %32
%28 = OpFunctionCall %void %main_inner %33
OpReturn
OpFunctionEnd

View File

@@ -1,55 +1,69 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 30
; Bound: 37
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %tint_symbol %tint_symbol_4 %tint_symbol_2 %tint_symbol_3
OpEntryPoint GLCompute %main "main" %local_invocation_id_1 %local_invocation_index_1 %global_invocation_id_1 %workgroup_id_1
OpExecutionMode %main LocalSize 1 1 1
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %main "main"
OpName %local_invocation_id_1 "local_invocation_id_1"
OpName %local_invocation_index_1 "local_invocation_index_1"
OpName %global_invocation_id_1 "global_invocation_id_1"
OpName %workgroup_id_1 "workgroup_id_1"
OpName %ComputeInputs0 "ComputeInputs0"
OpMemberName %ComputeInputs0 0 "local_invocation_id"
OpName %ComputeInputs1 "ComputeInputs1"
OpMemberName %ComputeInputs1 0 "workgroup_id"
OpDecorate %tint_symbol BuiltIn LocalInvocationId
OpDecorate %tint_symbol_2 BuiltIn LocalInvocationIndex
OpDecorate %tint_symbol_3 BuiltIn GlobalInvocationId
OpDecorate %tint_symbol_4 BuiltIn WorkgroupId
OpName %main_inner "main_inner"
OpName %inputs0 "inputs0"
OpName %local_invocation_index "local_invocation_index"
OpName %global_invocation_id "global_invocation_id"
OpName %inputs1 "inputs1"
OpName %main "main"
OpDecorate %local_invocation_id_1 BuiltIn LocalInvocationId
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
OpDecorate %global_invocation_id_1 BuiltIn GlobalInvocationId
OpDecorate %workgroup_id_1 BuiltIn WorkgroupId
OpMemberDecorate %ComputeInputs0 0 Offset 0
OpMemberDecorate %ComputeInputs1 0 Offset 0
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%tint_symbol = OpVariable %_ptr_Input_v3uint Input
%local_invocation_id_1 = OpVariable %_ptr_Input_v3uint Input
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol_2 = OpVariable %_ptr_Input_uint Input
%tint_symbol_3 = OpVariable %_ptr_Input_v3uint Input
%tint_symbol_4 = OpVariable %_ptr_Input_v3uint Input
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
%global_invocation_id_1 = OpVariable %_ptr_Input_v3uint Input
%workgroup_id_1 = OpVariable %_ptr_Input_v3uint Input
%void = OpTypeVoid
%9 = OpTypeFunction %void
%ComputeInputs0 = OpTypeStruct %v3uint
%ComputeInputs1 = OpTypeStruct %v3uint
%uint_0 = OpConstant %uint 0
%main = OpFunction %void None %9
%12 = OpLabel
%14 = OpLoad %v3uint %tint_symbol
%15 = OpCompositeConstruct %ComputeInputs0 %14
%17 = OpLoad %v3uint %tint_symbol_4
%18 = OpCompositeConstruct %ComputeInputs1 %17
%19 = OpCompositeExtract %v3uint %15 0
%9 = OpTypeFunction %void %ComputeInputs0 %uint %v3uint %ComputeInputs1
%27 = OpTypeFunction %void
%main_inner = OpFunction %void None %9
%inputs0 = OpFunctionParameter %ComputeInputs0
%local_invocation_index = OpFunctionParameter %uint
%global_invocation_id = OpFunctionParameter %v3uint
%inputs1 = OpFunctionParameter %ComputeInputs1
%18 = OpLabel
%19 = OpCompositeExtract %v3uint %inputs0 0
%20 = OpCompositeExtract %uint %19 0
%21 = OpLoad %uint %tint_symbol_2
%22 = OpIAdd %uint %20 %21
%24 = OpAccessChain %_ptr_Input_uint %tint_symbol_3 %uint_0
%25 = OpLoad %uint %24
%26 = OpIAdd %uint %22 %25
%27 = OpCompositeExtract %v3uint %18 0
%28 = OpCompositeExtract %uint %27 0
%29 = OpIAdd %uint %26 %28
%21 = OpIAdd %uint %20 %local_invocation_index
%22 = OpCompositeExtract %uint %global_invocation_id 0
%23 = OpIAdd %uint %21 %22
%24 = OpCompositeExtract %v3uint %inputs1 0
%25 = OpCompositeExtract %uint %24 0
%26 = OpIAdd %uint %23 %25
OpReturn
OpFunctionEnd
%main = OpFunction %void None %27
%29 = OpLabel
%31 = OpLoad %v3uint %local_invocation_id_1
%32 = OpCompositeConstruct %ComputeInputs0 %31
%33 = OpLoad %uint %local_invocation_index_1
%34 = OpLoad %v3uint %global_invocation_id_1
%35 = OpLoad %v3uint %workgroup_id_1
%36 = OpCompositeConstruct %ComputeInputs1 %35
%30 = OpFunctionCall %void %main_inner %32 %33 %34 %36
OpReturn
OpFunctionEnd

View File

@@ -1,53 +1,68 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 29
; Bound: 37
; Schema: 0
OpCapability Shader
OpCapability SampleRateShading
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol %tint_symbol_2 %tint_symbol_3
OpEntryPoint Fragment %main "main" %position_1 %front_facing_1 %sample_index_1 %sample_mask_1
OpExecutionMode %main OriginUpperLeft
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
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 %main_inner "main_inner"
OpName %position "position"
OpName %front_facing "front_facing"
OpName %sample_index "sample_index"
OpName %sample_mask "sample_mask"
OpName %main "main"
OpDecorate %tint_symbol BuiltIn FragCoord
OpDecorate %tint_symbol_1 BuiltIn FrontFacing
OpDecorate %tint_symbol_2 BuiltIn SampleId
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 %tint_symbol_3 BuiltIn SampleMask
OpDecorate %sample_mask_1 BuiltIn SampleMask
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%tint_symbol = OpVariable %_ptr_Input_v4float Input
%position_1 = OpVariable %_ptr_Input_v4float Input
%bool = OpTypeBool
%_ptr_Input_bool = OpTypePointer Input %bool
%tint_symbol_1 = OpVariable %_ptr_Input_bool Input
%front_facing_1 = OpVariable %_ptr_Input_bool Input
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol_2 = OpVariable %_ptr_Input_uint Input
%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
%tint_symbol_3 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
%sample_mask_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
%void = OpTypeVoid
%15 = OpTypeFunction %void
%15 = OpTypeFunction %void %v4float %bool %uint %uint
%26 = OpTypeFunction %void
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%main = OpFunction %void None %15
%18 = OpLabel
%19 = OpLoad %bool %tint_symbol_1
OpSelectionMerge %20 None
OpBranchConditional %19 %21 %20
%21 = OpLabel
%22 = OpLoad %v4float %tint_symbol
%23 = OpLoad %uint %tint_symbol_2
%26 = OpAccessChain %_ptr_Input_uint %tint_symbol_3 %int_0
%27 = OpLoad %uint %26
%28 = OpIAdd %uint %23 %27
OpBranch %20
%20 = OpLabel
%main_inner = OpFunction %void None %15
%position = OpFunctionParameter %v4float
%front_facing = OpFunctionParameter %bool
%sample_index = OpFunctionParameter %uint
%sample_mask = OpFunctionParameter %uint
%22 = OpLabel
OpSelectionMerge %23 None
OpBranchConditional %front_facing %24 %23
%24 = OpLabel
%25 = OpIAdd %uint %sample_index %sample_mask
OpBranch %23
%23 = OpLabel
OpReturn
OpFunctionEnd
%main = OpFunction %void None %26
%28 = OpLabel
%30 = OpLoad %v4float %position_1
%31 = OpLoad %bool %front_facing_1
%32 = OpLoad %uint %sample_index_1
%35 = OpAccessChain %_ptr_Input_uint %sample_mask_1 %int_0
%36 = OpLoad %uint %35
%29 = OpFunctionCall %void %main_inner %30 %31 %32 %36
OpReturn
OpFunctionEnd

View File

@@ -1,28 +1,30 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 35
; Bound: 40
; Schema: 0
OpCapability Shader
OpCapability SampleRateShading
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3
OpEntryPoint Fragment %main "main" %position_1 %front_facing_1 %sample_index_1 %sample_mask_1
OpExecutionMode %main OriginUpperLeft
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %main "main"
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"
OpDecorate %tint_symbol BuiltIn FragCoord
OpDecorate %tint_symbol_1 BuiltIn FrontFacing
OpDecorate %tint_symbol_2 BuiltIn SampleId
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 %tint_symbol_3 BuiltIn SampleMask
OpDecorate %sample_mask_1 BuiltIn SampleMask
OpMemberDecorate %FragmentInputs 0 Offset 0
OpMemberDecorate %FragmentInputs 1 Offset 16
OpMemberDecorate %FragmentInputs 2 Offset 20
@@ -30,39 +32,46 @@
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%tint_symbol = OpVariable %_ptr_Input_v4float Input
%position_1 = OpVariable %_ptr_Input_v4float Input
%bool = OpTypeBool
%_ptr_Input_bool = OpTypePointer Input %bool
%tint_symbol_1 = OpVariable %_ptr_Input_bool Input
%front_facing_1 = OpVariable %_ptr_Input_bool Input
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol_2 = OpVariable %_ptr_Input_uint Input
%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
%tint_symbol_3 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
%sample_mask_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
%void = OpTypeVoid
%15 = OpTypeFunction %void
%FragmentInputs = OpTypeStruct %v4float %bool %uint %uint
%15 = OpTypeFunction %void %FragmentInputs
%28 = OpTypeFunction %void
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%main = OpFunction %void None %15
%18 = OpLabel
%20 = OpLoad %v4float %tint_symbol
%21 = OpLoad %bool %tint_symbol_1
%22 = OpLoad %uint %tint_symbol_2
%25 = OpAccessChain %_ptr_Input_uint %tint_symbol_3 %int_0
%26 = OpLoad %uint %25
%27 = OpCompositeConstruct %FragmentInputs %20 %21 %22 %26
%28 = OpCompositeExtract %bool %27 1
OpSelectionMerge %29 None
OpBranchConditional %28 %30 %29
%30 = OpLabel
%31 = OpCompositeExtract %v4float %27 0
%32 = OpCompositeExtract %uint %27 2
%33 = OpCompositeExtract %uint %27 3
%34 = OpIAdd %uint %32 %33
OpBranch %29
%29 = OpLabel
%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 %int_0
%38 = OpLoad %uint %37
%39 = OpCompositeConstruct %FragmentInputs %32 %33 %34 %38
%31 = OpFunctionCall %void %main_inner %39
OpReturn
OpFunctionEnd

View File

@@ -1,42 +1,57 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 21
; Bound: 29
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3
OpEntryPoint Fragment %main "main" %loc0_1 %loc1_1 %loc2_1 %loc3_1
OpExecutionMode %main OriginUpperLeft
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %loc0_1 "loc0_1"
OpName %loc1_1 "loc1_1"
OpName %loc2_1 "loc2_1"
OpName %loc3_1 "loc3_1"
OpName %main_inner "main_inner"
OpName %loc0 "loc0"
OpName %loc1 "loc1"
OpName %loc2 "loc2"
OpName %loc3 "loc3"
OpName %main "main"
OpDecorate %tint_symbol Location 0
OpDecorate %tint_symbol Flat
OpDecorate %tint_symbol_1 Location 1
OpDecorate %tint_symbol_1 Flat
OpDecorate %tint_symbol_2 Location 2
OpDecorate %tint_symbol_3 Location 3
OpDecorate %loc0_1 Location 0
OpDecorate %loc0_1 Flat
OpDecorate %loc1_1 Location 1
OpDecorate %loc1_1 Flat
OpDecorate %loc2_1 Location 2
OpDecorate %loc3_1 Location 3
%int = OpTypeInt 32 1
%_ptr_Input_int = OpTypePointer Input %int
%tint_symbol = OpVariable %_ptr_Input_int Input
%loc0_1 = OpVariable %_ptr_Input_int Input
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
%loc1_1 = OpVariable %_ptr_Input_uint Input
%float = OpTypeFloat 32
%_ptr_Input_float = OpTypePointer Input %float
%tint_symbol_2 = OpVariable %_ptr_Input_float Input
%loc2_1 = OpVariable %_ptr_Input_float Input
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%tint_symbol_3 = OpVariable %_ptr_Input_v4float Input
%loc3_1 = OpVariable %_ptr_Input_v4float Input
%void = OpTypeVoid
%13 = OpTypeFunction %void
%main = OpFunction %void None %13
%16 = OpLabel
%17 = OpLoad %int %tint_symbol
%18 = OpLoad %uint %tint_symbol_1
%19 = OpLoad %float %tint_symbol_2
%20 = OpLoad %v4float %tint_symbol_3
%13 = OpTypeFunction %void %int %uint %float %v4float
%21 = OpTypeFunction %void
%main_inner = OpFunction %void None %13
%loc0 = OpFunctionParameter %int
%loc1 = OpFunctionParameter %uint
%loc2 = OpFunctionParameter %float
%loc3 = OpFunctionParameter %v4float
%20 = OpLabel
OpReturn
OpFunctionEnd
%main = OpFunction %void None %21
%23 = OpLabel
%25 = OpLoad %int %loc0_1
%26 = OpLoad %uint %loc1_1
%27 = OpLoad %float %loc2_1
%28 = OpLoad %v4float %loc3_1
%24 = OpFunctionCall %void %main_inner %25 %26 %27 %28
OpReturn
OpFunctionEnd

View File

@@ -1,57 +1,66 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 27
; Bound: 32
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3
OpEntryPoint Fragment %main "main" %loc0_1 %loc1_1 %loc2_1 %loc3_1
OpExecutionMode %main OriginUpperLeft
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %main "main"
OpName %loc0_1 "loc0_1"
OpName %loc1_1 "loc1_1"
OpName %loc2_1 "loc2_1"
OpName %loc3_1 "loc3_1"
OpName %FragmentInputs "FragmentInputs"
OpMemberName %FragmentInputs 0 "loc0"
OpMemberName %FragmentInputs 1 "loc1"
OpMemberName %FragmentInputs 2 "loc2"
OpMemberName %FragmentInputs 3 "loc3"
OpDecorate %tint_symbol Location 0
OpDecorate %tint_symbol Flat
OpDecorate %tint_symbol_1 Location 1
OpDecorate %tint_symbol_1 Flat
OpDecorate %tint_symbol_2 Location 2
OpDecorate %tint_symbol_3 Location 3
OpName %main_inner "main_inner"
OpName %inputs "inputs"
OpName %main "main"
OpDecorate %loc0_1 Location 0
OpDecorate %loc0_1 Flat
OpDecorate %loc1_1 Location 1
OpDecorate %loc1_1 Flat
OpDecorate %loc2_1 Location 2
OpDecorate %loc3_1 Location 3
OpMemberDecorate %FragmentInputs 0 Offset 0
OpMemberDecorate %FragmentInputs 1 Offset 4
OpMemberDecorate %FragmentInputs 2 Offset 8
OpMemberDecorate %FragmentInputs 3 Offset 16
%int = OpTypeInt 32 1
%_ptr_Input_int = OpTypePointer Input %int
%tint_symbol = OpVariable %_ptr_Input_int Input
%loc0_1 = OpVariable %_ptr_Input_int Input
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
%loc1_1 = OpVariable %_ptr_Input_uint Input
%float = OpTypeFloat 32
%_ptr_Input_float = OpTypePointer Input %float
%tint_symbol_2 = OpVariable %_ptr_Input_float Input
%loc2_1 = OpVariable %_ptr_Input_float Input
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%tint_symbol_3 = OpVariable %_ptr_Input_v4float Input
%loc3_1 = OpVariable %_ptr_Input_v4float Input
%void = OpTypeVoid
%13 = OpTypeFunction %void
%FragmentInputs = OpTypeStruct %int %uint %float %v4float
%main = OpFunction %void None %13
%16 = OpLabel
%18 = OpLoad %int %tint_symbol
%19 = OpLoad %uint %tint_symbol_1
%20 = OpLoad %float %tint_symbol_2
%21 = OpLoad %v4float %tint_symbol_3
%22 = OpCompositeConstruct %FragmentInputs %18 %19 %20 %21
%23 = OpCompositeExtract %int %22 0
%24 = OpCompositeExtract %uint %22 1
%25 = OpCompositeExtract %float %22 2
%26 = OpCompositeExtract %v4float %22 3
%13 = OpTypeFunction %void %FragmentInputs
%23 = OpTypeFunction %void
%main_inner = OpFunction %void None %13
%inputs = OpFunctionParameter %FragmentInputs
%18 = OpLabel
%19 = OpCompositeExtract %int %inputs 0
%20 = OpCompositeExtract %uint %inputs 1
%21 = OpCompositeExtract %float %inputs 2
%22 = OpCompositeExtract %v4float %inputs 3
OpReturn
OpFunctionEnd
%main = OpFunction %void None %23
%25 = OpLabel
%27 = OpLoad %int %loc0_1
%28 = OpLoad %uint %loc1_1
%29 = OpLoad %float %loc2_1
%30 = OpLoad %v4float %loc3_1
%31 = OpCompositeConstruct %FragmentInputs %27 %28 %29 %30
%26 = OpFunctionCall %void %main_inner %31
OpReturn
OpFunctionEnd

View File

@@ -1,39 +1,46 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 47
; Bound: 57
; Schema: 0
OpCapability Shader
OpCapability SampleRateShading
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_6 %tint_symbol_7 %tint_symbol_3 %tint_symbol_5 %tint_symbol_4 %tint_symbol_9
OpEntryPoint Fragment %main "main" %position_1 %loc0_1 %front_facing_1 %loc1_1 %sample_index_1 %loc3_1 %sample_mask_1 %loc2_1
OpExecutionMode %main OriginUpperLeft
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %tint_symbol_6 "tint_symbol_6"
OpName %tint_symbol_7 "tint_symbol_7"
OpName %tint_symbol_9 "tint_symbol_9"
OpName %main "main"
OpName %position_1 "position_1"
OpName %loc0_1 "loc0_1"
OpName %front_facing_1 "front_facing_1"
OpName %loc1_1 "loc1_1"
OpName %sample_index_1 "sample_index_1"
OpName %loc3_1 "loc3_1"
OpName %sample_mask_1 "sample_mask_1"
OpName %loc2_1 "loc2_1"
OpName %FragmentInputs0 "FragmentInputs0"
OpMemberName %FragmentInputs0 0 "position"
OpMemberName %FragmentInputs0 1 "loc0"
OpName %FragmentInputs1 "FragmentInputs1"
OpMemberName %FragmentInputs1 0 "loc3"
OpMemberName %FragmentInputs1 1 "sample_mask"
OpDecorate %tint_symbol BuiltIn FragCoord
OpDecorate %tint_symbol_1 Location 0
OpDecorate %tint_symbol_1 Flat
OpDecorate %tint_symbol_3 BuiltIn FrontFacing
OpDecorate %tint_symbol_4 Location 1
OpDecorate %tint_symbol_4 Flat
OpDecorate %tint_symbol_5 BuiltIn SampleId
OpDecorate %tint_symbol_6 Location 3
OpName %main_inner "main_inner"
OpName %inputs0 "inputs0"
OpName %front_facing "front_facing"
OpName %loc1 "loc1"
OpName %sample_index "sample_index"
OpName %inputs1 "inputs1"
OpName %loc2 "loc2"
OpName %main "main"
OpDecorate %position_1 BuiltIn FragCoord
OpDecorate %loc0_1 Location 0
OpDecorate %loc0_1 Flat
OpDecorate %front_facing_1 BuiltIn FrontFacing
OpDecorate %loc1_1 Location 1
OpDecorate %loc1_1 Flat
OpDecorate %sample_index_1 BuiltIn SampleId
OpDecorate %loc3_1 Location 3
OpDecorate %_arr_uint_uint_1 ArrayStride 4
OpDecorate %tint_symbol_7 BuiltIn SampleMask
OpDecorate %tint_symbol_9 Location 2
OpDecorate %sample_mask_1 BuiltIn SampleMask
OpDecorate %loc2_1 Location 2
OpMemberDecorate %FragmentInputs0 0 Offset 0
OpMemberDecorate %FragmentInputs0 1 Offset 16
OpMemberDecorate %FragmentInputs1 0 Offset 0
@@ -41,51 +48,63 @@
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%tint_symbol = OpVariable %_ptr_Input_v4float Input
%position_1 = OpVariable %_ptr_Input_v4float Input
%int = OpTypeInt 32 1
%_ptr_Input_int = OpTypePointer Input %int
%tint_symbol_1 = OpVariable %_ptr_Input_int Input
%loc0_1 = OpVariable %_ptr_Input_int Input
%bool = OpTypeBool
%_ptr_Input_bool = OpTypePointer Input %bool
%tint_symbol_3 = OpVariable %_ptr_Input_bool Input
%front_facing_1 = OpVariable %_ptr_Input_bool Input
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol_4 = OpVariable %_ptr_Input_uint Input
%tint_symbol_5 = OpVariable %_ptr_Input_uint Input
%tint_symbol_6 = OpVariable %_ptr_Input_v4float Input
%loc1_1 = OpVariable %_ptr_Input_uint Input
%sample_index_1 = OpVariable %_ptr_Input_uint Input
%loc3_1 = OpVariable %_ptr_Input_v4float 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
%tint_symbol_7 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
%sample_mask_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
%_ptr_Input_float = OpTypePointer Input %float
%tint_symbol_9 = OpVariable %_ptr_Input_float Input
%loc2_1 = OpVariable %_ptr_Input_float Input
%void = OpTypeVoid
%22 = OpTypeFunction %void
%FragmentInputs0 = OpTypeStruct %v4float %int
%FragmentInputs1 = OpTypeStruct %v4float %uint
%22 = OpTypeFunction %void %FragmentInputs0 %bool %uint %uint %FragmentInputs1 %float
%41 = OpTypeFunction %void
%int_0 = OpConstant %int 0
%main = OpFunction %void None %22
%25 = OpLabel
%27 = OpLoad %v4float %tint_symbol
%28 = OpLoad %int %tint_symbol_1
%29 = OpCompositeConstruct %FragmentInputs0 %27 %28
%31 = OpLoad %v4float %tint_symbol_6
%33 = OpAccessChain %_ptr_Input_uint %tint_symbol_7 %int_0
%34 = OpLoad %uint %33
%35 = OpCompositeConstruct %FragmentInputs1 %31 %34
%36 = OpLoad %bool %tint_symbol_3
OpSelectionMerge %37 None
OpBranchConditional %36 %38 %37
%38 = OpLabel
%39 = OpCompositeExtract %v4float %29 0
%40 = OpLoad %uint %tint_symbol_5
%41 = OpCompositeExtract %uint %35 1
%42 = OpIAdd %uint %40 %41
%43 = OpCompositeExtract %int %29 1
%44 = OpLoad %uint %tint_symbol_4
%45 = OpLoad %float %tint_symbol_9
%46 = OpCompositeExtract %v4float %35 0
OpBranch %37
%37 = OpLabel
%main_inner = OpFunction %void None %22
%inputs0 = OpFunctionParameter %FragmentInputs0
%front_facing = OpFunctionParameter %bool
%loc1 = OpFunctionParameter %uint
%sample_index = OpFunctionParameter %uint
%inputs1 = OpFunctionParameter %FragmentInputs1
%loc2 = OpFunctionParameter %float
%33 = OpLabel
OpSelectionMerge %34 None
OpBranchConditional %front_facing %35 %34
%35 = OpLabel
%36 = OpCompositeExtract %v4float %inputs0 0
%37 = OpCompositeExtract %uint %inputs1 1
%38 = OpIAdd %uint %sample_index %37
%39 = OpCompositeExtract %int %inputs0 1
%40 = OpCompositeExtract %v4float %inputs1 0
OpBranch %34
%34 = OpLabel
OpReturn
OpFunctionEnd
%main = OpFunction %void None %41
%43 = OpLabel
%45 = OpLoad %v4float %position_1
%46 = OpLoad %int %loc0_1
%47 = OpCompositeConstruct %FragmentInputs0 %45 %46
%48 = OpLoad %bool %front_facing_1
%49 = OpLoad %uint %loc1_1
%50 = OpLoad %uint %sample_index_1
%51 = OpLoad %v4float %loc3_1
%53 = OpAccessChain %_ptr_Input_uint %sample_mask_1 %int_0
%54 = OpLoad %uint %53
%55 = OpCompositeConstruct %FragmentInputs1 %51 %54
%56 = OpLoad %float %loc2_1
%44 = OpFunctionCall %void %main_inner %47 %48 %49 %50 %55 %56
OpReturn
OpFunctionEnd

View File

@@ -1,64 +1,60 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 32
; Bound: 30
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main1 "main1" %tint_symbol_1
OpEntryPoint Fragment %main2 "main2" %tint_symbol_4
OpEntryPoint Fragment %main1 "main1" %value
OpEntryPoint Fragment %main2 "main2" %value_1
OpExecutionMode %main1 OriginUpperLeft
OpExecutionMode %main1 DepthReplacing
OpExecutionMode %main2 OriginUpperLeft
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %value "value"
OpName %value_1 "value_1"
OpName %main1_inner "main1_inner"
OpName %main1 "main1"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %main2_inner "main2_inner"
OpName %main2 "main2"
OpDecorate %tint_symbol_1 BuiltIn FragDepth
OpDecorate %value BuiltIn FragDepth
OpDecorate %_arr_uint_uint_1 ArrayStride 4
OpDecorate %tint_symbol_4 BuiltIn SampleMask
OpDecorate %value_1 BuiltIn SampleMask
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_symbol_1 = OpVariable %_ptr_Output_float Output %4
%value = OpVariable %_ptr_Output_float Output %4
%uint = OpTypeInt 32 0
%uint_1 = OpConstant %uint 1
%_arr_uint_uint_1 = OpTypeArray %uint %uint_1
%_ptr_Output__arr_uint_uint_1 = OpTypePointer Output %_arr_uint_uint_1
%10 = OpConstantNull %_arr_uint_uint_1
%tint_symbol_4 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %10
%void = OpTypeVoid
%11 = OpTypeFunction %void %float
%16 = OpTypeFunction %void
%value_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %10
%11 = OpTypeFunction %float
%float_1 = OpConstant %float 1
%21 = OpTypeFunction %void %uint
%void = OpTypeVoid
%15 = OpTypeFunction %void
%20 = OpTypeFunction %uint
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%_ptr_Output_uint = OpTypePointer Output %uint
%tint_symbol_2 = OpFunction %void None %11
%tint_symbol = OpFunctionParameter %float
%15 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%main1_inner = OpFunction %float None %11
%13 = OpLabel
OpReturnValue %float_1
OpFunctionEnd
%main1 = OpFunction %void None %16
%main1 = OpFunction %void None %15
%18 = OpLabel
%19 = OpFunctionCall %void %tint_symbol_2 %float_1
%19 = OpFunctionCall %float %main1_inner
OpStore %value %19
OpReturn
OpFunctionEnd
%tint_symbol_5 = OpFunction %void None %21
%tint_symbol_3 = OpFunctionParameter %uint
%main2_inner = OpFunction %uint None %20
%22 = OpLabel
OpReturnValue %uint_1
OpFunctionEnd
%main2 = OpFunction %void None %15
%24 = OpLabel
%28 = OpAccessChain %_ptr_Output_uint %tint_symbol_4 %int_0
OpStore %28 %tint_symbol_3
OpReturn
OpFunctionEnd
%main2 = OpFunction %void None %16
%30 = OpLabel
%31 = OpFunctionCall %void %tint_symbol_5 %uint_1
%25 = OpFunctionCall %uint %main2_inner
%29 = OpAccessChain %_ptr_Output_uint %value_1 %int_0
OpStore %29 %25
OpReturn
OpFunctionEnd

View File

@@ -1,57 +1,55 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 29
; Bound: 28
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
OpEntryPoint Fragment %main "main" %frag_depth_1 %sample_mask_1
OpExecutionMode %main OriginUpperLeft
OpExecutionMode %main DepthReplacing
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %frag_depth_1 "frag_depth_1"
OpName %sample_mask_1 "sample_mask_1"
OpName %FragmentOutputs "FragmentOutputs"
OpMemberName %FragmentOutputs 0 "frag_depth"
OpMemberName %FragmentOutputs 1 "sample_mask"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol "tint_symbol"
OpName %main_inner "main_inner"
OpName %main "main"
OpDecorate %tint_symbol_1 BuiltIn FragDepth
OpDecorate %frag_depth_1 BuiltIn FragDepth
OpDecorate %_arr_uint_uint_1 ArrayStride 4
OpDecorate %tint_symbol_2 BuiltIn SampleMask
OpDecorate %sample_mask_1 BuiltIn SampleMask
OpMemberDecorate %FragmentOutputs 0 Offset 0
OpMemberDecorate %FragmentOutputs 1 Offset 4
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_symbol_1 = OpVariable %_ptr_Output_float Output %4
%frag_depth_1 = OpVariable %_ptr_Output_float Output %4
%uint = OpTypeInt 32 0
%uint_1 = OpConstant %uint 1
%_arr_uint_uint_1 = OpTypeArray %uint %uint_1
%_ptr_Output__arr_uint_uint_1 = OpTypePointer Output %_arr_uint_uint_1
%10 = OpConstantNull %_arr_uint_uint_1
%tint_symbol_2 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %10
%void = OpTypeVoid
%sample_mask_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %10
%FragmentOutputs = OpTypeStruct %float %uint
%11 = OpTypeFunction %void %FragmentOutputs
%11 = OpTypeFunction %FragmentOutputs
%float_1 = OpConstant %float 1
%16 = OpConstantComposite %FragmentOutputs %float_1 %uint_1
%void = OpTypeVoid
%17 = OpTypeFunction %void
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%_ptr_Output_uint = OpTypePointer Output %uint
%23 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%28 = OpConstantComposite %FragmentOutputs %float_1 %uint_1
%tint_symbol_3 = OpFunction %void None %11
%tint_symbol = OpFunctionParameter %FragmentOutputs
%16 = OpLabel
%17 = OpCompositeExtract %float %tint_symbol 0
OpStore %tint_symbol_1 %17
%21 = OpAccessChain %_ptr_Output_uint %tint_symbol_2 %int_0
%22 = OpCompositeExtract %uint %tint_symbol 1
OpStore %21 %22
OpReturn
OpFunctionEnd
%main = OpFunction %void None %23
%25 = OpLabel
%26 = OpFunctionCall %void %tint_symbol_3 %28
%main_inner = OpFunction %FragmentOutputs None %11
%14 = OpLabel
OpReturnValue %16
OpFunctionEnd
%main = OpFunction %void None %17
%20 = OpLabel
%21 = OpFunctionCall %FragmentOutputs %main_inner
%22 = OpCompositeExtract %float %21 0
OpStore %frag_depth_1 %22
%26 = OpAccessChain %_ptr_Output_uint %sample_mask_1 %int_0
%27 = OpCompositeExtract %uint %21 1
OpStore %26 %27
OpReturn
OpFunctionEnd

View File

@@ -1,108 +1,100 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 54
; Bound: 50
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main0 "main0" %tint_symbol_1
OpEntryPoint Fragment %main1 "main1" %tint_symbol_4
OpEntryPoint Fragment %main2 "main2" %tint_symbol_7
OpEntryPoint Fragment %main3 "main3" %tint_symbol_10
OpEntryPoint Fragment %main0 "main0" %value
OpEntryPoint Fragment %main1 "main1" %value_1
OpEntryPoint Fragment %main2 "main2" %value_2
OpEntryPoint Fragment %main3 "main3" %value_3
OpExecutionMode %main0 OriginUpperLeft
OpExecutionMode %main1 OriginUpperLeft
OpExecutionMode %main2 OriginUpperLeft
OpExecutionMode %main3 OriginUpperLeft
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %tint_symbol_7 "tint_symbol_7"
OpName %tint_symbol_10 "tint_symbol_10"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %value "value"
OpName %value_1 "value_1"
OpName %value_2 "value_2"
OpName %value_3 "value_3"
OpName %main0_inner "main0_inner"
OpName %main0 "main0"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %main1_inner "main1_inner"
OpName %main1 "main1"
OpName %tint_symbol_8 "tint_symbol_8"
OpName %tint_symbol_6 "tint_symbol_6"
OpName %main2_inner "main2_inner"
OpName %main2 "main2"
OpName %tint_symbol_11 "tint_symbol_11"
OpName %tint_symbol_9 "tint_symbol_9"
OpName %main3_inner "main3_inner"
OpName %main3 "main3"
OpDecorate %tint_symbol_1 Location 0
OpDecorate %tint_symbol_4 Location 1
OpDecorate %tint_symbol_7 Location 2
OpDecorate %tint_symbol_10 Location 3
OpDecorate %value Location 0
OpDecorate %value_1 Location 1
OpDecorate %value_2 Location 2
OpDecorate %value_3 Location 3
%int = OpTypeInt 32 1
%_ptr_Output_int = OpTypePointer Output %int
%4 = OpConstantNull %int
%tint_symbol_1 = OpVariable %_ptr_Output_int Output %4
%value = OpVariable %_ptr_Output_int Output %4
%uint = OpTypeInt 32 0
%_ptr_Output_uint = OpTypePointer Output %uint
%8 = OpConstantNull %uint
%tint_symbol_4 = OpVariable %_ptr_Output_uint Output %8
%value_1 = OpVariable %_ptr_Output_uint Output %8
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%12 = OpConstantNull %float
%tint_symbol_7 = OpVariable %_ptr_Output_float Output %12
%value_2 = OpVariable %_ptr_Output_float Output %12
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%16 = OpConstantNull %v4float
%tint_symbol_10 = OpVariable %_ptr_Output_v4float Output %16
%void = OpTypeVoid
%17 = OpTypeFunction %void %int
%22 = OpTypeFunction %void
%value_3 = OpVariable %_ptr_Output_v4float Output %16
%17 = OpTypeFunction %int
%int_1 = OpConstant %int 1
%27 = OpTypeFunction %void %uint
%void = OpTypeVoid
%21 = OpTypeFunction %void
%26 = OpTypeFunction %uint
%uint_1 = OpConstant %uint 1
%35 = OpTypeFunction %void %float
%33 = OpTypeFunction %float
%float_1 = OpConstant %float 1
%43 = OpTypeFunction %void %v4float
%40 = OpTypeFunction %v4float
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%53 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%tint_symbol_2 = OpFunction %void None %17
%tint_symbol = OpFunctionParameter %int
%21 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
%46 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%main0_inner = OpFunction %int None %17
%19 = OpLabel
OpReturnValue %int_1
OpFunctionEnd
%main0 = OpFunction %void None %22
%main0 = OpFunction %void None %21
%24 = OpLabel
%25 = OpFunctionCall %void %tint_symbol_2 %int_1
%25 = OpFunctionCall %int %main0_inner
OpStore %value %25
OpReturn
OpFunctionEnd
%tint_symbol_5 = OpFunction %void None %27
%tint_symbol_3 = OpFunctionParameter %uint
%30 = OpLabel
OpStore %tint_symbol_4 %tint_symbol_3
%main1_inner = OpFunction %uint None %26
%28 = OpLabel
OpReturnValue %uint_1
OpFunctionEnd
%main1 = OpFunction %void None %21
%31 = OpLabel
%32 = OpFunctionCall %uint %main1_inner
OpStore %value_1 %32
OpReturn
OpFunctionEnd
%main1 = OpFunction %void None %22
%32 = OpLabel
%33 = OpFunctionCall %void %tint_symbol_5 %uint_1
OpReturn
%main2_inner = OpFunction %float None %33
%35 = OpLabel
OpReturnValue %float_1
OpFunctionEnd
%tint_symbol_8 = OpFunction %void None %35
%tint_symbol_6 = OpFunctionParameter %float
%main2 = OpFunction %void None %21
%38 = OpLabel
OpStore %tint_symbol_7 %tint_symbol_6
%39 = OpFunctionCall %float %main2_inner
OpStore %value_2 %39
OpReturn
OpFunctionEnd
%main2 = OpFunction %void None %22
%40 = OpLabel
%41 = OpFunctionCall %void %tint_symbol_8 %float_1
OpReturn
%main3_inner = OpFunction %v4float None %40
%42 = OpLabel
OpReturnValue %46
OpFunctionEnd
%tint_symbol_11 = OpFunction %void None %43
%tint_symbol_9 = OpFunctionParameter %v4float
%46 = OpLabel
OpStore %tint_symbol_10 %tint_symbol_9
OpReturn
OpFunctionEnd
%main3 = OpFunction %void None %22
%main3 = OpFunction %void None %21
%48 = OpLabel
%49 = OpFunctionCall %void %tint_symbol_11 %53
%49 = OpFunctionCall %v4float %main3_inner
OpStore %value_3 %49
OpReturn
OpFunctionEnd

View File

@@ -1,28 +1,27 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 39
; Bound: 38
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4
OpEntryPoint Fragment %main "main" %loc0_1 %loc1_1 %loc2_1 %loc3_1
OpExecutionMode %main OriginUpperLeft
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %loc0_1 "loc0_1"
OpName %loc1_1 "loc1_1"
OpName %loc2_1 "loc2_1"
OpName %loc3_1 "loc3_1"
OpName %FragmentOutputs "FragmentOutputs"
OpMemberName %FragmentOutputs 0 "loc0"
OpMemberName %FragmentOutputs 1 "loc1"
OpMemberName %FragmentOutputs 2 "loc2"
OpMemberName %FragmentOutputs 3 "loc3"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %tint_symbol "tint_symbol"
OpName %main_inner "main_inner"
OpName %main "main"
OpDecorate %tint_symbol_1 Location 0
OpDecorate %tint_symbol_2 Location 1
OpDecorate %tint_symbol_3 Location 2
OpDecorate %tint_symbol_4 Location 3
OpDecorate %loc0_1 Location 0
OpDecorate %loc1_1 Location 1
OpDecorate %loc2_1 Location 2
OpDecorate %loc3_1 Location 3
OpMemberDecorate %FragmentOutputs 0 Offset 0
OpMemberDecorate %FragmentOutputs 1 Offset 4
OpMemberDecorate %FragmentOutputs 2 Offset 8
@@ -30,46 +29,45 @@
%int = OpTypeInt 32 1
%_ptr_Output_int = OpTypePointer Output %int
%4 = OpConstantNull %int
%tint_symbol_1 = OpVariable %_ptr_Output_int Output %4
%loc0_1 = OpVariable %_ptr_Output_int Output %4
%uint = OpTypeInt 32 0
%_ptr_Output_uint = OpTypePointer Output %uint
%8 = OpConstantNull %uint
%tint_symbol_2 = OpVariable %_ptr_Output_uint Output %8
%loc1_1 = OpVariable %_ptr_Output_uint Output %8
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%12 = OpConstantNull %float
%tint_symbol_3 = OpVariable %_ptr_Output_float Output %12
%loc2_1 = OpVariable %_ptr_Output_float Output %12
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%16 = OpConstantNull %v4float
%tint_symbol_4 = OpVariable %_ptr_Output_v4float Output %16
%void = OpTypeVoid
%loc3_1 = OpVariable %_ptr_Output_v4float Output %16
%FragmentOutputs = OpTypeStruct %int %uint %float %v4float
%17 = OpTypeFunction %void %FragmentOutputs
%27 = OpTypeFunction %void
%17 = OpTypeFunction %FragmentOutputs
%int_1 = OpConstant %int 1
%uint_1 = OpConstant %uint 1
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%37 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%38 = OpConstantComposite %FragmentOutputs %int_1 %uint_1 %float_1 %37
%tint_symbol_5 = OpFunction %void None %17
%tint_symbol = OpFunctionParameter %FragmentOutputs
%22 = OpLabel
%23 = OpCompositeExtract %int %tint_symbol 0
OpStore %tint_symbol_1 %23
%24 = OpCompositeExtract %uint %tint_symbol 1
OpStore %tint_symbol_2 %24
%25 = OpCompositeExtract %float %tint_symbol 2
OpStore %tint_symbol_3 %25
%26 = OpCompositeExtract %v4float %tint_symbol 3
OpStore %tint_symbol_4 %26
OpReturn
OpFunctionEnd
%main = OpFunction %void None %27
%29 = OpLabel
%30 = OpFunctionCall %void %tint_symbol_5 %38
%27 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%28 = OpConstantComposite %FragmentOutputs %int_1 %uint_1 %float_1 %27
%void = OpTypeVoid
%29 = OpTypeFunction %void
%main_inner = OpFunction %FragmentOutputs None %17
%20 = OpLabel
OpReturnValue %28
OpFunctionEnd
%main = OpFunction %void None %29
%32 = OpLabel
%33 = OpFunctionCall %FragmentOutputs %main_inner
%34 = OpCompositeExtract %int %33 0
OpStore %loc0_1 %34
%35 = OpCompositeExtract %uint %33 1
OpStore %loc1_1 %35
%36 = OpCompositeExtract %float %33 2
OpStore %loc2_1 %36
%37 = OpCompositeExtract %v4float %33 3
OpStore %loc3_1 %37
OpReturn
OpFunctionEnd

View File

@@ -1,19 +1,19 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 49
; Bound: 48
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_5 %tint_symbol_6
OpEntryPoint Fragment %main "main" %loc0_1 %frag_depth_1 %loc1_1 %loc2_1 %sample_mask_1 %loc3_1
OpExecutionMode %main OriginUpperLeft
OpExecutionMode %main DepthReplacing
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %tint_symbol_6 "tint_symbol_6"
OpName %loc0_1 "loc0_1"
OpName %frag_depth_1 "frag_depth_1"
OpName %loc1_1 "loc1_1"
OpName %loc2_1 "loc2_1"
OpName %sample_mask_1 "sample_mask_1"
OpName %loc3_1 "loc3_1"
OpName %FragmentOutputs "FragmentOutputs"
OpMemberName %FragmentOutputs 0 "loc0"
OpMemberName %FragmentOutputs 1 "frag_depth"
@@ -21,16 +21,15 @@
OpMemberName %FragmentOutputs 3 "loc2"
OpMemberName %FragmentOutputs 4 "sample_mask"
OpMemberName %FragmentOutputs 5 "loc3"
OpName %tint_symbol_7 "tint_symbol_7"
OpName %tint_symbol "tint_symbol"
OpName %main_inner "main_inner"
OpName %main "main"
OpDecorate %tint_symbol_1 Location 0
OpDecorate %tint_symbol_2 BuiltIn FragDepth
OpDecorate %tint_symbol_3 Location 1
OpDecorate %tint_symbol_4 Location 2
OpDecorate %loc0_1 Location 0
OpDecorate %frag_depth_1 BuiltIn FragDepth
OpDecorate %loc1_1 Location 1
OpDecorate %loc2_1 Location 2
OpDecorate %_arr_uint_uint_1 ArrayStride 4
OpDecorate %tint_symbol_5 BuiltIn SampleMask
OpDecorate %tint_symbol_6 Location 3
OpDecorate %sample_mask_1 BuiltIn SampleMask
OpDecorate %loc3_1 Location 3
OpMemberDecorate %FragmentOutputs 0 Offset 0
OpMemberDecorate %FragmentOutputs 1 Offset 4
OpMemberDecorate %FragmentOutputs 2 Offset 8
@@ -40,58 +39,57 @@
%int = OpTypeInt 32 1
%_ptr_Output_int = OpTypePointer Output %int
%4 = OpConstantNull %int
%tint_symbol_1 = OpVariable %_ptr_Output_int Output %4
%loc0_1 = OpVariable %_ptr_Output_int Output %4
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
%frag_depth_1 = OpVariable %_ptr_Output_float Output %8
%uint = OpTypeInt 32 0
%_ptr_Output_uint = OpTypePointer Output %uint
%12 = OpConstantNull %uint
%tint_symbol_3 = OpVariable %_ptr_Output_uint Output %12
%tint_symbol_4 = OpVariable %_ptr_Output_float Output %8
%loc1_1 = OpVariable %_ptr_Output_uint Output %12
%loc2_1 = OpVariable %_ptr_Output_float Output %8
%uint_1 = OpConstant %uint 1
%_arr_uint_uint_1 = OpTypeArray %uint %uint_1
%_ptr_Output__arr_uint_uint_1 = OpTypePointer Output %_arr_uint_uint_1
%18 = OpConstantNull %_arr_uint_uint_1
%tint_symbol_5 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %18
%sample_mask_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %18
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%22 = OpConstantNull %v4float
%tint_symbol_6 = OpVariable %_ptr_Output_v4float Output %22
%void = OpTypeVoid
%loc3_1 = OpVariable %_ptr_Output_v4float Output %22
%FragmentOutputs = OpTypeStruct %int %float %uint %float %uint %v4float
%23 = OpTypeFunction %void %FragmentOutputs
%int_0 = OpConstant %int 0
%37 = OpTypeFunction %void
%23 = OpTypeFunction %FragmentOutputs
%int_1 = OpConstant %int 1
%float_2 = OpConstant %float 2
%float_1 = OpConstant %float 1
%uint_2 = OpConstant %uint 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%47 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%48 = OpConstantComposite %FragmentOutputs %int_1 %float_2 %uint_1 %float_1 %uint_2 %47
%tint_symbol_7 = OpFunction %void None %23
%tint_symbol = OpFunctionParameter %FragmentOutputs
%28 = OpLabel
%29 = OpCompositeExtract %int %tint_symbol 0
OpStore %tint_symbol_1 %29
%30 = OpCompositeExtract %float %tint_symbol 1
OpStore %tint_symbol_2 %30
%31 = OpCompositeExtract %uint %tint_symbol 2
OpStore %tint_symbol_3 %31
%32 = OpCompositeExtract %float %tint_symbol 3
OpStore %tint_symbol_4 %32
%34 = OpAccessChain %_ptr_Output_uint %tint_symbol_5 %int_0
%35 = OpCompositeExtract %uint %tint_symbol 4
OpStore %34 %35
%36 = OpCompositeExtract %v4float %tint_symbol 5
OpStore %tint_symbol_6 %36
OpReturn
OpFunctionEnd
%main = OpFunction %void None %37
%39 = OpLabel
%40 = OpFunctionCall %void %tint_symbol_7 %48
%33 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%34 = OpConstantComposite %FragmentOutputs %int_1 %float_2 %uint_1 %float_1 %uint_2 %33
%void = OpTypeVoid
%35 = OpTypeFunction %void
%int_0 = OpConstant %int 0
%main_inner = OpFunction %FragmentOutputs None %23
%26 = OpLabel
OpReturnValue %34
OpFunctionEnd
%main = OpFunction %void None %35
%38 = OpLabel
%39 = OpFunctionCall %FragmentOutputs %main_inner
%40 = OpCompositeExtract %int %39 0
OpStore %loc0_1 %40
%41 = OpCompositeExtract %float %39 1
OpStore %frag_depth_1 %41
%42 = OpCompositeExtract %uint %39 2
OpStore %loc1_1 %42
%43 = OpCompositeExtract %float %39 3
OpStore %loc2_1 %43
%45 = OpAccessChain %_ptr_Output_uint %sample_mask_1 %int_0
%46 = OpCompositeExtract %uint %39 4
OpStore %45 %46
%47 = OpCompositeExtract %v4float %39 5
OpStore %loc3_1 %47
OpReturn
OpFunctionEnd

View File

@@ -1,51 +1,82 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 15
; Bound: 35
; Schema: 0
OpCapability Shader
OpCapability SampleRateShading
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main"
OpEntryPoint Fragment %main "main" %none_1 %flat_1 %perspective_center_1 %perspective_centroid_1 %perspective_sample_1 %linear_center_1 %linear_centroid_1 %linear_sample_1
OpExecutionMode %main OriginUpperLeft
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %tint_symbol_6 "tint_symbol_6"
OpName %tint_symbol_7 "tint_symbol_7"
OpName %none_1 "none_1"
OpName %flat_1 "flat_1"
OpName %perspective_center_1 "perspective_center_1"
OpName %perspective_centroid_1 "perspective_centroid_1"
OpName %perspective_sample_1 "perspective_sample_1"
OpName %linear_center_1 "linear_center_1"
OpName %linear_centroid_1 "linear_centroid_1"
OpName %linear_sample_1 "linear_sample_1"
OpName %main_inner "main_inner"
OpName %none "none"
OpName %flat "flat"
OpName %perspective_center "perspective_center"
OpName %perspective_centroid "perspective_centroid"
OpName %perspective_sample "perspective_sample"
OpName %linear_center "linear_center"
OpName %linear_centroid "linear_centroid"
OpName %linear_sample "linear_sample"
OpName %main "main"
OpDecorate %tint_symbol Location 0
OpDecorate %tint_symbol_1 Location 1
OpDecorate %tint_symbol_1 Flat
OpDecorate %tint_symbol_2 Location 2
OpDecorate %tint_symbol_3 Location 3
OpDecorate %tint_symbol_3 Centroid
OpDecorate %tint_symbol_4 Location 4
OpDecorate %tint_symbol_4 Sample
OpDecorate %tint_symbol_5 Location 5
OpDecorate %tint_symbol_5 NoPerspective
OpDecorate %tint_symbol_6 Location 6
OpDecorate %tint_symbol_6 NoPerspective
OpDecorate %tint_symbol_6 Centroid
OpDecorate %tint_symbol_7 Location 7
OpDecorate %tint_symbol_7 NoPerspective
OpDecorate %tint_symbol_7 Sample
OpDecorate %none_1 Location 0
OpDecorate %flat_1 Location 1
OpDecorate %flat_1 Flat
OpDecorate %perspective_center_1 Location 2
OpDecorate %perspective_centroid_1 Location 3
OpDecorate %perspective_centroid_1 Centroid
OpDecorate %perspective_sample_1 Location 4
OpDecorate %perspective_sample_1 Sample
OpDecorate %linear_center_1 Location 5
OpDecorate %linear_center_1 NoPerspective
OpDecorate %linear_centroid_1 Location 6
OpDecorate %linear_centroid_1 NoPerspective
OpDecorate %linear_centroid_1 Centroid
OpDecorate %linear_sample_1 Location 7
OpDecorate %linear_sample_1 NoPerspective
OpDecorate %linear_sample_1 Sample
%float = OpTypeFloat 32
%_ptr_Input_float = OpTypePointer Input %float
%tint_symbol = OpVariable %_ptr_Input_float Input
%tint_symbol_1 = OpVariable %_ptr_Input_float Input
%tint_symbol_2 = OpVariable %_ptr_Input_float Input
%tint_symbol_3 = OpVariable %_ptr_Input_float Input
%tint_symbol_4 = OpVariable %_ptr_Input_float Input
%tint_symbol_5 = OpVariable %_ptr_Input_float Input
%tint_symbol_6 = OpVariable %_ptr_Input_float Input
%tint_symbol_7 = OpVariable %_ptr_Input_float Input
%none_1 = OpVariable %_ptr_Input_float Input
%flat_1 = OpVariable %_ptr_Input_float Input
%perspective_center_1 = OpVariable %_ptr_Input_float Input
%perspective_centroid_1 = OpVariable %_ptr_Input_float Input
%perspective_sample_1 = OpVariable %_ptr_Input_float Input
%linear_center_1 = OpVariable %_ptr_Input_float Input
%linear_centroid_1 = OpVariable %_ptr_Input_float Input
%linear_sample_1 = OpVariable %_ptr_Input_float Input
%void = OpTypeVoid
%11 = OpTypeFunction %void
%main = OpFunction %void None %11
%14 = OpLabel
%11 = OpTypeFunction %void %float %float %float %float %float %float %float %float
%23 = OpTypeFunction %void
%main_inner = OpFunction %void None %11
%none = OpFunctionParameter %float
%flat = OpFunctionParameter %float
%perspective_center = OpFunctionParameter %float
%perspective_centroid = OpFunctionParameter %float
%perspective_sample = OpFunctionParameter %float
%linear_center = OpFunctionParameter %float
%linear_centroid = OpFunctionParameter %float
%linear_sample = OpFunctionParameter %float
%22 = OpLabel
OpReturn
OpFunctionEnd
%main = OpFunction %void None %23
%25 = OpLabel
%27 = OpLoad %float %none_1
%28 = OpLoad %float %flat_1
%29 = OpLoad %float %perspective_center_1
%30 = OpLoad %float %perspective_centroid_1
%31 = OpLoad %float %perspective_sample_1
%32 = OpLoad %float %linear_center_1
%33 = OpLoad %float %linear_centroid_1
%34 = OpLoad %float %linear_sample_1
%26 = OpFunctionCall %void %main_inner %27 %28 %29 %30 %31 %32 %33 %34
OpReturn
OpFunctionEnd

View File

@@ -1,51 +1,87 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 15
; Bound: 30
; Schema: 0
OpCapability Shader
OpCapability SampleRateShading
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main"
OpEntryPoint Fragment %main "main" %none_1 %flat_1 %perspective_center_1 %perspective_centroid_1 %perspective_sample_1 %linear_center_1 %linear_centroid_1 %linear_sample_1
OpExecutionMode %main OriginUpperLeft
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %tint_symbol_6 "tint_symbol_6"
OpName %tint_symbol_7 "tint_symbol_7"
OpName %none_1 "none_1"
OpName %flat_1 "flat_1"
OpName %perspective_center_1 "perspective_center_1"
OpName %perspective_centroid_1 "perspective_centroid_1"
OpName %perspective_sample_1 "perspective_sample_1"
OpName %linear_center_1 "linear_center_1"
OpName %linear_centroid_1 "linear_centroid_1"
OpName %linear_sample_1 "linear_sample_1"
OpName %In "In"
OpMemberName %In 0 "none"
OpMemberName %In 1 "flat"
OpMemberName %In 2 "perspective_center"
OpMemberName %In 3 "perspective_centroid"
OpMemberName %In 4 "perspective_sample"
OpMemberName %In 5 "linear_center"
OpMemberName %In 6 "linear_centroid"
OpMemberName %In 7 "linear_sample"
OpName %main_inner "main_inner"
OpName %in "in"
OpName %main "main"
OpDecorate %tint_symbol Location 0
OpDecorate %tint_symbol_1 Location 1
OpDecorate %tint_symbol_1 Flat
OpDecorate %tint_symbol_2 Location 2
OpDecorate %tint_symbol_3 Location 3
OpDecorate %tint_symbol_3 Centroid
OpDecorate %tint_symbol_4 Location 4
OpDecorate %tint_symbol_4 Sample
OpDecorate %tint_symbol_5 Location 5
OpDecorate %tint_symbol_5 NoPerspective
OpDecorate %tint_symbol_6 Location 6
OpDecorate %tint_symbol_6 NoPerspective
OpDecorate %tint_symbol_6 Centroid
OpDecorate %tint_symbol_7 Location 7
OpDecorate %tint_symbol_7 NoPerspective
OpDecorate %tint_symbol_7 Sample
OpDecorate %none_1 Location 0
OpDecorate %flat_1 Location 1
OpDecorate %flat_1 Flat
OpDecorate %perspective_center_1 Location 2
OpDecorate %perspective_centroid_1 Location 3
OpDecorate %perspective_centroid_1 Centroid
OpDecorate %perspective_sample_1 Location 4
OpDecorate %perspective_sample_1 Sample
OpDecorate %linear_center_1 Location 5
OpDecorate %linear_center_1 NoPerspective
OpDecorate %linear_centroid_1 Location 6
OpDecorate %linear_centroid_1 NoPerspective
OpDecorate %linear_centroid_1 Centroid
OpDecorate %linear_sample_1 Location 7
OpDecorate %linear_sample_1 NoPerspective
OpDecorate %linear_sample_1 Sample
OpMemberDecorate %In 0 Offset 0
OpMemberDecorate %In 1 Offset 4
OpMemberDecorate %In 2 Offset 8
OpMemberDecorate %In 3 Offset 12
OpMemberDecorate %In 4 Offset 16
OpMemberDecorate %In 5 Offset 20
OpMemberDecorate %In 6 Offset 24
OpMemberDecorate %In 7 Offset 28
%float = OpTypeFloat 32
%_ptr_Input_float = OpTypePointer Input %float
%tint_symbol = OpVariable %_ptr_Input_float Input
%tint_symbol_1 = OpVariable %_ptr_Input_float Input
%tint_symbol_2 = OpVariable %_ptr_Input_float Input
%tint_symbol_3 = OpVariable %_ptr_Input_float Input
%tint_symbol_4 = OpVariable %_ptr_Input_float Input
%tint_symbol_5 = OpVariable %_ptr_Input_float Input
%tint_symbol_6 = OpVariable %_ptr_Input_float Input
%tint_symbol_7 = OpVariable %_ptr_Input_float Input
%none_1 = OpVariable %_ptr_Input_float Input
%flat_1 = OpVariable %_ptr_Input_float Input
%perspective_center_1 = OpVariable %_ptr_Input_float Input
%perspective_centroid_1 = OpVariable %_ptr_Input_float Input
%perspective_sample_1 = OpVariable %_ptr_Input_float Input
%linear_center_1 = OpVariable %_ptr_Input_float Input
%linear_centroid_1 = OpVariable %_ptr_Input_float Input
%linear_sample_1 = OpVariable %_ptr_Input_float Input
%void = OpTypeVoid
%11 = OpTypeFunction %void
%main = OpFunction %void None %11
%14 = OpLabel
%In = OpTypeStruct %float %float %float %float %float %float %float %float
%11 = OpTypeFunction %void %In
%17 = OpTypeFunction %void
%main_inner = OpFunction %void None %11
%in = OpFunctionParameter %In
%16 = OpLabel
OpReturn
OpFunctionEnd
%main = OpFunction %void None %17
%19 = OpLabel
%21 = OpLoad %float %none_1
%22 = OpLoad %float %flat_1
%23 = OpLoad %float %perspective_center_1
%24 = OpLoad %float %perspective_centroid_1
%25 = OpLoad %float %perspective_sample_1
%26 = OpLoad %float %linear_center_1
%27 = OpLoad %float %linear_centroid_1
%28 = OpLoad %float %linear_sample_1
%29 = OpCompositeConstruct %In %21 %22 %23 %24 %25 %26 %27 %28
%20 = OpFunctionCall %void %main_inner %29
OpReturn
OpFunctionEnd

View File

@@ -1,140 +1,138 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 67
; Bound: 66
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vert_main "vert_main" %tint_pointsize %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_5
OpEntryPoint Fragment %frag_main "frag_main" %tint_symbol_7 %tint_symbol_8 %tint_symbol_9 %tint_symbol_10 %tint_symbol_11 %tint_symbol_14
OpEntryPoint Vertex %vert_main "vert_main" %i_1 %u_1 %vi_1 %vu_1 %pos_1 %vertex_point_size
OpEntryPoint Fragment %frag_main "frag_main" %i_2 %u_2 %vi_2 %vu_2 %pos_2 %value
OpExecutionMode %frag_main OriginUpperLeft
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %tint_symbol_7 "tint_symbol_7"
OpName %tint_symbol_8 "tint_symbol_8"
OpName %tint_symbol_9 "tint_symbol_9"
OpName %tint_symbol_10 "tint_symbol_10"
OpName %tint_symbol_11 "tint_symbol_11"
OpName %tint_symbol_14 "tint_symbol_14"
OpName %i_1 "i_1"
OpName %u_1 "u_1"
OpName %vi_1 "vi_1"
OpName %vu_1 "vu_1"
OpName %pos_1 "pos_1"
OpName %vertex_point_size "vertex_point_size"
OpName %i_2 "i_2"
OpName %u_2 "u_2"
OpName %vi_2 "vi_2"
OpName %vu_2 "vu_2"
OpName %pos_2 "pos_2"
OpName %value "value"
OpName %Interface "Interface"
OpMemberName %Interface 0 "i"
OpMemberName %Interface 1 "u"
OpMemberName %Interface 2 "vi"
OpMemberName %Interface 3 "vu"
OpMemberName %Interface 4 "pos"
OpName %tint_symbol_6 "tint_symbol_6"
OpName %tint_symbol "tint_symbol"
OpName %vert_main_inner "vert_main_inner"
OpName %vert_main "vert_main"
OpName %tint_symbol_15 "tint_symbol_15"
OpName %tint_symbol_13 "tint_symbol_13"
OpName %frag_main_inner "frag_main_inner"
OpName %inputs "inputs"
OpName %frag_main "frag_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 Location 0
OpDecorate %tint_symbol_1 Flat
OpDecorate %tint_symbol_2 Location 1
OpDecorate %tint_symbol_2 Flat
OpDecorate %tint_symbol_3 Location 2
OpDecorate %tint_symbol_3 Flat
OpDecorate %tint_symbol_4 Location 3
OpDecorate %tint_symbol_4 Flat
OpDecorate %tint_symbol_5 BuiltIn Position
OpDecorate %tint_symbol_7 Location 0
OpDecorate %tint_symbol_7 Flat
OpDecorate %tint_symbol_8 Location 1
OpDecorate %tint_symbol_8 Flat
OpDecorate %tint_symbol_9 Location 2
OpDecorate %tint_symbol_9 Flat
OpDecorate %tint_symbol_10 Location 3
OpDecorate %tint_symbol_10 Flat
OpDecorate %tint_symbol_11 BuiltIn FragCoord
OpDecorate %tint_symbol_14 Location 0
OpDecorate %i_1 Location 0
OpDecorate %i_1 Flat
OpDecorate %u_1 Location 1
OpDecorate %u_1 Flat
OpDecorate %vi_1 Location 2
OpDecorate %vi_1 Flat
OpDecorate %vu_1 Location 3
OpDecorate %vu_1 Flat
OpDecorate %pos_1 BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
OpDecorate %i_2 Location 0
OpDecorate %i_2 Flat
OpDecorate %u_2 Location 1
OpDecorate %u_2 Flat
OpDecorate %vi_2 Location 2
OpDecorate %vi_2 Flat
OpDecorate %vu_2 Location 3
OpDecorate %vu_2 Flat
OpDecorate %pos_2 BuiltIn FragCoord
OpDecorate %value Location 0
OpMemberDecorate %Interface 0 Offset 0
OpMemberDecorate %Interface 1 Offset 4
OpMemberDecorate %Interface 2 Offset 16
OpMemberDecorate %Interface 3 Offset 32
OpMemberDecorate %Interface 4 Offset 48
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%int = OpTypeInt 32 1
%_ptr_Output_int = OpTypePointer Output %int
%8 = OpConstantNull %int
%tint_symbol_1 = OpVariable %_ptr_Output_int Output %8
%4 = OpConstantNull %int
%i_1 = OpVariable %_ptr_Output_int Output %4
%uint = OpTypeInt 32 0
%_ptr_Output_uint = OpTypePointer Output %uint
%12 = OpConstantNull %uint
%tint_symbol_2 = OpVariable %_ptr_Output_uint Output %12
%8 = OpConstantNull %uint
%u_1 = OpVariable %_ptr_Output_uint Output %8
%v4int = OpTypeVector %int 4
%_ptr_Output_v4int = OpTypePointer Output %v4int
%16 = OpConstantNull %v4int
%tint_symbol_3 = OpVariable %_ptr_Output_v4int Output %16
%12 = OpConstantNull %v4int
%vi_1 = OpVariable %_ptr_Output_v4int Output %12
%v4uint = OpTypeVector %uint 4
%_ptr_Output_v4uint = OpTypePointer Output %v4uint
%20 = OpConstantNull %v4uint
%tint_symbol_4 = OpVariable %_ptr_Output_v4uint Output %20
%16 = OpConstantNull %v4uint
%vu_1 = OpVariable %_ptr_Output_v4uint Output %16
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%24 = OpConstantNull %v4float
%tint_symbol_5 = OpVariable %_ptr_Output_v4float Output %24
%21 = OpConstantNull %v4float
%pos_1 = OpVariable %_ptr_Output_v4float Output %21
%_ptr_Output_float = OpTypePointer Output %float
%24 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %24
%_ptr_Input_int = OpTypePointer Input %int
%tint_symbol_7 = OpVariable %_ptr_Input_int Input
%i_2 = OpVariable %_ptr_Input_int Input
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol_8 = OpVariable %_ptr_Input_uint Input
%u_2 = OpVariable %_ptr_Input_uint Input
%_ptr_Input_v4int = OpTypePointer Input %v4int
%tint_symbol_9 = OpVariable %_ptr_Input_v4int Input
%vi_2 = OpVariable %_ptr_Input_v4int Input
%_ptr_Input_v4uint = OpTypePointer Input %v4uint
%tint_symbol_10 = OpVariable %_ptr_Input_v4uint Input
%vu_2 = OpVariable %_ptr_Input_v4uint Input
%_ptr_Input_v4float = OpTypePointer Input %v4float
%tint_symbol_11 = OpVariable %_ptr_Input_v4float Input
%tint_symbol_14 = OpVariable %_ptr_Output_int Output %8
%void = OpTypeVoid
%pos_2 = OpVariable %_ptr_Input_v4float Input
%value = OpVariable %_ptr_Output_int Output %4
%Interface = OpTypeStruct %int %uint %v4int %v4uint %v4float
%36 = OpTypeFunction %void %Interface
%47 = OpTypeFunction %void
%36 = OpTypeFunction %Interface
%40 = OpConstantNull %Interface
%void = OpTypeVoid
%41 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%52 = OpConstantNull %Interface
%53 = OpTypeFunction %void %int
%tint_symbol_6 = OpFunction %void None %36
%tint_symbol = OpFunctionParameter %Interface
%41 = OpLabel
%42 = OpCompositeExtract %int %tint_symbol 0
OpStore %tint_symbol_1 %42
%43 = OpCompositeExtract %uint %tint_symbol 1
OpStore %tint_symbol_2 %43
%44 = OpCompositeExtract %v4int %tint_symbol 2
OpStore %tint_symbol_3 %44
%45 = OpCompositeExtract %v4uint %tint_symbol 3
OpStore %tint_symbol_4 %45
%46 = OpCompositeExtract %v4float %tint_symbol 4
OpStore %tint_symbol_5 %46
%52 = OpTypeFunction %int %Interface
%vert_main_inner = OpFunction %Interface None %36
%39 = OpLabel
OpReturnValue %40
OpFunctionEnd
%vert_main = OpFunction %void None %41
%44 = OpLabel
%45 = OpFunctionCall %Interface %vert_main_inner
%46 = OpCompositeExtract %int %45 0
OpStore %i_1 %46
%47 = OpCompositeExtract %uint %45 1
OpStore %u_1 %47
%48 = OpCompositeExtract %v4int %45 2
OpStore %vi_1 %48
%49 = OpCompositeExtract %v4uint %45 3
OpStore %vu_1 %49
%50 = OpCompositeExtract %v4float %45 4
OpStore %pos_1 %50
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%vert_main = OpFunction %void None %47
%49 = OpLabel
OpStore %tint_pointsize %float_1
%51 = OpFunctionCall %void %tint_symbol_6 %52
OpReturn
%frag_main_inner = OpFunction %int None %52
%inputs = OpFunctionParameter %Interface
%55 = OpLabel
%56 = OpCompositeExtract %int %inputs 0
OpReturnValue %56
OpFunctionEnd
%tint_symbol_15 = OpFunction %void None %53
%tint_symbol_13 = OpFunctionParameter %int
%56 = OpLabel
OpStore %tint_symbol_14 %tint_symbol_13
OpReturn
OpFunctionEnd
%frag_main = OpFunction %void None %47
%frag_main = OpFunction %void None %41
%58 = OpLabel
%59 = OpLoad %int %tint_symbol_7
%60 = OpLoad %uint %tint_symbol_8
%61 = OpLoad %v4int %tint_symbol_9
%62 = OpLoad %v4uint %tint_symbol_10
%63 = OpLoad %v4float %tint_symbol_11
%64 = OpCompositeConstruct %Interface %59 %60 %61 %62 %63
%66 = OpCompositeExtract %int %64 0
%65 = OpFunctionCall %void %tint_symbol_15 %66
%60 = OpLoad %int %i_2
%61 = OpLoad %uint %u_2
%62 = OpLoad %v4int %vi_2
%63 = OpLoad %v4uint %vu_2
%64 = OpLoad %v4float %pos_2
%65 = OpCompositeConstruct %Interface %60 %61 %62 %63 %64
%59 = OpFunctionCall %int %frag_main_inner %65
OpStore %value %59
OpReturn
OpFunctionEnd

View File

@@ -1,22 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 38
; Bound: 37
; Schema: 0
OpCapability Shader
OpCapability SampleRateShading
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_5 %tint_symbol_6 %tint_symbol_7 %tint_symbol_8 %tint_symbol_9
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %tint_symbol_6 "tint_symbol_6"
OpName %tint_symbol_7 "tint_symbol_7"
OpName %tint_symbol_8 "tint_symbol_8"
OpName %tint_symbol_9 "tint_symbol_9"
OpEntryPoint Vertex %main "main" %pos_1 %none_1 %flat_1 %perspective_center_1 %perspective_centroid_1 %perspective_sample_1 %linear_center_1 %linear_centroid_1 %linear_sample_1 %vertex_point_size
OpName %pos_1 "pos_1"
OpName %none_1 "none_1"
OpName %flat_1 "flat_1"
OpName %perspective_center_1 "perspective_center_1"
OpName %perspective_centroid_1 "perspective_centroid_1"
OpName %perspective_sample_1 "perspective_sample_1"
OpName %linear_center_1 "linear_center_1"
OpName %linear_centroid_1 "linear_centroid_1"
OpName %linear_sample_1 "linear_sample_1"
OpName %vertex_point_size "vertex_point_size"
OpName %Out "Out"
OpMemberName %Out 0 "pos"
OpMemberName %Out 1 "none"
@@ -27,27 +27,26 @@
OpMemberName %Out 6 "linear_center"
OpMemberName %Out 7 "linear_centroid"
OpMemberName %Out 8 "linear_sample"
OpName %tint_symbol_10 "tint_symbol_10"
OpName %tint_symbol "tint_symbol"
OpName %main_inner "main_inner"
OpName %main "main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %tint_symbol_2 Location 0
OpDecorate %tint_symbol_3 Location 1
OpDecorate %tint_symbol_3 Flat
OpDecorate %tint_symbol_4 Location 2
OpDecorate %tint_symbol_5 Location 3
OpDecorate %tint_symbol_5 Centroid
OpDecorate %tint_symbol_6 Location 4
OpDecorate %tint_symbol_6 Sample
OpDecorate %tint_symbol_7 Location 5
OpDecorate %tint_symbol_7 NoPerspective
OpDecorate %tint_symbol_8 Location 6
OpDecorate %tint_symbol_8 NoPerspective
OpDecorate %tint_symbol_8 Centroid
OpDecorate %tint_symbol_9 Location 7
OpDecorate %tint_symbol_9 NoPerspective
OpDecorate %tint_symbol_9 Sample
OpDecorate %pos_1 BuiltIn Position
OpDecorate %none_1 Location 0
OpDecorate %flat_1 Location 1
OpDecorate %flat_1 Flat
OpDecorate %perspective_center_1 Location 2
OpDecorate %perspective_centroid_1 Location 3
OpDecorate %perspective_centroid_1 Centroid
OpDecorate %perspective_sample_1 Location 4
OpDecorate %perspective_sample_1 Sample
OpDecorate %linear_center_1 Location 5
OpDecorate %linear_center_1 NoPerspective
OpDecorate %linear_centroid_1 Location 6
OpDecorate %linear_centroid_1 NoPerspective
OpDecorate %linear_centroid_1 Centroid
OpDecorate %linear_sample_1 Location 7
OpDecorate %linear_sample_1 NoPerspective
OpDecorate %linear_sample_1 Sample
OpDecorate %vertex_point_size BuiltIn PointSize
OpMemberDecorate %Out 0 Offset 0
OpMemberDecorate %Out 1 Offset 16
OpMemberDecorate %Out 2 Offset 20
@@ -58,53 +57,52 @@
OpMemberDecorate %Out 7 Offset 40
OpMemberDecorate %Out 8 Offset 44
%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
%tint_symbol_2 = OpVariable %_ptr_Output_float Output %4
%tint_symbol_3 = OpVariable %_ptr_Output_float Output %4
%tint_symbol_4 = OpVariable %_ptr_Output_float Output %4
%tint_symbol_5 = OpVariable %_ptr_Output_float Output %4
%tint_symbol_6 = OpVariable %_ptr_Output_float Output %4
%tint_symbol_7 = OpVariable %_ptr_Output_float Output %4
%tint_symbol_8 = OpVariable %_ptr_Output_float Output %4
%tint_symbol_9 = OpVariable %_ptr_Output_float Output %4
%void = OpTypeVoid
%5 = OpConstantNull %v4float
%pos_1 = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%none_1 = OpVariable %_ptr_Output_float Output %8
%flat_1 = OpVariable %_ptr_Output_float Output %8
%perspective_center_1 = OpVariable %_ptr_Output_float Output %8
%perspective_centroid_1 = OpVariable %_ptr_Output_float Output %8
%perspective_sample_1 = OpVariable %_ptr_Output_float Output %8
%linear_center_1 = OpVariable %_ptr_Output_float Output %8
%linear_centroid_1 = OpVariable %_ptr_Output_float Output %8
%linear_sample_1 = OpVariable %_ptr_Output_float Output %8
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%Out = OpTypeStruct %v4float %float %float %float %float %float %float %float %float
%17 = OpTypeFunction %void %Out
%32 = OpTypeFunction %void
%17 = OpTypeFunction %Out
%21 = OpConstantNull %Out
%void = OpTypeVoid
%22 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%37 = OpConstantNull %Out
%tint_symbol_10 = OpFunction %void None %17
%tint_symbol = OpFunctionParameter %Out
%22 = OpLabel
%23 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %23
%24 = OpCompositeExtract %float %tint_symbol 1
OpStore %tint_symbol_2 %24
%25 = OpCompositeExtract %float %tint_symbol 2
OpStore %tint_symbol_3 %25
%26 = OpCompositeExtract %float %tint_symbol 3
OpStore %tint_symbol_4 %26
%27 = OpCompositeExtract %float %tint_symbol 4
OpStore %tint_symbol_5 %27
%28 = OpCompositeExtract %float %tint_symbol 5
OpStore %tint_symbol_6 %28
%29 = OpCompositeExtract %float %tint_symbol 6
OpStore %tint_symbol_7 %29
%30 = OpCompositeExtract %float %tint_symbol 7
OpStore %tint_symbol_8 %30
%31 = OpCompositeExtract %float %tint_symbol 8
OpStore %tint_symbol_9 %31
OpReturn
OpFunctionEnd
%main = OpFunction %void None %32
%34 = OpLabel
OpStore %tint_pointsize %float_1
%36 = OpFunctionCall %void %tint_symbol_10 %37
%main_inner = OpFunction %Out None %17
%20 = OpLabel
OpReturnValue %21
OpFunctionEnd
%main = OpFunction %void None %22
%25 = OpLabel
%26 = OpFunctionCall %Out %main_inner
%27 = OpCompositeExtract %v4float %26 0
OpStore %pos_1 %27
%28 = OpCompositeExtract %float %26 1
OpStore %none_1 %28
%29 = OpCompositeExtract %float %26 2
OpStore %flat_1 %29
%30 = OpCompositeExtract %float %26 3
OpStore %perspective_center_1 %30
%31 = OpCompositeExtract %float %26 4
OpStore %perspective_centroid_1 %31
%32 = OpCompositeExtract %float %26 5
OpStore %perspective_sample_1 %32
%33 = OpCompositeExtract %float %26 6
OpStore %linear_center_1 %33
%34 = OpCompositeExtract %float %26 7
OpStore %linear_centroid_1 %34
%35 = OpCompositeExtract %float %26 8
OpStore %linear_sample_1 %35
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd

View File

@@ -1,40 +1,38 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 19
; Bound: 18
; 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 %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpEntryPoint Vertex %main "main" %value %vertex_point_size
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %main_inner "main_inner"
OpName %main "main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %tint_symbol_1 Invariant
OpDecorate %value BuiltIn Position
OpDecorate %value Invariant
OpDecorate %vertex_point_size BuiltIn PointSize
%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
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%9 = OpTypeFunction %v4float
%void = OpTypeVoid
%9 = OpTypeFunction %void %v4float
%14 = OpTypeFunction %void
%12 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%tint_symbol_2 = OpFunction %void None %9
%tint_symbol = OpFunctionParameter %v4float
%13 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
%main = OpFunction %void None %14
%16 = OpLabel
OpStore %tint_pointsize %float_1
%18 = OpFunctionCall %void %tint_symbol_2 %8
%main_inner = OpFunction %v4float None %9
%11 = OpLabel
OpReturnValue %5
OpFunctionEnd
%main = OpFunction %void None %12
%15 = OpLabel
%16 = OpFunctionCall %v4float %main_inner
OpStore %value %16
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd

View File

@@ -1,46 +1,44 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 22
; Bound: 21
; 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"
OpEntryPoint Vertex %main "main" %pos_1 %vertex_point_size
OpName %pos_1 "pos_1"
OpName %vertex_point_size "vertex_point_size"
OpName %Out "Out"
OpMemberName %Out 0 "pos"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %main_inner "main_inner"
OpName %main "main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %tint_symbol_1 Invariant
OpDecorate %pos_1 BuiltIn Position
OpDecorate %pos_1 Invariant
OpDecorate %vertex_point_size BuiltIn PointSize
OpMemberDecorate %Out 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
%5 = OpConstantNull %v4float
%pos_1 = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%Out = OpTypeStruct %v4float
%9 = OpTypeFunction %void %Out
%16 = OpTypeFunction %void
%9 = OpTypeFunction %Out
%13 = OpConstantNull %Out
%void = OpTypeVoid
%14 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%21 = OpConstantNull %Out
%tint_symbol_2 = OpFunction %void None %9
%tint_symbol = OpFunctionParameter %Out
%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 %21
%main_inner = OpFunction %Out None %9
%12 = OpLabel
OpReturnValue %13
OpFunctionEnd
%main = OpFunction %void None %14
%17 = OpLabel
%18 = OpFunctionCall %Out %main_inner
%19 = OpCompositeExtract %v4float %18 0
OpStore %pos_1 %19
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd

View File

@@ -1,85 +1,92 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 41
; Bound: 45
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vert_main "vert_main" %tint_pointsize %tint_symbol_1 %tint_symbol_2 %tint_symbol_3
OpEntryPoint Fragment %frag_main "frag_main" %tint_symbol_5 %tint_symbol_6 %tint_symbol_7
OpEntryPoint Vertex %vert_main "vert_main" %col1_1 %col2_1 %pos_1 %vertex_point_size
OpEntryPoint Fragment %frag_main "frag_main" %col1_2 %col2_2 %pos_2
OpExecutionMode %frag_main OriginUpperLeft
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %tint_symbol_6 "tint_symbol_6"
OpName %tint_symbol_7 "tint_symbol_7"
OpName %col1_1 "col1_1"
OpName %col2_1 "col2_1"
OpName %pos_1 "pos_1"
OpName %vertex_point_size "vertex_point_size"
OpName %col1_2 "col1_2"
OpName %col2_2 "col2_2"
OpName %pos_2 "pos_2"
OpName %Interface "Interface"
OpMemberName %Interface 0 "col1"
OpMemberName %Interface 1 "col2"
OpMemberName %Interface 2 "pos"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %tint_symbol "tint_symbol"
OpName %vert_main_inner "vert_main_inner"
OpName %vert_main "vert_main"
OpName %frag_main_inner "frag_main_inner"
OpName %colors "colors"
OpName %frag_main "frag_main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 Location 1
OpDecorate %tint_symbol_2 Location 2
OpDecorate %tint_symbol_3 BuiltIn Position
OpDecorate %tint_symbol_5 Location 1
OpDecorate %tint_symbol_6 Location 2
OpDecorate %tint_symbol_7 BuiltIn FragCoord
OpDecorate %col1_1 Location 1
OpDecorate %col2_1 Location 2
OpDecorate %pos_1 BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
OpDecorate %col1_2 Location 1
OpDecorate %col2_2 Location 2
OpDecorate %pos_2 BuiltIn FragCoord
OpMemberDecorate %Interface 0 Offset 0
OpMemberDecorate %Interface 1 Offset 4
OpMemberDecorate %Interface 2 Offset 16
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%tint_symbol_1 = OpVariable %_ptr_Output_float Output %4
%tint_symbol_2 = OpVariable %_ptr_Output_float Output %4
%col1_1 = OpVariable %_ptr_Output_float Output %4
%col2_1 = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%10 = OpConstantNull %v4float
%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %10
%9 = OpConstantNull %v4float
%pos_1 = OpVariable %_ptr_Output_v4float Output %9
%vertex_point_size = OpVariable %_ptr_Output_float Output %4
%_ptr_Input_float = OpTypePointer Input %float
%tint_symbol_5 = OpVariable %_ptr_Input_float Input
%tint_symbol_6 = OpVariable %_ptr_Input_float Input
%col1_2 = OpVariable %_ptr_Input_float Input
%col2_2 = OpVariable %_ptr_Input_float Input
%_ptr_Input_v4float = OpTypePointer Input %v4float
%tint_symbol_7 = OpVariable %_ptr_Input_v4float Input
%void = OpTypeVoid
%pos_2 = OpVariable %_ptr_Input_v4float Input
%Interface = OpTypeStruct %float %float %v4float
%16 = OpTypeFunction %void %Interface
%25 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%16 = OpTypeFunction %Interface
%float_0_400000006 = OpConstant %float 0.400000006
%float_0_600000024 = OpConstant %float 0.600000024
%32 = OpConstantComposite %Interface %float_0_400000006 %float_0_600000024 %10
%tint_symbol_4 = OpFunction %void None %16
%tint_symbol = OpFunctionParameter %Interface
%21 = OpLabel
%22 = OpCompositeExtract %float %tint_symbol 0
OpStore %tint_symbol_1 %22
%23 = OpCompositeExtract %float %tint_symbol 1
OpStore %tint_symbol_2 %23
%24 = OpCompositeExtract %v4float %tint_symbol 2
OpStore %tint_symbol_3 %24
%22 = OpConstantComposite %Interface %float_0_400000006 %float_0_600000024 %9
%void = OpTypeVoid
%23 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%32 = OpTypeFunction %void %Interface
%vert_main_inner = OpFunction %Interface None %16
%19 = OpLabel
OpReturnValue %22
OpFunctionEnd
%vert_main = OpFunction %void None %23
%26 = OpLabel
%27 = OpFunctionCall %Interface %vert_main_inner
%28 = OpCompositeExtract %float %27 0
OpStore %col1_1 %28
%29 = OpCompositeExtract %float %27 1
OpStore %col2_1 %29
%30 = OpCompositeExtract %v4float %27 2
OpStore %pos_1 %30
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%vert_main = OpFunction %void None %25
%27 = OpLabel
OpStore %tint_pointsize %float_1
%29 = OpFunctionCall %void %tint_symbol_4 %32
%frag_main_inner = OpFunction %void None %32
%colors = OpFunctionParameter %Interface
%35 = OpLabel
%36 = OpCompositeExtract %float %colors 0
%37 = OpCompositeExtract %float %colors 1
OpReturn
OpFunctionEnd
%frag_main = OpFunction %void None %25
%34 = OpLabel
%35 = OpLoad %float %tint_symbol_5
%36 = OpLoad %float %tint_symbol_6
%37 = OpLoad %v4float %tint_symbol_7
%38 = OpCompositeConstruct %Interface %35 %36 %37
%39 = OpCompositeExtract %float %38 0
%40 = OpCompositeExtract %float %38 1
%frag_main = OpFunction %void None %23
%39 = OpLabel
%41 = OpLoad %float %col1_2
%42 = OpLoad %float %col2_2
%43 = OpLoad %v4float %pos_2
%44 = OpCompositeConstruct %Interface %41 %42 %43
%40 = OpFunctionCall %void %frag_main_inner %44
OpReturn
OpFunctionEnd

View File

@@ -1,96 +1,95 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 47
; Bound: 46
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vert_main1 "vert_main1" %tint_pointsize %tint_symbol_1 %tint_symbol_2
OpEntryPoint Vertex %vert_main2 "vert_main2" %tint_pointsize %tint_symbol_5 %tint_symbol_6
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %tint_symbol_6 "tint_symbol_6"
OpEntryPoint Vertex %vert_main1 "vert_main1" %pos_1 %loc0_1 %vertex_point_size
OpEntryPoint Vertex %vert_main2 "vert_main2" %pos_2 %loc0_2 %vertex_point_size_1
OpName %pos_1 "pos_1"
OpName %loc0_1 "loc0_1"
OpName %vertex_point_size "vertex_point_size"
OpName %pos_2 "pos_2"
OpName %loc0_2 "loc0_2"
OpName %vertex_point_size_1 "vertex_point_size_1"
OpName %VertexOutput "VertexOutput"
OpMemberName %VertexOutput 0 "pos"
OpMemberName %VertexOutput 1 "loc0"
OpName %foo "foo"
OpName %x "x"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol "tint_symbol"
OpName %vert_main1_inner "vert_main1_inner"
OpName %vert_main1 "vert_main1"
OpName %tint_symbol_7 "tint_symbol_7"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %vert_main2_inner "vert_main2_inner"
OpName %vert_main2 "vert_main2"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %tint_symbol_2 Location 0
OpDecorate %tint_symbol_2 Flat
OpDecorate %tint_symbol_5 BuiltIn Position
OpDecorate %tint_symbol_6 Location 0
OpDecorate %tint_symbol_6 Flat
OpDecorate %pos_1 BuiltIn Position
OpDecorate %loc0_1 Location 0
OpDecorate %loc0_1 Flat
OpDecorate %vertex_point_size BuiltIn PointSize
OpDecorate %pos_2 BuiltIn Position
OpDecorate %loc0_2 Location 0
OpDecorate %loc0_2 Flat
OpDecorate %vertex_point_size_1 BuiltIn PointSize
OpMemberDecorate %VertexOutput 0 Offset 0
OpMemberDecorate %VertexOutput 1 Offset 16
%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
%5 = OpConstantNull %v4float
%pos_1 = OpVariable %_ptr_Output_v4float Output %5
%int = OpTypeInt 32 1
%_ptr_Output_int = OpTypePointer Output %int
%12 = OpConstantNull %int
%tint_symbol_2 = OpVariable %_ptr_Output_int Output %12
%tint_symbol_5 = OpVariable %_ptr_Output_v4float Output %8
%tint_symbol_6 = OpVariable %_ptr_Output_int Output %12
%9 = OpConstantNull %int
%loc0_1 = OpVariable %_ptr_Output_int Output %9
%_ptr_Output_float = OpTypePointer Output %float
%12 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %12
%pos_2 = OpVariable %_ptr_Output_v4float Output %5
%loc0_2 = OpVariable %_ptr_Output_int Output %9
%vertex_point_size_1 = OpVariable %_ptr_Output_float Output %12
%VertexOutput = OpTypeStruct %v4float %int
%15 = OpTypeFunction %VertexOutput %float
%16 = OpTypeFunction %VertexOutput %float
%float_1 = OpConstant %float 1
%int_42 = OpConstant %int 42
%void = OpTypeVoid
%24 = OpTypeFunction %void %VertexOutput
%31 = OpTypeFunction %void
%25 = OpTypeFunction %VertexOutput
%float_0_5 = OpConstant %float 0.5
%void = OpTypeVoid
%30 = OpTypeFunction %void
%float_0_25 = OpConstant %float 0.25
%foo = OpFunction %VertexOutput None %15
%foo = OpFunction %VertexOutput None %16
%x = OpFunctionParameter %float
%19 = OpLabel
%21 = OpCompositeConstruct %v4float %x %x %x %float_1
%23 = OpCompositeConstruct %VertexOutput %21 %int_42
OpReturnValue %23
%20 = OpLabel
%22 = OpCompositeConstruct %v4float %x %x %x %float_1
%24 = OpCompositeConstruct %VertexOutput %22 %int_42
OpReturnValue %24
OpFunctionEnd
%tint_symbol_3 = OpFunction %void None %24
%tint_symbol = OpFunctionParameter %VertexOutput
%28 = OpLabel
%29 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %29
%30 = OpCompositeExtract %int %tint_symbol 1
OpStore %tint_symbol_2 %30
OpReturn
%vert_main1_inner = OpFunction %VertexOutput None %25
%27 = OpLabel
%28 = OpFunctionCall %VertexOutput %foo %float_0_5
OpReturnValue %28
OpFunctionEnd
%vert_main1 = OpFunction %void None %31
%vert_main1 = OpFunction %void None %30
%33 = OpLabel
OpStore %tint_pointsize %float_1
%35 = OpFunctionCall %VertexOutput %foo %float_0_5
%34 = OpFunctionCall %void %tint_symbol_3 %35
%34 = OpFunctionCall %VertexOutput %vert_main1_inner
%35 = OpCompositeExtract %v4float %34 0
OpStore %pos_1 %35
%36 = OpCompositeExtract %int %34 1
OpStore %loc0_1 %36
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%tint_symbol_7 = OpFunction %void None %24
%tint_symbol_4 = OpFunctionParameter %VertexOutput
%39 = OpLabel
%40 = OpCompositeExtract %v4float %tint_symbol_4 0
OpStore %tint_symbol_5 %40
%41 = OpCompositeExtract %int %tint_symbol_4 1
OpStore %tint_symbol_6 %41
OpReturn
OpFunctionEnd
%vert_main2 = OpFunction %void None %31
%43 = OpLabel
OpStore %tint_pointsize %float_1
%45 = OpFunctionCall %VertexOutput %foo %float_0_25
%44 = OpFunctionCall %void %tint_symbol_7 %45
%vert_main2_inner = OpFunction %VertexOutput None %25
%38 = OpLabel
%39 = OpFunctionCall %VertexOutput %foo %float_0_25
OpReturnValue %39
OpFunctionEnd
%vert_main2 = OpFunction %void None %30
%42 = OpLabel
%43 = OpFunctionCall %VertexOutput %vert_main2_inner
%44 = OpCompositeExtract %v4float %43 0
OpStore %pos_2 %44
%45 = OpCompositeExtract %int %43 1
OpStore %loc0_2 %45
OpStore %vertex_point_size_1 %float_1
OpReturn
OpFunctionEnd

View File

@@ -1,21 +1,27 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 24
; Bound: 29
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %frag_main "frag_main" %tint_symbol %tint_symbol_1 %tint_symbol_2
OpEntryPoint Fragment %frag_main "frag_main" %f_1 %u_1 %v_1
OpExecutionMode %frag_main OriginUpperLeft
OpName %f_1 "f_1"
OpName %u_1 "u_1"
OpName %v_1 "v_1"
OpName %S "S"
OpMemberName %S 0 "f"
OpMemberName %S 1 "u"
OpMemberName %S 2 "v"
OpName %output "output"
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %frag_main_inner "frag_main_inner"
OpName %input "input"
OpName %frag_main "frag_main"
OpDecorate %f_1 Location 0
OpDecorate %u_1 Location 1
OpDecorate %u_1 Flat
OpDecorate %v_1 BuiltIn FragCoord
OpDecorate %S Block
OpMemberDecorate %S 0 Offset 0
OpMemberDecorate %S 1 Offset 4
@@ -23,33 +29,36 @@
OpDecorate %output NonReadable
OpDecorate %output DescriptorSet 0
OpDecorate %output Binding 0
OpDecorate %tint_symbol Location 0
OpDecorate %tint_symbol_1 Location 1
OpDecorate %tint_symbol_1 Flat
OpDecorate %tint_symbol_2 BuiltIn FragCoord
%float = OpTypeFloat 32
%_ptr_Input_float = OpTypePointer Input %float
%f_1 = OpVariable %_ptr_Input_float Input
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%u_1 = OpVariable %_ptr_Input_uint Input
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%v_1 = OpVariable %_ptr_Input_v4float Input
%S = OpTypeStruct %float %uint %v4float
%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
%output = OpVariable %_ptr_StorageBuffer_S StorageBuffer
%_ptr_Input_float = OpTypePointer Input %float
%tint_symbol = OpVariable %_ptr_Input_float Input
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
%_ptr_Input_v4float = OpTypePointer Input %v4float
%tint_symbol_2 = OpVariable %_ptr_Input_v4float Input
%void = OpTypeVoid
%13 = OpTypeFunction %void
%frag_main = OpFunction %void None %13
%16 = OpLabel
%17 = OpLoad %float %tint_symbol
%18 = OpLoad %uint %tint_symbol_1
%19 = OpLoad %v4float %tint_symbol_2
%20 = OpCompositeConstruct %S %17 %18 %19
%21 = OpCompositeExtract %float %20 0
%22 = OpCompositeExtract %uint %20 1
%23 = OpCompositeExtract %v4float %20 2
OpStore %output %20
%13 = OpTypeFunction %void %S
%21 = OpTypeFunction %void
%frag_main_inner = OpFunction %void None %13
%input = OpFunctionParameter %S
%17 = OpLabel
%18 = OpCompositeExtract %float %input 0
%19 = OpCompositeExtract %uint %input 1
%20 = OpCompositeExtract %v4float %input 2
OpStore %output %input
OpReturn
OpFunctionEnd
%frag_main = OpFunction %void None %21
%23 = OpLabel
%25 = OpLoad %float %f_1
%26 = OpLoad %uint %u_1
%27 = OpLoad %v4float %v_1
%28 = OpCompositeConstruct %S %25 %26 %27
%24 = OpFunctionCall %void %frag_main_inner %28
OpReturn
OpFunctionEnd

View File

@@ -1,50 +1,52 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 26
; Bound: 27
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_3
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %tint_symbol_2 "tint_symbol_2"
OpEntryPoint Vertex %main "main" %vertex_index_1 %instance_index_1 %value %vertex_point_size
OpName %vertex_index_1 "vertex_index_1"
OpName %instance_index_1 "instance_index_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %main_inner "main_inner"
OpName %vertex_index "vertex_index"
OpName %instance_index "instance_index"
OpName %main "main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol BuiltIn VertexIndex
OpDecorate %tint_symbol_1 BuiltIn InstanceIndex
OpDecorate %tint_symbol_3 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
OpDecorate %vertex_index_1 BuiltIn VertexIndex
OpDecorate %instance_index_1 BuiltIn InstanceIndex
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
%vertex_index_1 = OpVariable %_ptr_Input_uint Input
%instance_index_1 = OpVariable %_ptr_Input_uint Input
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%12 = OpConstantNull %v4float
%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %12
%9 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %9
%_ptr_Output_float = OpTypePointer Output %float
%12 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %12
%13 = OpTypeFunction %v4float %uint %uint
%void = OpTypeVoid
%13 = OpTypeFunction %void %v4float
%18 = OpTypeFunction %void
%19 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%tint_symbol_4 = OpFunction %void None %13
%tint_symbol_2 = OpFunctionParameter %v4float
%main_inner = OpFunction %v4float None %13
%vertex_index = OpFunctionParameter %uint
%instance_index = OpFunctionParameter %uint
%17 = OpLabel
OpStore %tint_symbol_3 %tint_symbol_2
OpReturn
OpFunctionEnd
%main = OpFunction %void None %18
%20 = OpLabel
OpStore %tint_pointsize %float_1
%22 = OpLoad %uint %tint_symbol
%23 = OpLoad %uint %tint_symbol_1
%24 = OpIAdd %uint %22 %23
%25 = OpFunctionCall %void %tint_symbol_4 %12
%18 = OpIAdd %uint %vertex_index %instance_index
OpReturnValue %9
OpFunctionEnd
%main = OpFunction %void None %19
%22 = OpLabel
%24 = OpLoad %uint %vertex_index_1
%25 = OpLoad %uint %instance_index_1
%23 = OpFunctionCall %v4float %main_inner %24 %25
OpStore %value %23
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd

View File

@@ -5,55 +5,55 @@
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_4
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %main "main"
OpEntryPoint Vertex %main "main" %vertex_index_1 %instance_index_1 %value %vertex_point_size
OpName %vertex_index_1 "vertex_index_1"
OpName %instance_index_1 "instance_index_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %VertexInputs "VertexInputs"
OpMemberName %VertexInputs 0 "vertex_index"
OpMemberName %VertexInputs 1 "instance_index"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol BuiltIn VertexIndex
OpDecorate %tint_symbol_1 BuiltIn InstanceIndex
OpDecorate %tint_symbol_4 BuiltIn Position
OpName %main_inner "main_inner"
OpName %inputs "inputs"
OpName %main "main"
OpDecorate %vertex_index_1 BuiltIn VertexIndex
OpDecorate %instance_index_1 BuiltIn InstanceIndex
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
OpMemberDecorate %VertexInputs 0 Offset 0
OpMemberDecorate %VertexInputs 1 Offset 4
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
%vertex_index_1 = OpVariable %_ptr_Input_uint Input
%instance_index_1 = OpVariable %_ptr_Input_uint Input
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%12 = OpConstantNull %v4float
%tint_symbol_4 = OpVariable %_ptr_Output_v4float Output %12
%void = OpTypeVoid
%13 = OpTypeFunction %void %v4float
%18 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%9 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %9
%_ptr_Output_float = OpTypePointer Output %float
%12 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %12
%VertexInputs = OpTypeStruct %uint %uint
%tint_symbol_5 = OpFunction %void None %13
%tint_symbol_3 = OpFunctionParameter %v4float
%13 = OpTypeFunction %v4float %VertexInputs
%void = OpTypeVoid
%21 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%main_inner = OpFunction %v4float None %13
%inputs = OpFunctionParameter %VertexInputs
%17 = OpLabel
OpStore %tint_symbol_4 %tint_symbol_3
OpReturn
OpFunctionEnd
%main = OpFunction %void None %18
%20 = OpLabel
OpStore %tint_pointsize %float_1
%23 = OpLoad %uint %tint_symbol
%24 = OpLoad %uint %tint_symbol_1
%25 = OpCompositeConstruct %VertexInputs %23 %24
%26 = OpCompositeExtract %uint %25 0
%27 = OpCompositeExtract %uint %25 1
%28 = OpIAdd %uint %26 %27
%29 = OpFunctionCall %void %tint_symbol_5 %12
%18 = OpCompositeExtract %uint %inputs 0
%19 = OpCompositeExtract %uint %inputs 1
%20 = OpIAdd %uint %18 %19
OpReturnValue %9
OpFunctionEnd
%main = OpFunction %void None %21
%24 = OpLabel
%26 = OpLoad %uint %vertex_index_1
%27 = OpLoad %uint %instance_index_1
%28 = OpCompositeConstruct %VertexInputs %26 %27
%25 = OpFunctionCall %v4float %main_inner %28
OpStore %value %25
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd

View File

@@ -1,61 +1,67 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 33
; Bound: 36
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_5
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %tint_symbol_6 "tint_symbol_6"
OpName %tint_symbol_4 "tint_symbol_4"
OpEntryPoint Vertex %main "main" %loc0_1 %loc1_1 %loc2_1 %loc3_1 %value %vertex_point_size
OpName %loc0_1 "loc0_1"
OpName %loc1_1 "loc1_1"
OpName %loc2_1 "loc2_1"
OpName %loc3_1 "loc3_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %main_inner "main_inner"
OpName %loc0 "loc0"
OpName %loc1 "loc1"
OpName %loc2 "loc2"
OpName %loc3 "loc3"
OpName %main "main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol Location 0
OpDecorate %tint_symbol_1 Location 1
OpDecorate %tint_symbol_2 Location 2
OpDecorate %tint_symbol_3 Location 3
OpDecorate %tint_symbol_5 BuiltIn Position
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
OpDecorate %loc0_1 Location 0
OpDecorate %loc1_1 Location 1
OpDecorate %loc2_1 Location 2
OpDecorate %loc3_1 Location 3
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%int = OpTypeInt 32 1
%_ptr_Input_int = OpTypePointer Input %int
%tint_symbol = OpVariable %_ptr_Input_int Input
%loc0_1 = OpVariable %_ptr_Input_int Input
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
%loc1_1 = OpVariable %_ptr_Input_uint Input
%float = OpTypeFloat 32
%_ptr_Input_float = OpTypePointer Input %float
%tint_symbol_2 = OpVariable %_ptr_Input_float Input
%loc2_1 = OpVariable %_ptr_Input_float Input
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%tint_symbol_3 = OpVariable %_ptr_Input_v4float Input
%loc3_1 = OpVariable %_ptr_Input_v4float Input
%_ptr_Output_v4float = OpTypePointer Output %v4float
%18 = OpConstantNull %v4float
%tint_symbol_5 = OpVariable %_ptr_Output_v4float Output %18
%15 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %15
%_ptr_Output_float = OpTypePointer Output %float
%18 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %18
%19 = OpTypeFunction %v4float %int %uint %float %v4float
%void = OpTypeVoid
%19 = OpTypeFunction %void %v4float
%24 = OpTypeFunction %void
%26 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%tint_symbol_6 = OpFunction %void None %19
%tint_symbol_4 = OpFunctionParameter %v4float
%23 = OpLabel
OpStore %tint_symbol_5 %tint_symbol_4
OpReturn
OpFunctionEnd
%main = OpFunction %void None %24
%26 = OpLabel
OpStore %tint_pointsize %float_1
%28 = OpLoad %int %tint_symbol
%29 = OpLoad %uint %tint_symbol_1
%30 = OpLoad %float %tint_symbol_2
%31 = OpLoad %v4float %tint_symbol_3
%32 = OpFunctionCall %void %tint_symbol_6 %18
%main_inner = OpFunction %v4float None %19
%loc0 = OpFunctionParameter %int
%loc1 = OpFunctionParameter %uint
%loc2 = OpFunctionParameter %float
%loc3 = OpFunctionParameter %v4float
%25 = OpLabel
OpReturnValue %15
OpFunctionEnd
%main = OpFunction %void None %26
%29 = OpLabel
%31 = OpLoad %int %loc0_1
%32 = OpLoad %uint %loc1_1
%33 = OpLoad %float %loc2_1
%34 = OpLoad %v4float %loc3_1
%30 = OpFunctionCall %v4float %main_inner %31 %32 %33 %34
OpStore %value %30
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd

View File

@@ -5,72 +5,72 @@
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_6
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_6 "tint_symbol_6"
OpName %tint_symbol_7 "tint_symbol_7"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %main "main"
OpEntryPoint Vertex %main "main" %loc0_1 %loc1_1 %loc2_1 %loc3_1 %value %vertex_point_size
OpName %loc0_1 "loc0_1"
OpName %loc1_1 "loc1_1"
OpName %loc2_1 "loc2_1"
OpName %loc3_1 "loc3_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %VertexInputs "VertexInputs"
OpMemberName %VertexInputs 0 "loc0"
OpMemberName %VertexInputs 1 "loc1"
OpMemberName %VertexInputs 2 "loc2"
OpMemberName %VertexInputs 3 "loc3"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol Location 0
OpDecorate %tint_symbol_1 Location 1
OpDecorate %tint_symbol_2 Location 2
OpDecorate %tint_symbol_3 Location 3
OpDecorate %tint_symbol_6 BuiltIn Position
OpName %main_inner "main_inner"
OpName %inputs "inputs"
OpName %main "main"
OpDecorate %loc0_1 Location 0
OpDecorate %loc1_1 Location 1
OpDecorate %loc2_1 Location 2
OpDecorate %loc3_1 Location 3
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
OpMemberDecorate %VertexInputs 0 Offset 0
OpMemberDecorate %VertexInputs 1 Offset 4
OpMemberDecorate %VertexInputs 2 Offset 8
OpMemberDecorate %VertexInputs 3 Offset 16
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%int = OpTypeInt 32 1
%_ptr_Input_int = OpTypePointer Input %int
%tint_symbol = OpVariable %_ptr_Input_int Input
%loc0_1 = OpVariable %_ptr_Input_int Input
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
%loc1_1 = OpVariable %_ptr_Input_uint Input
%float = OpTypeFloat 32
%_ptr_Input_float = OpTypePointer Input %float
%tint_symbol_2 = OpVariable %_ptr_Input_float Input
%loc2_1 = OpVariable %_ptr_Input_float Input
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%tint_symbol_3 = OpVariable %_ptr_Input_v4float Input
%loc3_1 = OpVariable %_ptr_Input_v4float Input
%_ptr_Output_v4float = OpTypePointer Output %v4float
%18 = OpConstantNull %v4float
%tint_symbol_6 = OpVariable %_ptr_Output_v4float Output %18
%void = OpTypeVoid
%19 = OpTypeFunction %void %v4float
%24 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%15 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %15
%_ptr_Output_float = OpTypePointer Output %float
%18 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %18
%VertexInputs = OpTypeStruct %int %uint %float %v4float
%tint_symbol_7 = OpFunction %void None %19
%tint_symbol_5 = OpFunctionParameter %v4float
%19 = OpTypeFunction %v4float %VertexInputs
%void = OpTypeVoid
%28 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%main_inner = OpFunction %v4float None %19
%inputs = OpFunctionParameter %VertexInputs
%23 = OpLabel
OpStore %tint_symbol_6 %tint_symbol_5
OpReturn
OpFunctionEnd
%main = OpFunction %void None %24
%26 = OpLabel
OpStore %tint_pointsize %float_1
%29 = OpLoad %int %tint_symbol
%30 = OpLoad %uint %tint_symbol_1
%31 = OpLoad %float %tint_symbol_2
%32 = OpLoad %v4float %tint_symbol_3
%33 = OpCompositeConstruct %VertexInputs %29 %30 %31 %32
%34 = OpCompositeExtract %int %33 0
%35 = OpCompositeExtract %uint %33 1
%36 = OpCompositeExtract %float %33 2
%37 = OpCompositeExtract %v4float %33 3
%38 = OpFunctionCall %void %tint_symbol_7 %18
%24 = OpCompositeExtract %int %inputs 0
%25 = OpCompositeExtract %uint %inputs 1
%26 = OpCompositeExtract %float %inputs 2
%27 = OpCompositeExtract %v4float %inputs 3
OpReturnValue %15
OpFunctionEnd
%main = OpFunction %void None %28
%31 = OpLabel
%33 = OpLoad %int %loc0_1
%34 = OpLoad %uint %loc1_1
%35 = OpLoad %float %loc2_1
%36 = OpLoad %v4float %loc3_1
%37 = OpCompositeConstruct %VertexInputs %33 %34 %35 %36
%32 = OpFunctionCall %v4float %main_inner %37
OpStore %value %32
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd

View File

@@ -1,88 +1,94 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 46
; Bound: 49
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_5 %tint_symbol_6 %tint_symbol_4 %tint_symbol_3 %tint_symbol_9
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %tint_symbol_5 "tint_symbol_5"
OpName %tint_symbol_6 "tint_symbol_6"
OpName %tint_symbol_9 "tint_symbol_9"
OpName %tint_symbol_10 "tint_symbol_10"
OpName %tint_symbol_8 "tint_symbol_8"
OpName %main "main"
OpEntryPoint Vertex %main "main" %vertex_index_1 %loc0_1 %loc1_1 %instance_index_1 %loc2_1 %loc3_1 %value %vertex_point_size
OpName %vertex_index_1 "vertex_index_1"
OpName %loc0_1 "loc0_1"
OpName %loc1_1 "loc1_1"
OpName %instance_index_1 "instance_index_1"
OpName %loc2_1 "loc2_1"
OpName %loc3_1 "loc3_1"
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %VertexInputs0 "VertexInputs0"
OpMemberName %VertexInputs0 0 "vertex_index"
OpMemberName %VertexInputs0 1 "loc0"
OpName %VertexInputs1 "VertexInputs1"
OpMemberName %VertexInputs1 0 "loc2"
OpMemberName %VertexInputs1 1 "loc3"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol BuiltIn VertexIndex
OpDecorate %tint_symbol_1 Location 0
OpDecorate %tint_symbol_3 Location 1
OpDecorate %tint_symbol_4 BuiltIn InstanceIndex
OpDecorate %tint_symbol_5 Location 2
OpDecorate %tint_symbol_6 Location 3
OpDecorate %tint_symbol_9 BuiltIn Position
OpName %main_inner "main_inner"
OpName %inputs0 "inputs0"
OpName %loc1 "loc1"
OpName %instance_index "instance_index"
OpName %inputs1 "inputs1"
OpName %main "main"
OpDecorate %vertex_index_1 BuiltIn VertexIndex
OpDecorate %loc0_1 Location 0
OpDecorate %loc1_1 Location 1
OpDecorate %instance_index_1 BuiltIn InstanceIndex
OpDecorate %loc2_1 Location 2
OpDecorate %loc3_1 Location 3
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
OpMemberDecorate %VertexInputs0 0 Offset 0
OpMemberDecorate %VertexInputs0 1 Offset 4
OpMemberDecorate %VertexInputs1 0 Offset 0
OpMemberDecorate %VertexInputs1 1 Offset 16
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%uint = OpTypeInt 32 0
%_ptr_Input_uint = OpTypePointer Input %uint
%tint_symbol = OpVariable %_ptr_Input_uint Input
%vertex_index_1 = OpVariable %_ptr_Input_uint Input
%int = OpTypeInt 32 1
%_ptr_Input_int = OpTypePointer Input %int
%tint_symbol_1 = OpVariable %_ptr_Input_int Input
%tint_symbol_3 = OpVariable %_ptr_Input_uint Input
%tint_symbol_4 = OpVariable %_ptr_Input_uint Input
%loc0_1 = OpVariable %_ptr_Input_int Input
%loc1_1 = OpVariable %_ptr_Input_uint Input
%instance_index_1 = OpVariable %_ptr_Input_uint Input
%float = OpTypeFloat 32
%_ptr_Input_float = OpTypePointer Input %float
%tint_symbol_5 = OpVariable %_ptr_Input_float Input
%loc2_1 = OpVariable %_ptr_Input_float Input
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%tint_symbol_6 = OpVariable %_ptr_Input_v4float Input
%loc3_1 = OpVariable %_ptr_Input_v4float Input
%_ptr_Output_v4float = OpTypePointer Output %v4float
%20 = OpConstantNull %v4float
%tint_symbol_9 = OpVariable %_ptr_Output_v4float Output %20
%void = OpTypeVoid
%21 = OpTypeFunction %void %v4float
%26 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%17 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %17
%_ptr_Output_float = OpTypePointer Output %float
%20 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %20
%VertexInputs0 = OpTypeStruct %uint %int
%VertexInputs1 = OpTypeStruct %float %v4float
%tint_symbol_10 = OpFunction %void None %21
%tint_symbol_8 = OpFunctionParameter %v4float
%25 = OpLabel
OpStore %tint_symbol_9 %tint_symbol_8
OpReturn
OpFunctionEnd
%main = OpFunction %void None %26
%28 = OpLabel
OpStore %tint_pointsize %float_1
%31 = OpLoad %uint %tint_symbol
%32 = OpLoad %int %tint_symbol_1
%33 = OpCompositeConstruct %VertexInputs0 %31 %32
%35 = OpLoad %float %tint_symbol_5
%36 = OpLoad %v4float %tint_symbol_6
%37 = OpCompositeConstruct %VertexInputs1 %35 %36
%38 = OpCompositeExtract %uint %33 0
%39 = OpLoad %uint %tint_symbol_4
%40 = OpIAdd %uint %38 %39
%41 = OpCompositeExtract %int %33 1
%42 = OpLoad %uint %tint_symbol_3
%43 = OpCompositeExtract %float %37 0
%44 = OpCompositeExtract %v4float %37 1
%45 = OpFunctionCall %void %tint_symbol_10 %20
%21 = OpTypeFunction %v4float %VertexInputs0 %uint %uint %VertexInputs1
%void = OpTypeVoid
%35 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%main_inner = OpFunction %v4float None %21
%inputs0 = OpFunctionParameter %VertexInputs0
%loc1 = OpFunctionParameter %uint
%instance_index = OpFunctionParameter %uint
%inputs1 = OpFunctionParameter %VertexInputs1
%29 = OpLabel
%30 = OpCompositeExtract %uint %inputs0 0
%31 = OpIAdd %uint %30 %instance_index
%32 = OpCompositeExtract %int %inputs0 1
%33 = OpCompositeExtract %float %inputs1 0
%34 = OpCompositeExtract %v4float %inputs1 1
OpReturnValue %17
OpFunctionEnd
%main = OpFunction %void None %35
%38 = OpLabel
%40 = OpLoad %uint %vertex_index_1
%41 = OpLoad %int %loc0_1
%42 = OpCompositeConstruct %VertexInputs0 %40 %41
%43 = OpLoad %uint %loc1_1
%44 = OpLoad %uint %instance_index_1
%45 = OpLoad %float %loc2_1
%46 = OpLoad %v4float %loc3_1
%47 = OpCompositeConstruct %VertexInputs1 %45 %46
%39 = OpFunctionCall %v4float %main_inner %42 %43 %44 %47
OpStore %value %39
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd

View File

@@ -1,43 +1,41 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 23
; Bound: 22
; 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 %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpEntryPoint Vertex %main "main" %value %vertex_point_size
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %main_inner "main_inner"
OpName %main "main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %value BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
%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
%9 = OpTypeFunction %void %v4float
%14 = OpTypeFunction %void
%5 = OpConstantNull %v4float
%value = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%9 = OpTypeFunction %v4float
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%22 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%tint_symbol_2 = OpFunction %void None %9
%tint_symbol = OpFunctionParameter %v4float
%13 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
%main = OpFunction %void None %14
%16 = OpLabel
OpStore %tint_pointsize %float_1
%18 = OpFunctionCall %void %tint_symbol_2 %22
%16 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%void = OpTypeVoid
%17 = OpTypeFunction %void
%main_inner = OpFunction %v4float None %9
%11 = OpLabel
OpReturnValue %16
OpFunctionEnd
%main = OpFunction %void None %17
%20 = OpLabel
%21 = OpFunctionCall %v4float %main_inner
OpStore %value %21
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd

View File

@@ -1,49 +1,47 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 26
; Bound: 25
; 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"
OpEntryPoint Vertex %main "main" %position_1 %vertex_point_size
OpName %position_1 "position_1"
OpName %vertex_point_size "vertex_point_size"
OpName %VertexOutputs "VertexOutputs"
OpMemberName %VertexOutputs 0 "position"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %main_inner "main_inner"
OpName %main "main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
OpDecorate %position_1 BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
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
%5 = OpConstantNull %v4float
%position_1 = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Output_float = OpTypePointer Output %float
%8 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
%VertexOutputs = OpTypeStruct %v4float
%9 = OpTypeFunction %void %VertexOutputs
%16 = OpTypeFunction %void
%9 = OpTypeFunction %VertexOutputs
%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
%17 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%18 = OpConstantComposite %VertexOutputs %17
%void = OpTypeVoid
%19 = OpTypeFunction %void
%main_inner = OpFunction %VertexOutputs None %9
%12 = OpLabel
OpReturnValue %18
OpFunctionEnd
%main = OpFunction %void None %19
%22 = OpLabel
%23 = OpFunctionCall %VertexOutputs %main_inner
%24 = OpCompositeExtract %v4float %23 0
OpStore %position_1 %24
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd

View File

@@ -1,87 +1,85 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 42
; Bound: 41
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_5
OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_4 "tint_symbol_4"
OpName %tint_symbol_5 "tint_symbol_5"
OpEntryPoint Vertex %main "main" %loc0_1 %loc1_1 %loc2_1 %loc3_1 %position_1 %vertex_point_size
OpName %loc0_1 "loc0_1"
OpName %loc1_1 "loc1_1"
OpName %loc2_1 "loc2_1"
OpName %loc3_1 "loc3_1"
OpName %position_1 "position_1"
OpName %vertex_point_size "vertex_point_size"
OpName %VertexOutputs "VertexOutputs"
OpMemberName %VertexOutputs 0 "loc0"
OpMemberName %VertexOutputs 1 "loc1"
OpMemberName %VertexOutputs 2 "loc2"
OpMemberName %VertexOutputs 3 "loc3"
OpMemberName %VertexOutputs 4 "position"
OpName %tint_symbol_6 "tint_symbol_6"
OpName %tint_symbol "tint_symbol"
OpName %main_inner "main_inner"
OpName %main "main"
OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 Location 0
OpDecorate %tint_symbol_1 Flat
OpDecorate %tint_symbol_2 Location 1
OpDecorate %tint_symbol_2 Flat
OpDecorate %tint_symbol_3 Location 2
OpDecorate %tint_symbol_4 Location 3
OpDecorate %tint_symbol_5 BuiltIn Position
OpDecorate %loc0_1 Location 0
OpDecorate %loc0_1 Flat
OpDecorate %loc1_1 Location 1
OpDecorate %loc1_1 Flat
OpDecorate %loc2_1 Location 2
OpDecorate %loc3_1 Location 3
OpDecorate %position_1 BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
OpMemberDecorate %VertexOutputs 0 Offset 0
OpMemberDecorate %VertexOutputs 1 Offset 4
OpMemberDecorate %VertexOutputs 2 Offset 8
OpMemberDecorate %VertexOutputs 3 Offset 16
OpMemberDecorate %VertexOutputs 4 Offset 32
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4
%int = OpTypeInt 32 1
%_ptr_Output_int = OpTypePointer Output %int
%8 = OpConstantNull %int
%tint_symbol_1 = OpVariable %_ptr_Output_int Output %8
%4 = OpConstantNull %int
%loc0_1 = OpVariable %_ptr_Output_int Output %4
%uint = OpTypeInt 32 0
%_ptr_Output_uint = OpTypePointer Output %uint
%12 = OpConstantNull %uint
%tint_symbol_2 = OpVariable %_ptr_Output_uint Output %12
%tint_symbol_3 = OpVariable %_ptr_Output_float Output %4
%8 = OpConstantNull %uint
%loc1_1 = OpVariable %_ptr_Output_uint Output %8
%float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float
%12 = OpConstantNull %float
%loc2_1 = OpVariable %_ptr_Output_float Output %12
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%17 = OpConstantNull %v4float
%tint_symbol_4 = OpVariable %_ptr_Output_v4float Output %17
%tint_symbol_5 = OpVariable %_ptr_Output_v4float Output %17
%void = OpTypeVoid
%16 = OpConstantNull %v4float
%loc3_1 = OpVariable %_ptr_Output_v4float Output %16
%position_1 = OpVariable %_ptr_Output_v4float Output %16
%vertex_point_size = OpVariable %_ptr_Output_float Output %12
%VertexOutputs = OpTypeStruct %int %uint %float %v4float %v4float
%19 = OpTypeFunction %void %VertexOutputs
%30 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%19 = OpTypeFunction %VertexOutputs
%int_1 = OpConstant %int 1
%uint_1 = OpConstant %uint 1
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%40 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%41 = OpConstantComposite %VertexOutputs %int_1 %uint_1 %float_1 %40 %17
%tint_symbol_6 = OpFunction %void None %19
%tint_symbol = OpFunctionParameter %VertexOutputs
%24 = OpLabel
%25 = OpCompositeExtract %int %tint_symbol 0
OpStore %tint_symbol_1 %25
%26 = OpCompositeExtract %uint %tint_symbol 1
OpStore %tint_symbol_2 %26
%27 = OpCompositeExtract %float %tint_symbol 2
OpStore %tint_symbol_3 %27
%28 = OpCompositeExtract %v4float %tint_symbol 3
OpStore %tint_symbol_4 %28
%29 = OpCompositeExtract %v4float %tint_symbol 4
OpStore %tint_symbol_5 %29
OpReturn
OpFunctionEnd
%main = OpFunction %void None %30
%32 = OpLabel
OpStore %tint_pointsize %float_1
%34 = OpFunctionCall %void %tint_symbol_6 %41
%29 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%30 = OpConstantComposite %VertexOutputs %int_1 %uint_1 %float_1 %29 %16
%void = OpTypeVoid
%31 = OpTypeFunction %void
%main_inner = OpFunction %VertexOutputs None %19
%22 = OpLabel
OpReturnValue %30
OpFunctionEnd
%main = OpFunction %void None %31
%34 = OpLabel
%35 = OpFunctionCall %VertexOutputs %main_inner
%36 = OpCompositeExtract %int %35 0
OpStore %loc0_1 %36
%37 = OpCompositeExtract %uint %35 1
OpStore %loc1_1 %37
%38 = OpCompositeExtract %float %35 2
OpStore %loc2_1 %38
%39 = OpCompositeExtract %v4float %35 3
OpStore %loc3_1 %39
%40 = OpCompositeExtract %v4float %35 4
OpStore %position_1 %40
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd