tint: Use MergeReturn transform in SPIR-V backend
Bug: tint:1627 Change-Id: I5a3639543b076e6f666bfcca8c61b22db7f2630e Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/107363 Commit-Queue: James Price <jrprice@google.com> Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Ben Clayton <bclayton@google.com>
This commit is contained in:
parent
a3343d92d3
commit
3e1bc0a6da
|
@ -25,6 +25,7 @@
|
||||||
#include "src/tint/transform/expand_compound_assignment.h"
|
#include "src/tint/transform/expand_compound_assignment.h"
|
||||||
#include "src/tint/transform/for_loop_to_loop.h"
|
#include "src/tint/transform/for_loop_to_loop.h"
|
||||||
#include "src/tint/transform/manager.h"
|
#include "src/tint/transform/manager.h"
|
||||||
|
#include "src/tint/transform/merge_return.h"
|
||||||
#include "src/tint/transform/promote_side_effects_to_decl.h"
|
#include "src/tint/transform/promote_side_effects_to_decl.h"
|
||||||
#include "src/tint/transform/remove_phonies.h"
|
#include "src/tint/transform/remove_phonies.h"
|
||||||
#include "src/tint/transform/remove_unreachable_statements.h"
|
#include "src/tint/transform/remove_unreachable_statements.h"
|
||||||
|
@ -84,6 +85,7 @@ SanitizedResult Sanitize(const Program* in, const Options& options) {
|
||||||
manager.Add<transform::VectorizeScalarMatrixInitializers>();
|
manager.Add<transform::VectorizeScalarMatrixInitializers>();
|
||||||
manager.Add<transform::VectorizeMatrixConversions>();
|
manager.Add<transform::VectorizeMatrixConversions>();
|
||||||
manager.Add<transform::WhileToLoop>(); // ZeroInitWorkgroupMemory
|
manager.Add<transform::WhileToLoop>(); // ZeroInitWorkgroupMemory
|
||||||
|
manager.Add<transform::MergeReturn>();
|
||||||
manager.Add<transform::CanonicalizeEntryPointIO>();
|
manager.Add<transform::CanonicalizeEntryPointIO>();
|
||||||
manager.Add<transform::AddEmptyEntryPoint>();
|
manager.Add<transform::AddEmptyEntryPoint>();
|
||||||
manager.Add<transform::AddBlockAttribute>();
|
manager.Add<transform::AddBlockAttribute>();
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 50
|
; Bound: 58
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -12,6 +12,8 @@
|
||||||
OpName %tint_discard "tint_discard"
|
OpName %tint_discard "tint_discard"
|
||||||
OpName %f "f"
|
OpName %f "f"
|
||||||
OpName %x "x"
|
OpName %x "x"
|
||||||
|
OpName %tint_return_flag "tint_return_flag"
|
||||||
|
OpName %tint_return_value "tint_return_value"
|
||||||
OpName %tint_discard_func "tint_discard_func"
|
OpName %tint_discard_func "tint_discard_func"
|
||||||
OpName %main_inner "main_inner"
|
OpName %main_inner "main_inner"
|
||||||
OpName %x_0 "x"
|
OpName %x_0 "x"
|
||||||
|
@ -32,65 +34,80 @@
|
||||||
%_ptr_Private_bool = OpTypePointer Private %bool
|
%_ptr_Private_bool = OpTypePointer Private %bool
|
||||||
%tint_discard = OpVariable %_ptr_Private_bool Private %9
|
%tint_discard = OpVariable %_ptr_Private_bool Private %9
|
||||||
%12 = OpTypeFunction %int %int
|
%12 = OpTypeFunction %int %int
|
||||||
|
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||||
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%int_10 = OpConstant %int 10
|
%int_10 = OpConstant %int 10
|
||||||
%true = OpConstantTrue %bool
|
%true = OpConstantTrue %bool
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%21 = OpTypeFunction %void
|
%30 = OpTypeFunction %void
|
||||||
%25 = OpTypeFunction %int %v3int
|
%34 = OpTypeFunction %int %v3int
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
|
||||||
%f = OpFunction %int None %12
|
%f = OpFunction %int None %12
|
||||||
%x = OpFunctionParameter %int
|
%x = OpFunctionParameter %int
|
||||||
%15 = OpLabel
|
%15 = OpLabel
|
||||||
%17 = OpIEqual %bool %x %int_10
|
%tint_return_flag = OpVariable %_ptr_Function_bool Function %9
|
||||||
OpSelectionMerge %18 None
|
%tint_return_value = OpVariable %_ptr_Function_int Function %7
|
||||||
OpBranchConditional %17 %19 %18
|
%21 = OpIEqual %bool %x %int_10
|
||||||
%19 = OpLabel
|
OpSelectionMerge %22 None
|
||||||
|
OpBranchConditional %21 %23 %22
|
||||||
|
%23 = OpLabel
|
||||||
OpStore %tint_discard %true
|
OpStore %tint_discard %true
|
||||||
OpReturnValue %7
|
OpStore %tint_return_flag %true
|
||||||
%18 = OpLabel
|
OpStore %tint_return_value %7
|
||||||
OpReturnValue %x
|
OpBranch %22
|
||||||
|
%22 = OpLabel
|
||||||
|
%26 = OpLoad %bool %tint_return_flag
|
||||||
|
%25 = OpLogicalNot %bool %26
|
||||||
|
OpSelectionMerge %27 None
|
||||||
|
OpBranchConditional %25 %28 %27
|
||||||
|
%28 = OpLabel
|
||||||
|
OpStore %tint_return_flag %true
|
||||||
|
OpStore %tint_return_value %x
|
||||||
|
OpBranch %27
|
||||||
|
%27 = OpLabel
|
||||||
|
%29 = OpLoad %int %tint_return_value
|
||||||
|
OpReturnValue %29
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%tint_discard_func = OpFunction %void None %21
|
%tint_discard_func = OpFunction %void None %30
|
||||||
%24 = OpLabel
|
%33 = OpLabel
|
||||||
OpKill
|
OpKill
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_inner = OpFunction %int None %25
|
%main_inner = OpFunction %int None %34
|
||||||
%x_0 = OpFunctionParameter %v3int
|
%x_0 = OpFunctionParameter %v3int
|
||||||
%28 = OpLabel
|
%37 = OpLabel
|
||||||
%y = OpVariable %_ptr_Function_int Function %7
|
%y = OpVariable %_ptr_Function_int Function %7
|
||||||
%29 = OpCompositeExtract %int %x_0 0
|
%38 = OpCompositeExtract %int %x_0 0
|
||||||
OpStore %y %29
|
OpStore %y %38
|
||||||
OpBranch %32
|
OpBranch %40
|
||||||
%32 = OpLabel
|
|
||||||
OpLoopMerge %33 %34 None
|
|
||||||
OpBranch %35
|
|
||||||
%35 = OpLabel
|
|
||||||
%37 = OpLoad %int %y
|
|
||||||
%36 = OpFunctionCall %int %f %37
|
|
||||||
%38 = OpLoad %bool %tint_discard
|
|
||||||
OpSelectionMerge %39 None
|
|
||||||
OpBranchConditional %38 %40 %39
|
|
||||||
%40 = OpLabel
|
%40 = OpLabel
|
||||||
%41 = OpFunctionCall %void %tint_discard_func
|
OpLoopMerge %41 %42 None
|
||||||
OpReturnValue %7
|
OpBranch %43
|
||||||
%39 = OpLabel
|
|
||||||
%42 = OpIEqual %bool %36 %7
|
|
||||||
OpSelectionMerge %43 None
|
|
||||||
OpBranchConditional %42 %44 %43
|
|
||||||
%44 = OpLabel
|
|
||||||
OpBranch %33
|
|
||||||
%43 = OpLabel
|
%43 = OpLabel
|
||||||
OpBranch %34
|
|
||||||
%34 = OpLabel
|
|
||||||
OpBranch %32
|
|
||||||
%33 = OpLabel
|
|
||||||
%45 = OpLoad %int %y
|
%45 = OpLoad %int %y
|
||||||
OpReturnValue %45
|
%44 = OpFunctionCall %int %f %45
|
||||||
OpFunctionEnd
|
%46 = OpLoad %bool %tint_discard
|
||||||
%main = OpFunction %void None %21
|
OpSelectionMerge %47 None
|
||||||
|
OpBranchConditional %46 %48 %47
|
||||||
|
%48 = OpLabel
|
||||||
|
%49 = OpFunctionCall %void %tint_discard_func
|
||||||
|
OpReturnValue %7
|
||||||
%47 = OpLabel
|
%47 = OpLabel
|
||||||
%49 = OpLoad %v3int %x_1
|
%50 = OpIEqual %bool %44 %7
|
||||||
%48 = OpFunctionCall %int %main_inner %49
|
OpSelectionMerge %51 None
|
||||||
OpStore %value %48
|
OpBranchConditional %50 %52 %51
|
||||||
|
%52 = OpLabel
|
||||||
|
OpBranch %41
|
||||||
|
%51 = OpLabel
|
||||||
|
OpBranch %42
|
||||||
|
%42 = OpLabel
|
||||||
|
OpBranch %40
|
||||||
|
%41 = OpLabel
|
||||||
|
%53 = OpLoad %int %y
|
||||||
|
OpReturnValue %53
|
||||||
|
OpFunctionEnd
|
||||||
|
%main = OpFunction %void None %30
|
||||||
|
%55 = OpLabel
|
||||||
|
%57 = OpLoad %v3int %x_1
|
||||||
|
%56 = OpFunctionCall %int %main_inner %57
|
||||||
|
OpStore %value %56
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 189
|
; Bound: 199
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
%71 = OpExtInstImport "GLSL.std.450"
|
%81 = OpExtInstImport "GLSL.std.450"
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint Fragment %main "main" %fClipDistance3_param_1 %fClipDistance4_param_1 %glFragColor_1_1
|
OpEntryPoint Fragment %main "main" %fClipDistance3_param_1 %fClipDistance4_param_1 %glFragColor_1_1
|
||||||
OpExecutionMode %main OriginUpperLeft
|
OpExecutionMode %main OriginUpperLeft
|
||||||
|
@ -29,6 +29,7 @@
|
||||||
OpName %glFragColor "glFragColor"
|
OpName %glFragColor "glFragColor"
|
||||||
OpName %tint_discard "tint_discard"
|
OpName %tint_discard "tint_discard"
|
||||||
OpName %main_1 "main_1"
|
OpName %main_1 "main_1"
|
||||||
|
OpName %tint_return_flag "tint_return_flag"
|
||||||
OpName %viewDirectionW "viewDirectionW"
|
OpName %viewDirectionW "viewDirectionW"
|
||||||
OpName %baseColor "baseColor"
|
OpName %baseColor "baseColor"
|
||||||
OpName %diffuseColor "diffuseColor"
|
OpName %diffuseColor "diffuseColor"
|
||||||
|
@ -105,201 +106,220 @@
|
||||||
%tint_discard = OpVariable %_ptr_Private_bool Private %26
|
%tint_discard = OpVariable %_ptr_Private_bool Private %26
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%29 = OpTypeFunction %void
|
%29 = OpTypeFunction %void
|
||||||
|
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||||
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||||
%35 = OpConstantNull %v3float
|
%37 = OpConstantNull %v3float
|
||||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%v2float = OpTypeVector %float 2
|
%v2float = OpTypeVector %float 2
|
||||||
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||||
%45 = OpConstantNull %v2float
|
%47 = OpConstantNull %v2float
|
||||||
%true = OpConstantTrue %bool
|
%true = OpConstantTrue %bool
|
||||||
%uint = OpTypeInt 32 0
|
%uint = OpTypeInt 32 0
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%78 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
%88 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
||||||
%uint_3 = OpConstant %uint 3
|
%uint_3 = OpConstant %uint 3
|
||||||
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
||||||
%105 = OpConstantComposite %v3float %float_1 %float_1 %float_1
|
%115 = OpConstantComposite %v3float %float_1 %float_1 %float_1
|
||||||
%106 = OpConstantComposite %v4float %11 %11 %11 %float_1
|
%116 = OpConstantComposite %v4float %11 %11 %11 %float_1
|
||||||
%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float
|
%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%main_out = OpTypeStruct %v4float
|
%main_out = OpTypeStruct %v4float
|
||||||
%169 = OpTypeFunction %main_out %float %float
|
%179 = OpTypeFunction %main_out %float %float
|
||||||
%180 = OpConstantNull %main_out
|
%190 = OpConstantNull %main_out
|
||||||
%main_1 = OpFunction %void None %29
|
%main_1 = OpFunction %void None %29
|
||||||
%32 = OpLabel
|
%32 = OpLabel
|
||||||
%viewDirectionW = OpVariable %_ptr_Function_v3float Function %35
|
%tint_return_flag = OpVariable %_ptr_Function_bool Function %26
|
||||||
|
%viewDirectionW = OpVariable %_ptr_Function_v3float Function %37
|
||||||
%baseColor = OpVariable %_ptr_Function_v4float Function %8
|
%baseColor = OpVariable %_ptr_Function_v4float Function %8
|
||||||
%diffuseColor = OpVariable %_ptr_Function_v3float Function %35
|
%diffuseColor = OpVariable %_ptr_Function_v3float Function %37
|
||||||
%alpha = OpVariable %_ptr_Function_float Function %11
|
%alpha = OpVariable %_ptr_Function_float Function %11
|
||||||
%normalW = OpVariable %_ptr_Function_v3float Function %35
|
%normalW = OpVariable %_ptr_Function_v3float Function %37
|
||||||
%uvOffset = OpVariable %_ptr_Function_v2float Function %45
|
%uvOffset = OpVariable %_ptr_Function_v2float Function %47
|
||||||
%baseAmbientColor = OpVariable %_ptr_Function_v3float Function %35
|
%baseAmbientColor = OpVariable %_ptr_Function_v3float Function %37
|
||||||
%glossiness = OpVariable %_ptr_Function_float Function %11
|
%glossiness = OpVariable %_ptr_Function_float Function %11
|
||||||
%diffuseBase = OpVariable %_ptr_Function_v3float Function %35
|
%diffuseBase = OpVariable %_ptr_Function_v3float Function %37
|
||||||
%shadow = OpVariable %_ptr_Function_float Function %11
|
%shadow = OpVariable %_ptr_Function_float Function %11
|
||||||
%refractionColor = OpVariable %_ptr_Function_v4float Function %8
|
%refractionColor = OpVariable %_ptr_Function_v4float Function %8
|
||||||
%reflectionColor = OpVariable %_ptr_Function_v4float Function %8
|
%reflectionColor = OpVariable %_ptr_Function_v4float Function %8
|
||||||
%emissiveColor = OpVariable %_ptr_Function_v3float Function %35
|
%emissiveColor = OpVariable %_ptr_Function_v3float Function %37
|
||||||
%finalDiffuse = OpVariable %_ptr_Function_v3float Function %35
|
%finalDiffuse = OpVariable %_ptr_Function_v3float Function %37
|
||||||
%finalSpecular = OpVariable %_ptr_Function_v3float Function %35
|
%finalSpecular = OpVariable %_ptr_Function_v3float Function %37
|
||||||
%color = OpVariable %_ptr_Function_v4float Function %8
|
%color = OpVariable %_ptr_Function_v4float Function %8
|
||||||
%56 = OpLoad %float %fClipDistance3
|
%58 = OpLoad %float %fClipDistance3
|
||||||
%57 = OpFOrdGreaterThan %bool %56 %11
|
%59 = OpFOrdGreaterThan %bool %58 %11
|
||||||
OpSelectionMerge %58 None
|
OpSelectionMerge %60 None
|
||||||
OpBranchConditional %57 %59 %58
|
OpBranchConditional %59 %61 %60
|
||||||
%59 = OpLabel
|
%61 = OpLabel
|
||||||
OpStore %tint_discard %true
|
OpStore %tint_discard %true
|
||||||
OpReturn
|
OpStore %tint_return_flag %true
|
||||||
%58 = OpLabel
|
OpBranch %60
|
||||||
%61 = OpLoad %float %fClipDistance4
|
%60 = OpLabel
|
||||||
%62 = OpFOrdGreaterThan %bool %61 %11
|
%64 = OpLoad %bool %tint_return_flag
|
||||||
OpSelectionMerge %63 None
|
%63 = OpLogicalNot %bool %64
|
||||||
OpBranchConditional %62 %64 %63
|
OpSelectionMerge %65 None
|
||||||
%64 = OpLabel
|
OpBranchConditional %63 %66 %65
|
||||||
|
%66 = OpLabel
|
||||||
|
%67 = OpLoad %float %fClipDistance4
|
||||||
|
%68 = OpFOrdGreaterThan %bool %67 %11
|
||||||
|
OpSelectionMerge %69 None
|
||||||
|
OpBranchConditional %68 %70 %69
|
||||||
|
%70 = OpLabel
|
||||||
OpStore %tint_discard %true
|
OpStore %tint_discard %true
|
||||||
OpReturn
|
OpStore %tint_return_flag %true
|
||||||
%63 = OpLabel
|
OpBranch %69
|
||||||
%68 = OpAccessChain %_ptr_Uniform_v4float %x_29 %uint_0
|
%69 = OpLabel
|
||||||
%69 = OpLoad %v4float %68
|
%72 = OpLoad %bool %tint_return_flag
|
||||||
%72 = OpCompositeExtract %float %69 0
|
%71 = OpLogicalNot %bool %72
|
||||||
%73 = OpCompositeExtract %float %69 1
|
OpSelectionMerge %73 None
|
||||||
%74 = OpCompositeExtract %float %69 2
|
OpBranchConditional %71 %74 %73
|
||||||
%75 = OpCompositeConstruct %v3float %72 %73 %74
|
%74 = OpLabel
|
||||||
%76 = OpFSub %v3float %75 %35
|
%78 = OpAccessChain %_ptr_Uniform_v4float %x_29 %uint_0
|
||||||
%70 = OpExtInst %v3float %71 Normalize %76
|
%79 = OpLoad %v4float %78
|
||||||
OpStore %viewDirectionW %70
|
%82 = OpCompositeExtract %float %79 0
|
||||||
OpStore %baseColor %78
|
%83 = OpCompositeExtract %float %79 1
|
||||||
%79 = OpAccessChain %_ptr_Uniform_v4float %x_49 %uint_0
|
%84 = OpCompositeExtract %float %79 2
|
||||||
%80 = OpLoad %v4float %79
|
%85 = OpCompositeConstruct %v3float %82 %83 %84
|
||||||
%81 = OpCompositeExtract %float %80 0
|
%86 = OpFSub %v3float %85 %37
|
||||||
%82 = OpCompositeExtract %float %80 1
|
%80 = OpExtInst %v3float %81 Normalize %86
|
||||||
%83 = OpCompositeExtract %float %80 2
|
OpStore %viewDirectionW %80
|
||||||
%84 = OpCompositeConstruct %v3float %81 %82 %83
|
OpStore %baseColor %88
|
||||||
OpStore %diffuseColor %84
|
%89 = OpAccessChain %_ptr_Uniform_v4float %x_49 %uint_0
|
||||||
%87 = OpAccessChain %_ptr_Uniform_float %x_49 %uint_0 %uint_3
|
%90 = OpLoad %v4float %89
|
||||||
%88 = OpLoad %float %87
|
%91 = OpCompositeExtract %float %90 0
|
||||||
OpStore %alpha %88
|
%92 = OpCompositeExtract %float %90 1
|
||||||
OpStore %uvOffset %45
|
%93 = OpCompositeExtract %float %90 2
|
||||||
%89 = OpLoad %v4float %baseColor
|
%94 = OpCompositeConstruct %v3float %91 %92 %93
|
||||||
%90 = OpCompositeExtract %float %89 0
|
OpStore %diffuseColor %94
|
||||||
%91 = OpCompositeExtract %float %89 1
|
%97 = OpAccessChain %_ptr_Uniform_float %x_49 %uint_0 %uint_3
|
||||||
%92 = OpCompositeExtract %float %89 2
|
%98 = OpLoad %float %97
|
||||||
%93 = OpCompositeConstruct %v3float %90 %91 %92
|
OpStore %alpha %98
|
||||||
%94 = OpCompositeExtract %float %8 0
|
OpStore %uvOffset %47
|
||||||
%95 = OpCompositeExtract %float %8 1
|
|
||||||
%96 = OpCompositeExtract %float %8 2
|
|
||||||
%97 = OpCompositeConstruct %v3float %94 %95 %96
|
|
||||||
%98 = OpFMul %v3float %93 %97
|
|
||||||
%99 = OpLoad %v4float %baseColor
|
%99 = OpLoad %v4float %baseColor
|
||||||
%100 = OpCompositeExtract %float %98 0
|
%100 = OpCompositeExtract %float %99 0
|
||||||
%101 = OpCompositeExtract %float %98 1
|
%101 = OpCompositeExtract %float %99 1
|
||||||
%102 = OpCompositeExtract %float %98 2
|
%102 = OpCompositeExtract %float %99 2
|
||||||
%103 = OpCompositeExtract %float %99 3
|
%103 = OpCompositeConstruct %v3float %100 %101 %102
|
||||||
%104 = OpCompositeConstruct %v4float %100 %101 %102 %103
|
%104 = OpCompositeExtract %float %8 0
|
||||||
OpStore %baseColor %104
|
%105 = OpCompositeExtract %float %8 1
|
||||||
OpStore %baseAmbientColor %105
|
%106 = OpCompositeExtract %float %8 2
|
||||||
|
%107 = OpCompositeConstruct %v3float %104 %105 %106
|
||||||
|
%108 = OpFMul %v3float %103 %107
|
||||||
|
%109 = OpLoad %v4float %baseColor
|
||||||
|
%110 = OpCompositeExtract %float %108 0
|
||||||
|
%111 = OpCompositeExtract %float %108 1
|
||||||
|
%112 = OpCompositeExtract %float %108 2
|
||||||
|
%113 = OpCompositeExtract %float %109 3
|
||||||
|
%114 = OpCompositeConstruct %v4float %110 %111 %112 %113
|
||||||
|
OpStore %baseColor %114
|
||||||
|
OpStore %baseAmbientColor %115
|
||||||
OpStore %glossiness %11
|
OpStore %glossiness %11
|
||||||
OpStore %diffuseBase %35
|
OpStore %diffuseBase %37
|
||||||
OpStore %shadow %float_1
|
OpStore %shadow %float_1
|
||||||
OpStore %refractionColor %106
|
OpStore %refractionColor %116
|
||||||
OpStore %reflectionColor %106
|
OpStore %reflectionColor %116
|
||||||
%108 = OpAccessChain %_ptr_Uniform_v3float %x_49 %uint_3
|
%118 = OpAccessChain %_ptr_Uniform_v3float %x_49 %uint_3
|
||||||
%109 = OpLoad %v3float %108
|
%119 = OpLoad %v3float %118
|
||||||
OpStore %emissiveColor %109
|
OpStore %emissiveColor %119
|
||||||
%110 = OpLoad %v3float %diffuseBase
|
%120 = OpLoad %v3float %diffuseBase
|
||||||
%111 = OpLoad %v3float %diffuseColor
|
%121 = OpLoad %v3float %diffuseColor
|
||||||
%112 = OpLoad %v3float %emissiveColor
|
%122 = OpLoad %v3float %emissiveColor
|
||||||
%114 = OpAccessChain %_ptr_Uniform_v3float %x_49 %uint_1
|
%124 = OpAccessChain %_ptr_Uniform_v3float %x_49 %uint_1
|
||||||
%115 = OpLoad %v3float %114
|
%125 = OpLoad %v3float %124
|
||||||
%116 = OpLoad %v4float %baseColor
|
%126 = OpLoad %v4float %baseColor
|
||||||
%118 = OpFMul %v3float %110 %111
|
%128 = OpFMul %v3float %120 %121
|
||||||
%119 = OpFAdd %v3float %118 %112
|
%129 = OpFAdd %v3float %128 %122
|
||||||
%120 = OpFAdd %v3float %119 %115
|
%130 = OpFAdd %v3float %129 %125
|
||||||
%117 = OpExtInst %v3float %71 NClamp %120 %35 %105
|
%127 = OpExtInst %v3float %81 NClamp %130 %37 %115
|
||||||
%121 = OpCompositeExtract %float %116 0
|
%131 = OpCompositeExtract %float %126 0
|
||||||
%122 = OpCompositeExtract %float %116 1
|
%132 = OpCompositeExtract %float %126 1
|
||||||
%123 = OpCompositeExtract %float %116 2
|
%133 = OpCompositeExtract %float %126 2
|
||||||
%124 = OpCompositeConstruct %v3float %121 %122 %123
|
%134 = OpCompositeConstruct %v3float %131 %132 %133
|
||||||
%125 = OpFMul %v3float %117 %124
|
%135 = OpFMul %v3float %127 %134
|
||||||
OpStore %finalDiffuse %125
|
OpStore %finalDiffuse %135
|
||||||
OpStore %finalSpecular %35
|
OpStore %finalSpecular %37
|
||||||
%126 = OpLoad %v3float %finalDiffuse
|
%136 = OpLoad %v3float %finalDiffuse
|
||||||
%127 = OpLoad %v3float %baseAmbientColor
|
%137 = OpLoad %v3float %baseAmbientColor
|
||||||
%128 = OpLoad %v3float %finalSpecular
|
%138 = OpLoad %v3float %finalSpecular
|
||||||
%129 = OpLoad %v4float %reflectionColor
|
%139 = OpLoad %v4float %reflectionColor
|
||||||
%130 = OpLoad %v4float %refractionColor
|
%140 = OpLoad %v4float %refractionColor
|
||||||
%131 = OpFMul %v3float %126 %127
|
%141 = OpFMul %v3float %136 %137
|
||||||
%132 = OpFAdd %v3float %131 %128
|
%142 = OpFAdd %v3float %141 %138
|
||||||
%133 = OpCompositeExtract %float %129 0
|
%143 = OpCompositeExtract %float %139 0
|
||||||
%134 = OpCompositeExtract %float %129 1
|
%144 = OpCompositeExtract %float %139 1
|
||||||
%135 = OpCompositeExtract %float %129 2
|
%145 = OpCompositeExtract %float %139 2
|
||||||
%136 = OpCompositeConstruct %v3float %133 %134 %135
|
%146 = OpCompositeConstruct %v3float %143 %144 %145
|
||||||
%137 = OpFAdd %v3float %132 %136
|
%147 = OpFAdd %v3float %142 %146
|
||||||
%138 = OpCompositeExtract %float %130 0
|
%148 = OpCompositeExtract %float %140 0
|
||||||
%139 = OpCompositeExtract %float %130 1
|
%149 = OpCompositeExtract %float %140 1
|
||||||
%140 = OpCompositeExtract %float %130 2
|
%150 = OpCompositeExtract %float %140 2
|
||||||
%141 = OpCompositeConstruct %v3float %138 %139 %140
|
%151 = OpCompositeConstruct %v3float %148 %149 %150
|
||||||
%142 = OpFAdd %v3float %137 %141
|
%152 = OpFAdd %v3float %147 %151
|
||||||
%143 = OpLoad %float %alpha
|
%153 = OpLoad %float %alpha
|
||||||
%144 = OpCompositeExtract %float %142 0
|
%154 = OpCompositeExtract %float %152 0
|
||||||
%145 = OpCompositeExtract %float %142 1
|
%155 = OpCompositeExtract %float %152 1
|
||||||
%146 = OpCompositeExtract %float %142 2
|
%156 = OpCompositeExtract %float %152 2
|
||||||
%147 = OpCompositeConstruct %v4float %144 %145 %146 %143
|
%157 = OpCompositeConstruct %v4float %154 %155 %156 %153
|
||||||
OpStore %color %147
|
OpStore %color %157
|
||||||
%148 = OpLoad %v4float %color
|
%158 = OpLoad %v4float %color
|
||||||
%150 = OpCompositeExtract %float %148 0
|
%160 = OpCompositeExtract %float %158 0
|
||||||
%151 = OpCompositeExtract %float %148 1
|
%161 = OpCompositeExtract %float %158 1
|
||||||
%152 = OpCompositeExtract %float %148 2
|
%162 = OpCompositeExtract %float %158 2
|
||||||
%153 = OpCompositeConstruct %v3float %150 %151 %152
|
%163 = OpCompositeConstruct %v3float %160 %161 %162
|
||||||
%149 = OpExtInst %v3float %71 NMax %153 %35
|
%159 = OpExtInst %v3float %81 NMax %163 %37
|
||||||
%154 = OpLoad %v4float %color
|
%164 = OpLoad %v4float %color
|
||||||
%155 = OpCompositeExtract %float %149 0
|
%165 = OpCompositeExtract %float %159 0
|
||||||
%156 = OpCompositeExtract %float %149 1
|
%166 = OpCompositeExtract %float %159 1
|
||||||
%157 = OpCompositeExtract %float %149 2
|
%167 = OpCompositeExtract %float %159 2
|
||||||
%158 = OpCompositeExtract %float %154 3
|
%168 = OpCompositeExtract %float %164 3
|
||||||
%159 = OpCompositeConstruct %v4float %155 %156 %157 %158
|
%169 = OpCompositeConstruct %v4float %165 %166 %167 %168
|
||||||
OpStore %color %159
|
OpStore %color %169
|
||||||
%160 = OpAccessChain %_ptr_Uniform_float %x_137 %uint_0
|
%170 = OpAccessChain %_ptr_Uniform_float %x_137 %uint_0
|
||||||
%161 = OpLoad %float %160
|
%171 = OpLoad %float %170
|
||||||
%162 = OpAccessChain %_ptr_Function_float %color %uint_3
|
%172 = OpAccessChain %_ptr_Function_float %color %uint_3
|
||||||
%163 = OpLoad %float %162
|
%173 = OpLoad %float %172
|
||||||
%164 = OpAccessChain %_ptr_Function_float %color %uint_3
|
%174 = OpAccessChain %_ptr_Function_float %color %uint_3
|
||||||
%165 = OpFMul %float %163 %161
|
%175 = OpFMul %float %173 %171
|
||||||
OpStore %164 %165
|
OpStore %174 %175
|
||||||
%166 = OpLoad %v4float %color
|
%176 = OpLoad %v4float %color
|
||||||
OpStore %glFragColor %166
|
OpStore %glFragColor %176
|
||||||
|
OpStore %tint_return_flag %true
|
||||||
|
OpBranch %73
|
||||||
|
%73 = OpLabel
|
||||||
|
OpBranch %65
|
||||||
|
%65 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%tint_discard_func = OpFunction %void None %29
|
%tint_discard_func = OpFunction %void None %29
|
||||||
%168 = OpLabel
|
%178 = OpLabel
|
||||||
OpKill
|
OpKill
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_inner = OpFunction %main_out None %169
|
%main_inner = OpFunction %main_out None %179
|
||||||
%fClipDistance3_param = OpFunctionParameter %float
|
%fClipDistance3_param = OpFunctionParameter %float
|
||||||
%fClipDistance4_param = OpFunctionParameter %float
|
%fClipDistance4_param = OpFunctionParameter %float
|
||||||
%174 = OpLabel
|
%184 = OpLabel
|
||||||
OpStore %fClipDistance3 %fClipDistance3_param
|
OpStore %fClipDistance3 %fClipDistance3_param
|
||||||
OpStore %fClipDistance4 %fClipDistance4_param
|
OpStore %fClipDistance4 %fClipDistance4_param
|
||||||
%175 = OpFunctionCall %void %main_1
|
%185 = OpFunctionCall %void %main_1
|
||||||
%176 = OpLoad %bool %tint_discard
|
%186 = OpLoad %bool %tint_discard
|
||||||
OpSelectionMerge %177 None
|
OpSelectionMerge %187 None
|
||||||
OpBranchConditional %176 %178 %177
|
OpBranchConditional %186 %188 %187
|
||||||
%178 = OpLabel
|
%188 = OpLabel
|
||||||
%179 = OpFunctionCall %void %tint_discard_func
|
%189 = OpFunctionCall %void %tint_discard_func
|
||||||
OpReturnValue %180
|
OpReturnValue %190
|
||||||
%177 = OpLabel
|
%187 = OpLabel
|
||||||
%181 = OpLoad %v4float %glFragColor
|
%191 = OpLoad %v4float %glFragColor
|
||||||
%182 = OpCompositeConstruct %main_out %181
|
%192 = OpCompositeConstruct %main_out %191
|
||||||
OpReturnValue %182
|
OpReturnValue %192
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %29
|
%main = OpFunction %void None %29
|
||||||
%184 = OpLabel
|
%194 = OpLabel
|
||||||
%186 = OpLoad %float %fClipDistance3_param_1
|
%196 = OpLoad %float %fClipDistance3_param_1
|
||||||
%187 = OpLoad %float %fClipDistance4_param_1
|
%197 = OpLoad %float %fClipDistance4_param_1
|
||||||
%185 = OpFunctionCall %main_out %main_inner %186 %187
|
%195 = OpFunctionCall %main_out %main_inner %196 %197
|
||||||
%188 = OpCompositeExtract %v4float %185 0
|
%198 = OpCompositeExtract %v4float %195 0
|
||||||
OpStore %glFragColor_1_1 %188
|
OpStore %glFragColor_1_1 %198
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 48
|
; Bound: 60
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -11,6 +11,8 @@
|
||||||
OpMemberName %b_block 0 "inner"
|
OpMemberName %b_block 0 "inner"
|
||||||
OpName %b "b"
|
OpName %b "b"
|
||||||
OpName %func_3 "func_3"
|
OpName %func_3 "func_3"
|
||||||
|
OpName %tint_return_flag "tint_return_flag"
|
||||||
|
OpName %tint_return_value "tint_return_value"
|
||||||
OpName %i "i"
|
OpName %i "i"
|
||||||
OpName %j "j"
|
OpName %j "j"
|
||||||
OpName %main "main"
|
OpName %main "main"
|
||||||
|
@ -25,68 +27,90 @@
|
||||||
%b = OpVariable %_ptr_Uniform_b_block Uniform
|
%b = OpVariable %_ptr_Uniform_b_block Uniform
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%5 = OpTypeFunction %bool
|
%5 = OpTypeFunction %bool
|
||||||
%9 = OpConstantNull %int
|
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||||
|
%11 = OpConstantNull %bool
|
||||||
|
%13 = OpConstantNull %int
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%uint = OpTypeInt 32 0
|
%uint = OpTypeInt 32 0
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%_ptr_Uniform_int = OpTypePointer Uniform %int
|
%_ptr_Uniform_int = OpTypePointer Uniform %int
|
||||||
%int_n1 = OpConstant %int -1
|
%int_n1 = OpConstant %int -1
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
%38 = OpConstantNull %bool
|
%true = OpConstantTrue %bool
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%43 = OpTypeFunction %void
|
%55 = OpTypeFunction %void
|
||||||
%func_3 = OpFunction %bool None %5
|
%func_3 = OpFunction %bool None %5
|
||||||
%8 = OpLabel
|
%8 = OpLabel
|
||||||
%i = OpVariable %_ptr_Function_int Function %9
|
%tint_return_flag = OpVariable %_ptr_Function_bool Function %11
|
||||||
%j = OpVariable %_ptr_Function_int Function %9
|
%tint_return_value = OpVariable %_ptr_Function_bool Function %11
|
||||||
OpStore %i %9
|
%i = OpVariable %_ptr_Function_int Function %13
|
||||||
OpBranch %12
|
%j = OpVariable %_ptr_Function_int Function %13
|
||||||
%12 = OpLabel
|
OpStore %i %13
|
||||||
OpLoopMerge %13 %14 None
|
OpBranch %16
|
||||||
OpBranch %15
|
%16 = OpLabel
|
||||||
%15 = OpLabel
|
OpLoopMerge %17 %18 None
|
||||||
%17 = OpLoad %int %i
|
OpBranch %19
|
||||||
%21 = OpAccessChain %_ptr_Uniform_int %b %uint_0
|
%19 = OpLabel
|
||||||
%22 = OpLoad %int %21
|
%21 = OpLoad %int %i
|
||||||
%23 = OpSLessThan %bool %17 %22
|
%25 = OpAccessChain %_ptr_Uniform_int %b %uint_0
|
||||||
%16 = OpLogicalNot %bool %23
|
%26 = OpLoad %int %25
|
||||||
OpSelectionMerge %24 None
|
%27 = OpSLessThan %bool %21 %26
|
||||||
OpBranchConditional %16 %25 %24
|
%20 = OpLogicalNot %bool %27
|
||||||
%25 = OpLabel
|
OpSelectionMerge %28 None
|
||||||
OpBranch %13
|
OpBranchConditional %20 %29 %28
|
||||||
%24 = OpLabel
|
|
||||||
OpStore %j %int_n1
|
|
||||||
OpBranch %28
|
|
||||||
%28 = OpLabel
|
|
||||||
OpLoopMerge %29 %30 None
|
|
||||||
OpBranch %31
|
|
||||||
%31 = OpLabel
|
|
||||||
%33 = OpLoad %int %j
|
|
||||||
%35 = OpIEqual %bool %33 %int_1
|
|
||||||
%32 = OpLogicalNot %bool %35
|
|
||||||
OpSelectionMerge %36 None
|
|
||||||
OpBranchConditional %32 %37 %36
|
|
||||||
%37 = OpLabel
|
|
||||||
OpBranch %29
|
|
||||||
%36 = OpLabel
|
|
||||||
OpReturnValue %38
|
|
||||||
%30 = OpLabel
|
|
||||||
%39 = OpLoad %int %j
|
|
||||||
%40 = OpIAdd %int %39 %int_1
|
|
||||||
OpStore %j %40
|
|
||||||
OpBranch %28
|
|
||||||
%29 = OpLabel
|
%29 = OpLabel
|
||||||
OpBranch %14
|
OpBranch %17
|
||||||
%14 = OpLabel
|
%28 = OpLabel
|
||||||
%41 = OpLoad %int %i
|
OpStore %j %int_n1
|
||||||
%42 = OpIAdd %int %41 %int_1
|
OpBranch %32
|
||||||
OpStore %i %42
|
%32 = OpLabel
|
||||||
OpBranch %12
|
OpLoopMerge %33 %34 None
|
||||||
%13 = OpLabel
|
OpBranch %35
|
||||||
OpReturnValue %38
|
%35 = OpLabel
|
||||||
OpFunctionEnd
|
%37 = OpLoad %int %j
|
||||||
%main = OpFunction %void None %43
|
%39 = OpIEqual %bool %37 %int_1
|
||||||
|
%36 = OpLogicalNot %bool %39
|
||||||
|
OpSelectionMerge %40 None
|
||||||
|
OpBranchConditional %36 %41 %40
|
||||||
|
%41 = OpLabel
|
||||||
|
OpBranch %33
|
||||||
|
%40 = OpLabel
|
||||||
|
OpStore %tint_return_flag %true
|
||||||
|
OpStore %tint_return_value %11
|
||||||
|
OpBranch %33
|
||||||
|
%34 = OpLabel
|
||||||
|
%43 = OpLoad %int %j
|
||||||
|
%44 = OpIAdd %int %43 %int_1
|
||||||
|
OpStore %j %44
|
||||||
|
OpBranch %32
|
||||||
|
%33 = OpLabel
|
||||||
|
%45 = OpLoad %bool %tint_return_flag
|
||||||
|
OpSelectionMerge %46 None
|
||||||
|
OpBranchConditional %45 %47 %46
|
||||||
|
%47 = OpLabel
|
||||||
|
OpBranch %17
|
||||||
%46 = OpLabel
|
%46 = OpLabel
|
||||||
%47 = OpFunctionCall %bool %func_3
|
OpBranch %18
|
||||||
|
%18 = OpLabel
|
||||||
|
%48 = OpLoad %int %i
|
||||||
|
%49 = OpIAdd %int %48 %int_1
|
||||||
|
OpStore %i %49
|
||||||
|
OpBranch %16
|
||||||
|
%17 = OpLabel
|
||||||
|
%51 = OpLoad %bool %tint_return_flag
|
||||||
|
%50 = OpLogicalNot %bool %51
|
||||||
|
OpSelectionMerge %52 None
|
||||||
|
OpBranchConditional %50 %53 %52
|
||||||
|
%53 = OpLabel
|
||||||
|
OpStore %tint_return_flag %true
|
||||||
|
OpStore %tint_return_value %11
|
||||||
|
OpBranch %52
|
||||||
|
%52 = OpLabel
|
||||||
|
%54 = OpLoad %bool %tint_return_value
|
||||||
|
OpReturnValue %54
|
||||||
|
OpFunctionEnd
|
||||||
|
%main = OpFunction %void None %55
|
||||||
|
%58 = OpLabel
|
||||||
|
%59 = OpFunctionCall %bool %func_3
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,7 +1,7 @@
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 386
|
; Bound: 390
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -98,6 +98,7 @@
|
||||||
OpName %m21 "m21"
|
OpName %m21 "m21"
|
||||||
OpName %o4 "o4"
|
OpName %o4 "o4"
|
||||||
OpName %main1 "main1"
|
OpName %main1 "main1"
|
||||||
|
OpName %tint_return_flag "tint_return_flag"
|
||||||
OpName %t_PosMtx "t_PosMtx"
|
OpName %t_PosMtx "t_PosMtx"
|
||||||
OpName %t_TexSpaceCoord "t_TexSpaceCoord"
|
OpName %t_TexSpaceCoord "t_TexSpaceCoord"
|
||||||
OpName %VertexOutput "VertexOutput"
|
OpName %VertexOutput "VertexOutput"
|
||||||
|
@ -228,17 +229,20 @@
|
||||||
%274 = OpTypeFunction %Mat4x3_ %Mat4x4_
|
%274 = OpTypeFunction %Mat4x3_ %Mat4x4_
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%290 = OpTypeFunction %void
|
%290 = OpTypeFunction %void
|
||||||
|
%bool = OpTypeBool
|
||||||
|
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||||
|
%297 = OpConstantNull %bool
|
||||||
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%_ptr_Uniform_Mat4x3_ = OpTypePointer Uniform %Mat4x3_
|
%_ptr_Uniform_Mat4x3_ = OpTypePointer Uniform %Mat4x3_
|
||||||
%_ptr_Uniform_Mat4x4_ = OpTypePointer Uniform %Mat4x4_
|
%_ptr_Uniform_Mat4x4_ = OpTypePointer Uniform %Mat4x4_
|
||||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||||
%float_2 = OpConstant %float 2
|
%float_2 = OpConstant %float 2
|
||||||
%bool = OpTypeBool
|
%344 = OpConstantNull %int
|
||||||
%341 = OpConstantNull %int
|
|
||||||
%_ptr_Uniform_Mat4x2_ = OpTypePointer Uniform %Mat4x2_
|
%_ptr_Uniform_Mat4x2_ = OpTypePointer Uniform %Mat4x2_
|
||||||
|
%true = OpConstantTrue %bool
|
||||||
%VertexOutput = OpTypeStruct %v4float %v2float %v4float
|
%VertexOutput = OpTypeStruct %v4float %v2float %v4float
|
||||||
%361 = OpTypeFunction %VertexOutput %v3float %v2float %v4float %v3float %float
|
%365 = OpTypeFunction %VertexOutput %v3float %v2float %v4float %v3float %float
|
||||||
%Mat4x3GetCol0_ = OpFunction %v3float None %54
|
%Mat4x3GetCol0_ = OpFunction %v3float None %54
|
||||||
%m = OpFunctionParameter %Mat4x3_
|
%m = OpFunctionParameter %Mat4x3_
|
||||||
%57 = OpLabel
|
%57 = OpLabel
|
||||||
|
@ -514,108 +518,111 @@
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main1 = OpFunction %void None %290
|
%main1 = OpFunction %void None %290
|
||||||
%293 = OpLabel
|
%293 = OpLabel
|
||||||
|
%tint_return_flag = OpVariable %_ptr_Function_bool Function %297
|
||||||
%t_PosMtx = OpVariable %_ptr_Function_Mat4x3_ Function %60
|
%t_PosMtx = OpVariable %_ptr_Function_Mat4x3_ Function %60
|
||||||
%t_TexSpaceCoord = OpVariable %_ptr_Function_v2float Function %19
|
%t_TexSpaceCoord = OpVariable %_ptr_Function_v2float Function %19
|
||||||
%297 = OpLoad %float %a_PosMtxIdx1
|
%301 = OpLoad %float %a_PosMtxIdx1
|
||||||
%298 = OpConvertFToS %int %297
|
%302 = OpConvertFToS %int %301
|
||||||
%301 = OpAccessChain %_ptr_Uniform_Mat4x3_ %global2 %uint_0 %298
|
%305 = OpAccessChain %_ptr_Uniform_Mat4x3_ %global2 %uint_0 %302
|
||||||
%302 = OpLoad %Mat4x3_ %301
|
%306 = OpLoad %Mat4x3_ %305
|
||||||
OpStore %t_PosMtx %302
|
OpStore %t_PosMtx %306
|
||||||
%303 = OpLoad %Mat4x3_ %t_PosMtx
|
%307 = OpLoad %Mat4x3_ %t_PosMtx
|
||||||
%304 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %303
|
%308 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %307
|
||||||
%305 = OpLoad %v3float %a_Position1
|
%309 = OpLoad %v3float %a_Position1
|
||||||
%306 = OpLoad %Mat4x3_ %t_PosMtx
|
%310 = OpLoad %Mat4x3_ %t_PosMtx
|
||||||
%307 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %306
|
%311 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %310
|
||||||
%308 = OpLoad %v3float %a_Position1
|
%312 = OpLoad %v3float %a_Position1
|
||||||
%310 = OpCompositeExtract %float %308 0
|
%314 = OpCompositeExtract %float %312 0
|
||||||
%311 = OpCompositeExtract %float %308 1
|
%315 = OpCompositeExtract %float %312 1
|
||||||
%312 = OpCompositeExtract %float %308 2
|
%316 = OpCompositeExtract %float %312 2
|
||||||
%313 = OpCompositeConstruct %v4float %310 %311 %312 %float_1
|
%317 = OpCompositeConstruct %v4float %314 %315 %316 %float_1
|
||||||
%309 = OpFunctionCall %v4float %Mul %307 %313
|
%313 = OpFunctionCall %v4float %Mul %311 %317
|
||||||
%315 = OpAccessChain %_ptr_Uniform_Mat4x4_ %global %uint_0
|
%319 = OpAccessChain %_ptr_Uniform_Mat4x4_ %global %uint_0
|
||||||
%316 = OpLoad %Mat4x4_ %315
|
%320 = OpLoad %Mat4x4_ %319
|
||||||
%317 = OpLoad %Mat4x3_ %t_PosMtx
|
%321 = OpLoad %Mat4x3_ %t_PosMtx
|
||||||
%318 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %317
|
%322 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %321
|
||||||
%319 = OpLoad %v3float %a_Position1
|
%323 = OpLoad %v3float %a_Position1
|
||||||
%320 = OpLoad %Mat4x3_ %t_PosMtx
|
%324 = OpLoad %Mat4x3_ %t_PosMtx
|
||||||
%321 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %320
|
%325 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %324
|
||||||
%322 = OpLoad %v3float %a_Position1
|
%326 = OpLoad %v3float %a_Position1
|
||||||
%324 = OpCompositeExtract %float %322 0
|
%328 = OpCompositeExtract %float %326 0
|
||||||
%325 = OpCompositeExtract %float %322 1
|
%329 = OpCompositeExtract %float %326 1
|
||||||
%326 = OpCompositeExtract %float %322 2
|
%330 = OpCompositeExtract %float %326 2
|
||||||
%327 = OpCompositeConstruct %v4float %324 %325 %326 %float_1
|
%331 = OpCompositeConstruct %v4float %328 %329 %330 %float_1
|
||||||
%323 = OpFunctionCall %v4float %Mul %321 %327
|
%327 = OpFunctionCall %v4float %Mul %325 %331
|
||||||
%328 = OpFunctionCall %v4float %Mul %316 %323
|
%332 = OpFunctionCall %v4float %Mul %320 %327
|
||||||
OpStore %gl_Position %328
|
OpStore %gl_Position %332
|
||||||
%329 = OpLoad %v4float %a_Color1
|
%333 = OpLoad %v4float %a_Color1
|
||||||
OpStore %v_Color %329
|
OpStore %v_Color %333
|
||||||
%331 = OpAccessChain %_ptr_Uniform_v4float %global1 %uint_1
|
%335 = OpAccessChain %_ptr_Uniform_v4float %global1 %uint_1
|
||||||
%332 = OpLoad %v4float %331
|
%336 = OpLoad %v4float %335
|
||||||
%333 = OpCompositeExtract %float %332 0
|
%337 = OpCompositeExtract %float %336 0
|
||||||
%335 = OpFOrdEqual %bool %333 %float_2
|
%339 = OpFOrdEqual %bool %337 %float_2
|
||||||
OpSelectionMerge %337 None
|
OpSelectionMerge %340 None
|
||||||
OpBranchConditional %335 %338 %339
|
OpBranchConditional %339 %341 %342
|
||||||
%338 = OpLabel
|
%341 = OpLabel
|
||||||
%340 = OpLoad %v3float %a_Normal1
|
%343 = OpLoad %v3float %a_Normal1
|
||||||
%343 = OpAccessChain %_ptr_Uniform_Mat4x2_ %global1 %uint_0 %341
|
%346 = OpAccessChain %_ptr_Uniform_Mat4x2_ %global1 %uint_0 %344
|
||||||
%344 = OpLoad %Mat4x2_ %343
|
%347 = OpLoad %Mat4x2_ %346
|
||||||
%345 = OpLoad %v3float %a_Normal1
|
%348 = OpLoad %v3float %a_Normal1
|
||||||
%347 = OpCompositeExtract %float %345 0
|
%350 = OpCompositeExtract %float %348 0
|
||||||
%348 = OpCompositeExtract %float %345 1
|
%351 = OpCompositeExtract %float %348 1
|
||||||
%349 = OpCompositeExtract %float %345 2
|
%352 = OpCompositeExtract %float %348 2
|
||||||
%350 = OpCompositeConstruct %v4float %347 %348 %349 %float_1
|
%353 = OpCompositeConstruct %v4float %350 %351 %352 %float_1
|
||||||
%346 = OpFunctionCall %v2float %Mul2 %344 %350
|
%349 = OpFunctionCall %v2float %Mul2 %347 %353
|
||||||
%351 = OpVectorShuffle %v2float %346 %346 0 1
|
%354 = OpVectorShuffle %v2float %349 %349 0 1
|
||||||
OpStore %v_TexCoord %351
|
OpStore %v_TexCoord %354
|
||||||
OpReturn
|
OpStore %tint_return_flag %true
|
||||||
%339 = OpLabel
|
OpBranch %340
|
||||||
%352 = OpLoad %v2float %a_UV1
|
%342 = OpLabel
|
||||||
%353 = OpAccessChain %_ptr_Uniform_Mat4x2_ %global1 %uint_0 %341
|
%356 = OpLoad %v2float %a_UV1
|
||||||
%354 = OpLoad %Mat4x2_ %353
|
%357 = OpAccessChain %_ptr_Uniform_Mat4x2_ %global1 %uint_0 %344
|
||||||
%355 = OpLoad %v2float %a_UV1
|
%358 = OpLoad %Mat4x2_ %357
|
||||||
%357 = OpCompositeExtract %float %355 0
|
%359 = OpLoad %v2float %a_UV1
|
||||||
%358 = OpCompositeExtract %float %355 1
|
%361 = OpCompositeExtract %float %359 0
|
||||||
%359 = OpCompositeConstruct %v4float %357 %358 %float_1 %float_1
|
%362 = OpCompositeExtract %float %359 1
|
||||||
%356 = OpFunctionCall %v2float %Mul2 %354 %359
|
%363 = OpCompositeConstruct %v4float %361 %362 %float_1 %float_1
|
||||||
%360 = OpVectorShuffle %v2float %356 %356 0 1
|
%360 = OpFunctionCall %v2float %Mul2 %358 %363
|
||||||
OpStore %v_TexCoord %360
|
%364 = OpVectorShuffle %v2float %360 %360 0 1
|
||||||
OpReturn
|
OpStore %v_TexCoord %364
|
||||||
%337 = OpLabel
|
OpStore %tint_return_flag %true
|
||||||
|
OpBranch %340
|
||||||
|
%340 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_inner = OpFunction %VertexOutput None %361
|
%main_inner = OpFunction %VertexOutput None %365
|
||||||
%a_Position = OpFunctionParameter %v3float
|
%a_Position = OpFunctionParameter %v3float
|
||||||
%a_UV = OpFunctionParameter %v2float
|
%a_UV = OpFunctionParameter %v2float
|
||||||
%a_Color = OpFunctionParameter %v4float
|
%a_Color = OpFunctionParameter %v4float
|
||||||
%a_Normal = OpFunctionParameter %v3float
|
%a_Normal = OpFunctionParameter %v3float
|
||||||
%a_PosMtxIdx = OpFunctionParameter %float
|
%a_PosMtxIdx = OpFunctionParameter %float
|
||||||
%369 = OpLabel
|
%373 = OpLabel
|
||||||
OpStore %a_Position1 %a_Position
|
OpStore %a_Position1 %a_Position
|
||||||
OpStore %a_UV1 %a_UV
|
OpStore %a_UV1 %a_UV
|
||||||
OpStore %a_Color1 %a_Color
|
OpStore %a_Color1 %a_Color
|
||||||
OpStore %a_Normal1 %a_Normal
|
OpStore %a_Normal1 %a_Normal
|
||||||
OpStore %a_PosMtxIdx1 %a_PosMtxIdx
|
OpStore %a_PosMtxIdx1 %a_PosMtxIdx
|
||||||
%370 = OpFunctionCall %void %main1
|
%374 = OpFunctionCall %void %main1
|
||||||
%371 = OpLoad %v4float %v_Color
|
%375 = OpLoad %v4float %v_Color
|
||||||
%372 = OpLoad %v2float %v_TexCoord
|
%376 = OpLoad %v2float %v_TexCoord
|
||||||
%373 = OpLoad %v4float %gl_Position
|
%377 = OpLoad %v4float %gl_Position
|
||||||
%374 = OpCompositeConstruct %VertexOutput %371 %372 %373
|
%378 = OpCompositeConstruct %VertexOutput %375 %376 %377
|
||||||
OpReturnValue %374
|
OpReturnValue %378
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %290
|
%main = OpFunction %void None %290
|
||||||
%376 = OpLabel
|
%380 = OpLabel
|
||||||
%378 = OpLoad %v3float %a_Position_1
|
%382 = OpLoad %v3float %a_Position_1
|
||||||
%379 = OpLoad %v2float %a_UV_1
|
%383 = OpLoad %v2float %a_UV_1
|
||||||
%380 = OpLoad %v4float %a_Color_1
|
%384 = OpLoad %v4float %a_Color_1
|
||||||
%381 = OpLoad %v3float %a_Normal_1
|
%385 = OpLoad %v3float %a_Normal_1
|
||||||
%382 = OpLoad %float %a_PosMtxIdx_1
|
%386 = OpLoad %float %a_PosMtxIdx_1
|
||||||
%377 = OpFunctionCall %VertexOutput %main_inner %378 %379 %380 %381 %382
|
%381 = OpFunctionCall %VertexOutput %main_inner %382 %383 %384 %385 %386
|
||||||
%383 = OpCompositeExtract %v4float %377 0
|
%387 = OpCompositeExtract %v4float %381 0
|
||||||
OpStore %v_Color_1 %383
|
OpStore %v_Color_1 %387
|
||||||
%384 = OpCompositeExtract %v2float %377 1
|
%388 = OpCompositeExtract %v2float %381 1
|
||||||
OpStore %v_TexCoord_1 %384
|
OpStore %v_TexCoord_1 %388
|
||||||
%385 = OpCompositeExtract %v4float %377 2
|
%389 = OpCompositeExtract %v4float %381 2
|
||||||
OpStore %member_1 %385
|
OpStore %member_1 %389
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 96
|
; Bound: 106
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
%46 = OpExtInstImport "GLSL.std.450"
|
%55 = OpExtInstImport "GLSL.std.450"
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID_param_1
|
OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID_param_1
|
||||||
OpExecutionMode %main LocalSize 128 1 1
|
OpExecutionMode %main LocalSize 128 1 1
|
||||||
|
@ -26,6 +26,8 @@
|
||||||
OpName %getAAtOutCoords_ "getAAtOutCoords_"
|
OpName %getAAtOutCoords_ "getAAtOutCoords_"
|
||||||
OpName %unaryOperation_f1_ "unaryOperation_f1_"
|
OpName %unaryOperation_f1_ "unaryOperation_f1_"
|
||||||
OpName %a "a"
|
OpName %a "a"
|
||||||
|
OpName %tint_return_flag "tint_return_flag"
|
||||||
|
OpName %tint_return_value "tint_return_value"
|
||||||
OpName %setOutput_i1_f1_ "setOutput_i1_f1_"
|
OpName %setOutput_i1_f1_ "setOutput_i1_f1_"
|
||||||
OpName %flatIndex "flatIndex"
|
OpName %flatIndex "flatIndex"
|
||||||
OpName %value "value"
|
OpName %value "value"
|
||||||
|
@ -83,17 +85,20 @@
|
||||||
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
|
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%30 = OpTypeFunction %float %_ptr_Function_float
|
%30 = OpTypeFunction %float %_ptr_Function_float
|
||||||
%37 = OpConstantNull %float
|
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
|
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||||
|
%38 = OpConstantNull %bool
|
||||||
|
%40 = OpConstantNull %float
|
||||||
|
%true = OpConstantTrue %bool
|
||||||
%float_0x1p_128 = OpConstant %float 0x1p+128
|
%float_0x1p_128 = OpConstant %float 0x1p+128
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%47 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_float
|
%57 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_float
|
||||||
%59 = OpTypeFunction %void
|
%69 = OpTypeFunction %void
|
||||||
%63 = OpConstantNull %int
|
%73 = OpConstantNull %int
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%_ptr_Uniform_int = OpTypePointer Uniform %int
|
%_ptr_Uniform_int = OpTypePointer Uniform %int
|
||||||
%87 = OpTypeFunction %void %v3uint
|
%97 = OpTypeFunction %void %v3uint
|
||||||
%getAAtOutCoords_ = OpFunction %float None %20
|
%getAAtOutCoords_ = OpFunction %float None %20
|
||||||
%22 = OpLabel
|
%22 = OpLabel
|
||||||
%25 = OpAccessChain %_ptr_Private_uint %gl_GlobalInvocationID %uint_0
|
%25 = OpAccessChain %_ptr_Private_uint %gl_GlobalInvocationID %uint_0
|
||||||
|
@ -105,68 +110,82 @@
|
||||||
%unaryOperation_f1_ = OpFunction %float None %30
|
%unaryOperation_f1_ = OpFunction %float None %30
|
||||||
%a = OpFunctionParameter %_ptr_Function_float
|
%a = OpFunctionParameter %_ptr_Function_float
|
||||||
%34 = OpLabel
|
%34 = OpLabel
|
||||||
%36 = OpLoad %float %a
|
%tint_return_flag = OpVariable %_ptr_Function_bool Function %38
|
||||||
%38 = OpFOrdLessThan %bool %36 %37
|
%tint_return_value = OpVariable %_ptr_Function_float Function %40
|
||||||
OpSelectionMerge %40 None
|
%42 = OpLoad %float %a
|
||||||
OpBranchConditional %38 %41 %40
|
%43 = OpFOrdLessThan %bool %42 %40
|
||||||
%41 = OpLabel
|
OpSelectionMerge %44 None
|
||||||
OpReturnValue %float_0x1p_128
|
OpBranchConditional %43 %45 %44
|
||||||
%40 = OpLabel
|
%45 = OpLabel
|
||||||
%44 = OpLoad %float %a
|
OpStore %tint_return_flag %true
|
||||||
%45 = OpExtInst %float %46 Log %44
|
OpStore %tint_return_value %float_0x1p_128
|
||||||
OpReturnValue %45
|
OpBranch %44
|
||||||
|
%44 = OpLabel
|
||||||
|
%49 = OpLoad %bool %tint_return_flag
|
||||||
|
%48 = OpLogicalNot %bool %49
|
||||||
|
OpSelectionMerge %50 None
|
||||||
|
OpBranchConditional %48 %51 %50
|
||||||
|
%51 = OpLabel
|
||||||
|
%53 = OpLoad %float %a
|
||||||
|
OpStore %tint_return_flag %true
|
||||||
|
%54 = OpExtInst %float %55 Log %53
|
||||||
|
OpStore %tint_return_value %54
|
||||||
|
OpBranch %50
|
||||||
|
%50 = OpLabel
|
||||||
|
%56 = OpLoad %float %tint_return_value
|
||||||
|
OpReturnValue %56
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%setOutput_i1_f1_ = OpFunction %void None %47
|
%setOutput_i1_f1_ = OpFunction %void None %57
|
||||||
%flatIndex = OpFunctionParameter %_ptr_Function_int
|
%flatIndex = OpFunctionParameter %_ptr_Function_int
|
||||||
%value = OpFunctionParameter %_ptr_Function_float
|
%value = OpFunctionParameter %_ptr_Function_float
|
||||||
%53 = OpLabel
|
%63 = OpLabel
|
||||||
%55 = OpLoad %int %flatIndex
|
%65 = OpLoad %int %flatIndex
|
||||||
%57 = OpLoad %float %value
|
%67 = OpLoad %float %value
|
||||||
%58 = OpAccessChain %_ptr_StorageBuffer_float %x_16 %uint_0 %55
|
%68 = OpAccessChain %_ptr_StorageBuffer_float %x_16 %uint_0 %65
|
||||||
OpStore %58 %57
|
OpStore %68 %67
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_1 = OpFunction %void None %59
|
%main_1 = OpFunction %void None %69
|
||||||
%61 = OpLabel
|
%71 = OpLabel
|
||||||
%index = OpVariable %_ptr_Function_int Function %63
|
%index = OpVariable %_ptr_Function_int Function %73
|
||||||
%a_1 = OpVariable %_ptr_Function_float Function %37
|
%a_1 = OpVariable %_ptr_Function_float Function %40
|
||||||
%param = OpVariable %_ptr_Function_float Function %37
|
%param = OpVariable %_ptr_Function_float Function %40
|
||||||
%param_1 = OpVariable %_ptr_Function_int Function %63
|
%param_1 = OpVariable %_ptr_Function_int Function %73
|
||||||
%param_2 = OpVariable %_ptr_Function_float Function %37
|
%param_2 = OpVariable %_ptr_Function_float Function %40
|
||||||
%68 = OpAccessChain %_ptr_Private_uint %gl_GlobalInvocationID %uint_0
|
%78 = OpAccessChain %_ptr_Private_uint %gl_GlobalInvocationID %uint_0
|
||||||
%69 = OpLoad %uint %68
|
%79 = OpLoad %uint %78
|
||||||
%70 = OpBitcast %int %69
|
%80 = OpBitcast %int %79
|
||||||
OpStore %index %70
|
OpStore %index %80
|
||||||
%71 = OpLoad %int %index
|
%81 = OpLoad %int %index
|
||||||
%74 = OpAccessChain %_ptr_Uniform_int %x_24 %uint_4
|
%84 = OpAccessChain %_ptr_Uniform_int %x_24 %uint_4
|
||||||
%75 = OpLoad %int %74
|
%85 = OpLoad %int %84
|
||||||
%76 = OpSLessThan %bool %71 %75
|
%86 = OpSLessThan %bool %81 %85
|
||||||
OpSelectionMerge %77 None
|
OpSelectionMerge %87 None
|
||||||
OpBranchConditional %76 %78 %77
|
OpBranchConditional %86 %88 %87
|
||||||
%78 = OpLabel
|
%88 = OpLabel
|
||||||
%79 = OpFunctionCall %float %getAAtOutCoords_
|
%89 = OpFunctionCall %float %getAAtOutCoords_
|
||||||
OpStore %a_1 %79
|
OpStore %a_1 %89
|
||||||
%80 = OpLoad %float %a_1
|
%90 = OpLoad %float %a_1
|
||||||
OpStore %param %80
|
OpStore %param %90
|
||||||
%81 = OpFunctionCall %float %unaryOperation_f1_ %param
|
%91 = OpFunctionCall %float %unaryOperation_f1_ %param
|
||||||
%83 = OpLoad %int %index
|
%93 = OpLoad %int %index
|
||||||
OpStore %param_1 %83
|
OpStore %param_1 %93
|
||||||
OpStore %param_2 %81
|
OpStore %param_2 %91
|
||||||
%84 = OpFunctionCall %void %setOutput_i1_f1_ %param_1 %param_2
|
%94 = OpFunctionCall %void %setOutput_i1_f1_ %param_1 %param_2
|
||||||
OpBranch %77
|
OpBranch %87
|
||||||
%77 = OpLabel
|
%87 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_inner = OpFunction %void None %87
|
%main_inner = OpFunction %void None %97
|
||||||
%gl_GlobalInvocationID_param = OpFunctionParameter %v3uint
|
%gl_GlobalInvocationID_param = OpFunctionParameter %v3uint
|
||||||
%90 = OpLabel
|
%100 = OpLabel
|
||||||
OpStore %gl_GlobalInvocationID %gl_GlobalInvocationID_param
|
OpStore %gl_GlobalInvocationID %gl_GlobalInvocationID_param
|
||||||
%91 = OpFunctionCall %void %main_1
|
%101 = OpFunctionCall %void %main_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %59
|
%main = OpFunction %void None %69
|
||||||
%93 = OpLabel
|
%103 = OpLabel
|
||||||
%95 = OpLoad %v3uint %gl_GlobalInvocationID_param_1
|
%105 = OpLoad %v3uint %gl_GlobalInvocationID_param_1
|
||||||
%94 = OpFunctionCall %void %main_inner %95
|
%104 = OpFunctionCall %void %main_inner %105
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 102
|
; Bound: 112
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
%42 = OpExtInstImport "GLSL.std.450"
|
%51 = OpExtInstImport "GLSL.std.450"
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID_param_1
|
OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID_param_1
|
||||||
OpExecutionMode %main LocalSize 1 1 1
|
OpExecutionMode %main LocalSize 1 1 1
|
||||||
|
@ -27,6 +27,8 @@
|
||||||
OpName %binaryOperation_f1_f1_ "binaryOperation_f1_f1_"
|
OpName %binaryOperation_f1_f1_ "binaryOperation_f1_f1_"
|
||||||
OpName %a "a"
|
OpName %a "a"
|
||||||
OpName %b "b"
|
OpName %b "b"
|
||||||
|
OpName %tint_return_flag "tint_return_flag"
|
||||||
|
OpName %tint_return_value "tint_return_value"
|
||||||
OpName %x_26 "x_26"
|
OpName %x_26 "x_26"
|
||||||
OpName %main_1 "main_1"
|
OpName %main_1 "main_1"
|
||||||
OpName %index "index"
|
OpName %index "index"
|
||||||
|
@ -83,93 +85,110 @@
|
||||||
%x_46 = OpVariable %_ptr_Uniform_Uniforms Uniform
|
%x_46 = OpVariable %_ptr_Uniform_Uniforms Uniform
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%23 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
|
%23 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
|
||||||
%30 = OpConstantNull %float
|
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
|
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||||
|
%32 = OpConstantNull %bool
|
||||||
|
%34 = OpConstantNull %float
|
||||||
|
%true = OpConstantTrue %bool
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%float_2 = OpConstant %float 2
|
%float_2 = OpConstant %float 2
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%69 = OpTypeFunction %void
|
%79 = OpTypeFunction %void
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%75 = OpConstantNull %int
|
%85 = OpConstantNull %int
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
%_ptr_Private_uint = OpTypePointer Private %uint
|
||||||
%int_n10 = OpConstant %int -10
|
%int_n10 = OpConstant %int -10
|
||||||
%float_n4 = OpConstant %float -4
|
%float_n4 = OpConstant %float -4
|
||||||
%float_n3 = OpConstant %float -3
|
%float_n3 = OpConstant %float -3
|
||||||
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
|
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
|
||||||
%93 = OpTypeFunction %void %v3uint
|
%103 = OpTypeFunction %void %v3uint
|
||||||
%binaryOperation_f1_f1_ = OpFunction %float None %23
|
%binaryOperation_f1_f1_ = OpFunction %float None %23
|
||||||
%a = OpFunctionParameter %_ptr_Function_float
|
%a = OpFunctionParameter %_ptr_Function_float
|
||||||
%b = OpFunctionParameter %_ptr_Function_float
|
%b = OpFunctionParameter %_ptr_Function_float
|
||||||
%28 = OpLabel
|
%28 = OpLabel
|
||||||
%x_26 = OpVariable %_ptr_Function_float Function %30
|
%tint_return_flag = OpVariable %_ptr_Function_bool Function %32
|
||||||
%32 = OpLoad %float %b
|
%tint_return_value = OpVariable %_ptr_Function_float Function %34
|
||||||
%33 = OpFOrdEqual %bool %32 %30
|
%x_26 = OpVariable %_ptr_Function_float Function %34
|
||||||
OpSelectionMerge %35 None
|
%37 = OpLoad %float %b
|
||||||
OpBranchConditional %33 %36 %35
|
%38 = OpFOrdEqual %bool %37 %34
|
||||||
%36 = OpLabel
|
OpSelectionMerge %39 None
|
||||||
OpReturnValue %float_1
|
OpBranchConditional %38 %40 %39
|
||||||
%35 = OpLabel
|
%40 = OpLabel
|
||||||
%39 = OpLoad %float %b
|
OpStore %tint_return_flag %true
|
||||||
%45 = OpFDiv %float %39 %float_2
|
OpStore %tint_return_value %float_1
|
||||||
%44 = OpExtInst %float %42 Floor %45
|
OpBranch %39
|
||||||
%46 = OpFMul %float %float_2 %44
|
%39 = OpLabel
|
||||||
%47 = OpFSub %float %39 %46
|
%44 = OpLoad %bool %tint_return_flag
|
||||||
%41 = OpExtInst %float %42 RoundEven %47
|
%43 = OpLogicalNot %bool %44
|
||||||
%48 = OpFOrdEqual %bool %41 %float_1
|
OpSelectionMerge %45 None
|
||||||
%40 = OpLogicalNot %bool %48
|
OpBranchConditional %43 %46 %45
|
||||||
OpSelectionMerge %49 None
|
%46 = OpLabel
|
||||||
OpBranchConditional %40 %50 %51
|
%48 = OpLoad %float %b
|
||||||
%50 = OpLabel
|
%54 = OpFDiv %float %48 %float_2
|
||||||
%53 = OpLoad %float %a
|
%53 = OpExtInst %float %51 Floor %54
|
||||||
%55 = OpLoad %float %b
|
%55 = OpFMul %float %float_2 %53
|
||||||
%57 = OpExtInst %float %42 FAbs %53
|
%56 = OpFSub %float %48 %55
|
||||||
%56 = OpExtInst %float %42 Pow %57 %55
|
%50 = OpExtInst %float %51 RoundEven %56
|
||||||
OpStore %x_26 %56
|
%57 = OpFOrdEqual %bool %50 %float_1
|
||||||
OpBranch %49
|
%49 = OpLogicalNot %bool %57
|
||||||
%51 = OpLabel
|
OpSelectionMerge %58 None
|
||||||
%59 = OpLoad %float %a
|
OpBranchConditional %49 %59 %60
|
||||||
%61 = OpLoad %float %a
|
%59 = OpLabel
|
||||||
%63 = OpLoad %float %b
|
%62 = OpLoad %float %a
|
||||||
%64 = OpExtInst %float %42 FSign %59
|
%64 = OpLoad %float %b
|
||||||
%66 = OpExtInst %float %42 FAbs %61
|
%66 = OpExtInst %float %51 FAbs %62
|
||||||
%65 = OpExtInst %float %42 Pow %66 %63
|
%65 = OpExtInst %float %51 Pow %66 %64
|
||||||
%67 = OpFMul %float %64 %65
|
OpStore %x_26 %65
|
||||||
OpStore %x_26 %67
|
OpBranch %58
|
||||||
OpBranch %49
|
%60 = OpLabel
|
||||||
%49 = OpLabel
|
%68 = OpLoad %float %a
|
||||||
%68 = OpLoad %float %x_26
|
%70 = OpLoad %float %a
|
||||||
OpReturnValue %68
|
%72 = OpLoad %float %b
|
||||||
|
%73 = OpExtInst %float %51 FSign %68
|
||||||
|
%75 = OpExtInst %float %51 FAbs %70
|
||||||
|
%74 = OpExtInst %float %51 Pow %75 %72
|
||||||
|
%76 = OpFMul %float %73 %74
|
||||||
|
OpStore %x_26 %76
|
||||||
|
OpBranch %58
|
||||||
|
%58 = OpLabel
|
||||||
|
%77 = OpLoad %float %x_26
|
||||||
|
OpStore %tint_return_flag %true
|
||||||
|
OpStore %tint_return_value %77
|
||||||
|
OpBranch %45
|
||||||
|
%45 = OpLabel
|
||||||
|
%78 = OpLoad %float %tint_return_value
|
||||||
|
OpReturnValue %78
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_1 = OpFunction %void None %69
|
%main_1 = OpFunction %void None %79
|
||||||
%72 = OpLabel
|
%82 = OpLabel
|
||||||
%index = OpVariable %_ptr_Function_int Function %75
|
%index = OpVariable %_ptr_Function_int Function %85
|
||||||
%a_1 = OpVariable %_ptr_Function_int Function %75
|
%a_1 = OpVariable %_ptr_Function_int Function %85
|
||||||
%param = OpVariable %_ptr_Function_float Function %30
|
%param = OpVariable %_ptr_Function_float Function %34
|
||||||
%param_1 = OpVariable %_ptr_Function_float Function %30
|
%param_1 = OpVariable %_ptr_Function_float Function %34
|
||||||
%81 = OpAccessChain %_ptr_Private_uint %gl_GlobalInvocationID %uint_0
|
%91 = OpAccessChain %_ptr_Private_uint %gl_GlobalInvocationID %uint_0
|
||||||
%82 = OpLoad %uint %81
|
%92 = OpLoad %uint %91
|
||||||
%83 = OpBitcast %int %82
|
%93 = OpBitcast %int %92
|
||||||
OpStore %index %83
|
OpStore %index %93
|
||||||
OpStore %a_1 %int_n10
|
OpStore %a_1 %int_n10
|
||||||
%85 = OpLoad %int %index
|
%95 = OpLoad %int %index
|
||||||
OpStore %param %float_n4
|
OpStore %param %float_n4
|
||||||
OpStore %param_1 %float_n3
|
OpStore %param_1 %float_n3
|
||||||
%88 = OpFunctionCall %float %binaryOperation_f1_f1_ %param %param_1
|
%98 = OpFunctionCall %float %binaryOperation_f1_f1_ %param %param_1
|
||||||
%92 = OpAccessChain %_ptr_StorageBuffer_float %resultMatrix %uint_0 %85
|
%102 = OpAccessChain %_ptr_StorageBuffer_float %resultMatrix %uint_0 %95
|
||||||
OpStore %92 %88
|
OpStore %102 %98
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_inner = OpFunction %void None %93
|
%main_inner = OpFunction %void None %103
|
||||||
%gl_GlobalInvocationID_param = OpFunctionParameter %v3uint
|
%gl_GlobalInvocationID_param = OpFunctionParameter %v3uint
|
||||||
%96 = OpLabel
|
%106 = OpLabel
|
||||||
OpStore %gl_GlobalInvocationID %gl_GlobalInvocationID_param
|
OpStore %gl_GlobalInvocationID %gl_GlobalInvocationID_param
|
||||||
%97 = OpFunctionCall %void %main_1
|
%107 = OpFunctionCall %void %main_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %69
|
%main = OpFunction %void None %79
|
||||||
%99 = OpLabel
|
%109 = OpLabel
|
||||||
%101 = OpLoad %v3uint %gl_GlobalInvocationID_param_1
|
%111 = OpLoad %v3uint %gl_GlobalInvocationID_param_1
|
||||||
%100 = OpFunctionCall %void %main_inner %101
|
%110 = OpFunctionCall %void %main_inner %111
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 26
|
; Bound: 32
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -9,42 +9,52 @@
|
||||||
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
||||||
OpName %unused_entry_point "unused_entry_point"
|
OpName %unused_entry_point "unused_entry_point"
|
||||||
OpName %f "f"
|
OpName %f "f"
|
||||||
|
OpName %tint_return_flag "tint_return_flag"
|
||||||
|
OpName %tint_return_value "tint_return_value"
|
||||||
OpName %i "i"
|
OpName %i "i"
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%1 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%5 = OpTypeFunction %int
|
%5 = OpTypeFunction %int
|
||||||
|
%bool = OpTypeBool
|
||||||
|
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||||
|
%12 = OpConstantNull %bool
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%11 = OpConstantNull %int
|
%15 = OpConstantNull %int
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
%int_4 = OpConstant %int 4
|
%int_4 = OpConstant %int 4
|
||||||
%bool = OpTypeBool
|
%true = OpConstantTrue %bool
|
||||||
%unused_entry_point = OpFunction %void None %1
|
%unused_entry_point = OpFunction %void None %1
|
||||||
%4 = OpLabel
|
%4 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%f = OpFunction %int None %5
|
%f = OpFunction %int None %5
|
||||||
%8 = OpLabel
|
%8 = OpLabel
|
||||||
%i = OpVariable %_ptr_Function_int Function %11
|
%tint_return_flag = OpVariable %_ptr_Function_bool Function %12
|
||||||
OpBranch %12
|
%tint_return_value = OpVariable %_ptr_Function_int Function %15
|
||||||
%12 = OpLabel
|
%i = OpVariable %_ptr_Function_int Function %15
|
||||||
OpLoopMerge %13 %14 None
|
OpBranch %17
|
||||||
OpBranch %15
|
%17 = OpLabel
|
||||||
%15 = OpLabel
|
OpLoopMerge %18 %19 None
|
||||||
%16 = OpLoad %int %i
|
OpBranch %20
|
||||||
%18 = OpIAdd %int %16 %int_1
|
%20 = OpLabel
|
||||||
OpStore %i %18
|
%21 = OpLoad %int %i
|
||||||
%19 = OpLoad %int %i
|
%23 = OpIAdd %int %21 %int_1
|
||||||
%21 = OpSGreaterThan %bool %19 %int_4
|
OpStore %i %23
|
||||||
OpSelectionMerge %23 None
|
%24 = OpLoad %int %i
|
||||||
OpBranchConditional %21 %24 %23
|
%26 = OpSGreaterThan %bool %24 %int_4
|
||||||
%24 = OpLabel
|
OpSelectionMerge %27 None
|
||||||
%25 = OpLoad %int %i
|
OpBranchConditional %26 %28 %27
|
||||||
OpReturnValue %25
|
%28 = OpLabel
|
||||||
%23 = OpLabel
|
OpStore %tint_return_flag %true
|
||||||
OpBranch %14
|
%30 = OpLoad %int %i
|
||||||
%14 = OpLabel
|
OpStore %tint_return_value %30
|
||||||
OpBranch %12
|
OpBranch %18
|
||||||
%13 = OpLabel
|
%27 = OpLabel
|
||||||
OpReturnValue %11
|
OpBranch %19
|
||||||
|
%19 = OpLabel
|
||||||
|
OpBranch %17
|
||||||
|
%18 = OpLabel
|
||||||
|
%31 = OpLoad %int %tint_return_value
|
||||||
|
OpReturnValue %31
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 29
|
; Bound: 39
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -9,15 +9,20 @@
|
||||||
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
||||||
OpName %unused_entry_point "unused_entry_point"
|
OpName %unused_entry_point "unused_entry_point"
|
||||||
OpName %f "f"
|
OpName %f "f"
|
||||||
|
OpName %tint_return_flag "tint_return_flag"
|
||||||
|
OpName %tint_return_value "tint_return_value"
|
||||||
OpName %i "i"
|
OpName %i "i"
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%1 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%5 = OpTypeFunction %int
|
%5 = OpTypeFunction %int
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
|
||||||
%11 = OpConstantNull %int
|
|
||||||
%int_4 = OpConstant %int 4
|
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
|
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||||
|
%12 = OpConstantNull %bool
|
||||||
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
|
%15 = OpConstantNull %int
|
||||||
|
%int_4 = OpConstant %int 4
|
||||||
|
%true = OpConstantTrue %bool
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
%unused_entry_point = OpFunction %void None %1
|
%unused_entry_point = OpFunction %void None %1
|
||||||
%4 = OpLabel
|
%4 = OpLabel
|
||||||
|
@ -25,29 +30,43 @@
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%f = OpFunction %int None %5
|
%f = OpFunction %int None %5
|
||||||
%8 = OpLabel
|
%8 = OpLabel
|
||||||
%i = OpVariable %_ptr_Function_int Function %11
|
%tint_return_flag = OpVariable %_ptr_Function_bool Function %12
|
||||||
OpBranch %12
|
%tint_return_value = OpVariable %_ptr_Function_int Function %15
|
||||||
%12 = OpLabel
|
%i = OpVariable %_ptr_Function_int Function %15
|
||||||
OpLoopMerge %13 %14 None
|
OpBranch %17
|
||||||
OpBranch %15
|
%17 = OpLabel
|
||||||
%15 = OpLabel
|
OpLoopMerge %18 %19 None
|
||||||
%16 = OpLoad %int %i
|
OpBranch %20
|
||||||
%18 = OpSGreaterThan %bool %16 %int_4
|
|
||||||
OpSelectionMerge %20 None
|
|
||||||
OpBranchConditional %18 %21 %20
|
|
||||||
%21 = OpLabel
|
|
||||||
%22 = OpLoad %int %i
|
|
||||||
OpReturnValue %22
|
|
||||||
%20 = OpLabel
|
%20 = OpLabel
|
||||||
OpBranch %14
|
%21 = OpLoad %int %i
|
||||||
%14 = OpLabel
|
%23 = OpSGreaterThan %bool %21 %int_4
|
||||||
%23 = OpLoad %int %i
|
OpSelectionMerge %24 None
|
||||||
%25 = OpIAdd %int %23 %int_1
|
OpBranchConditional %23 %25 %24
|
||||||
OpStore %i %25
|
%25 = OpLabel
|
||||||
%26 = OpLoad %int %i
|
OpStore %tint_return_flag %true
|
||||||
%27 = OpIEqual %bool %26 %int_4
|
%27 = OpLoad %int %i
|
||||||
OpBranchConditional %27 %13 %12
|
OpStore %tint_return_value %27
|
||||||
%13 = OpLabel
|
OpBranch %18
|
||||||
|
%24 = OpLabel
|
||||||
|
OpBranch %19
|
||||||
|
%19 = OpLabel
|
||||||
%28 = OpLoad %int %i
|
%28 = OpLoad %int %i
|
||||||
OpReturnValue %28
|
%30 = OpIAdd %int %28 %int_1
|
||||||
|
OpStore %i %30
|
||||||
|
%31 = OpLoad %int %i
|
||||||
|
%32 = OpIEqual %bool %31 %int_4
|
||||||
|
OpBranchConditional %32 %18 %17
|
||||||
|
%18 = OpLabel
|
||||||
|
%34 = OpLoad %bool %tint_return_flag
|
||||||
|
%33 = OpLogicalNot %bool %34
|
||||||
|
OpSelectionMerge %35 None
|
||||||
|
OpBranchConditional %33 %36 %35
|
||||||
|
%36 = OpLabel
|
||||||
|
OpStore %tint_return_flag %true
|
||||||
|
%37 = OpLoad %int %i
|
||||||
|
OpStore %tint_return_value %37
|
||||||
|
OpBranch %35
|
||||||
|
%35 = OpLabel
|
||||||
|
%38 = OpLoad %int %tint_return_value
|
||||||
|
OpReturnValue %38
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 26
|
; Bound: 32
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -9,15 +9,20 @@
|
||||||
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
||||||
OpName %unused_entry_point "unused_entry_point"
|
OpName %unused_entry_point "unused_entry_point"
|
||||||
OpName %f "f"
|
OpName %f "f"
|
||||||
|
OpName %tint_return_flag "tint_return_flag"
|
||||||
|
OpName %tint_return_value "tint_return_value"
|
||||||
OpName %i "i"
|
OpName %i "i"
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%1 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%5 = OpTypeFunction %int
|
%5 = OpTypeFunction %int
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
|
||||||
%11 = OpConstantNull %int
|
|
||||||
%int_4 = OpConstant %int 4
|
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
|
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||||
|
%12 = OpConstantNull %bool
|
||||||
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
|
%15 = OpConstantNull %int
|
||||||
|
%int_4 = OpConstant %int 4
|
||||||
|
%true = OpConstantTrue %bool
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
%unused_entry_point = OpFunction %void None %1
|
%unused_entry_point = OpFunction %void None %1
|
||||||
%4 = OpLabel
|
%4 = OpLabel
|
||||||
|
@ -25,26 +30,31 @@
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%f = OpFunction %int None %5
|
%f = OpFunction %int None %5
|
||||||
%8 = OpLabel
|
%8 = OpLabel
|
||||||
%i = OpVariable %_ptr_Function_int Function %11
|
%tint_return_flag = OpVariable %_ptr_Function_bool Function %12
|
||||||
OpBranch %12
|
%tint_return_value = OpVariable %_ptr_Function_int Function %15
|
||||||
%12 = OpLabel
|
%i = OpVariable %_ptr_Function_int Function %15
|
||||||
OpLoopMerge %13 %14 None
|
OpBranch %17
|
||||||
OpBranch %15
|
%17 = OpLabel
|
||||||
%15 = OpLabel
|
OpLoopMerge %18 %19 None
|
||||||
%16 = OpLoad %int %i
|
OpBranch %20
|
||||||
%18 = OpSGreaterThan %bool %16 %int_4
|
|
||||||
OpSelectionMerge %20 None
|
|
||||||
OpBranchConditional %18 %21 %20
|
|
||||||
%21 = OpLabel
|
|
||||||
%22 = OpLoad %int %i
|
|
||||||
OpReturnValue %22
|
|
||||||
%20 = OpLabel
|
%20 = OpLabel
|
||||||
OpBranch %14
|
%21 = OpLoad %int %i
|
||||||
%14 = OpLabel
|
%23 = OpSGreaterThan %bool %21 %int_4
|
||||||
%23 = OpLoad %int %i
|
OpSelectionMerge %24 None
|
||||||
%25 = OpIAdd %int %23 %int_1
|
OpBranchConditional %23 %25 %24
|
||||||
OpStore %i %25
|
%25 = OpLabel
|
||||||
OpBranch %12
|
OpStore %tint_return_flag %true
|
||||||
%13 = OpLabel
|
%27 = OpLoad %int %i
|
||||||
OpReturnValue %11
|
OpStore %tint_return_value %27
|
||||||
|
OpBranch %18
|
||||||
|
%24 = OpLabel
|
||||||
|
OpBranch %19
|
||||||
|
%19 = OpLabel
|
||||||
|
%28 = OpLoad %int %i
|
||||||
|
%30 = OpIAdd %int %28 %int_1
|
||||||
|
OpStore %i %30
|
||||||
|
OpBranch %17
|
||||||
|
%18 = OpLabel
|
||||||
|
%31 = OpLoad %int %tint_return_value
|
||||||
|
OpReturnValue %31
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 37
|
; Bound: 43
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -9,17 +9,22 @@
|
||||||
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
||||||
OpName %unused_entry_point "unused_entry_point"
|
OpName %unused_entry_point "unused_entry_point"
|
||||||
OpName %f "f"
|
OpName %f "f"
|
||||||
|
OpName %tint_return_flag "tint_return_flag"
|
||||||
|
OpName %tint_return_value "tint_return_value"
|
||||||
OpName %i "i"
|
OpName %i "i"
|
||||||
OpName %j "j"
|
OpName %j "j"
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%1 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%5 = OpTypeFunction %int
|
%5 = OpTypeFunction %int
|
||||||
|
%bool = OpTypeBool
|
||||||
|
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||||
|
%12 = OpConstantNull %bool
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%11 = OpConstantNull %int
|
%15 = OpConstantNull %int
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
%int_4 = OpConstant %int 4
|
%int_4 = OpConstant %int 4
|
||||||
%bool = OpTypeBool
|
%true = OpConstantTrue %bool
|
||||||
%int_2 = OpConstant %int 2
|
%int_2 = OpConstant %int 2
|
||||||
%unused_entry_point = OpFunction %void None %1
|
%unused_entry_point = OpFunction %void None %1
|
||||||
%4 = OpLabel
|
%4 = OpLabel
|
||||||
|
@ -27,45 +32,52 @@
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%f = OpFunction %int None %5
|
%f = OpFunction %int None %5
|
||||||
%8 = OpLabel
|
%8 = OpLabel
|
||||||
%i = OpVariable %_ptr_Function_int Function %11
|
%tint_return_flag = OpVariable %_ptr_Function_bool Function %12
|
||||||
%j = OpVariable %_ptr_Function_int Function %11
|
%tint_return_value = OpVariable %_ptr_Function_int Function %15
|
||||||
OpBranch %13
|
%i = OpVariable %_ptr_Function_int Function %15
|
||||||
%13 = OpLabel
|
%j = OpVariable %_ptr_Function_int Function %15
|
||||||
OpLoopMerge %14 %15 None
|
OpBranch %18
|
||||||
OpBranch %16
|
%18 = OpLabel
|
||||||
%16 = OpLabel
|
OpLoopMerge %19 %20 None
|
||||||
%17 = OpLoad %int %i
|
OpBranch %21
|
||||||
%19 = OpIAdd %int %17 %int_1
|
%21 = OpLabel
|
||||||
OpStore %i %19
|
%22 = OpLoad %int %i
|
||||||
%20 = OpLoad %int %i
|
%24 = OpIAdd %int %22 %int_1
|
||||||
%22 = OpSGreaterThan %bool %20 %int_4
|
OpStore %i %24
|
||||||
OpSelectionMerge %24 None
|
%25 = OpLoad %int %i
|
||||||
OpBranchConditional %22 %25 %24
|
%27 = OpSGreaterThan %bool %25 %int_4
|
||||||
%25 = OpLabel
|
OpSelectionMerge %28 None
|
||||||
OpReturnValue %int_1
|
OpBranchConditional %27 %29 %28
|
||||||
%24 = OpLabel
|
|
||||||
OpBranch %26
|
|
||||||
%26 = OpLabel
|
|
||||||
OpLoopMerge %27 %28 None
|
|
||||||
OpBranch %29
|
|
||||||
%29 = OpLabel
|
%29 = OpLabel
|
||||||
%30 = OpLoad %int %j
|
OpStore %tint_return_flag %true
|
||||||
%31 = OpIAdd %int %30 %int_1
|
OpStore %tint_return_value %int_1
|
||||||
OpStore %j %31
|
OpBranch %19
|
||||||
%32 = OpLoad %int %j
|
|
||||||
%33 = OpSGreaterThan %bool %32 %int_4
|
|
||||||
OpSelectionMerge %34 None
|
|
||||||
OpBranchConditional %33 %35 %34
|
|
||||||
%35 = OpLabel
|
|
||||||
OpReturnValue %int_2
|
|
||||||
%34 = OpLabel
|
|
||||||
OpBranch %28
|
|
||||||
%28 = OpLabel
|
%28 = OpLabel
|
||||||
OpBranch %26
|
OpBranch %31
|
||||||
%27 = OpLabel
|
%31 = OpLabel
|
||||||
OpBranch %15
|
OpLoopMerge %32 %33 None
|
||||||
%15 = OpLabel
|
OpBranch %34
|
||||||
OpBranch %13
|
%34 = OpLabel
|
||||||
%14 = OpLabel
|
%35 = OpLoad %int %j
|
||||||
OpReturnValue %11
|
%36 = OpIAdd %int %35 %int_1
|
||||||
|
OpStore %j %36
|
||||||
|
%37 = OpLoad %int %j
|
||||||
|
%38 = OpSGreaterThan %bool %37 %int_4
|
||||||
|
OpSelectionMerge %39 None
|
||||||
|
OpBranchConditional %38 %40 %39
|
||||||
|
%40 = OpLabel
|
||||||
|
OpStore %tint_return_flag %true
|
||||||
|
OpStore %tint_return_value %int_2
|
||||||
|
OpBranch %32
|
||||||
|
%39 = OpLabel
|
||||||
|
OpBranch %33
|
||||||
|
%33 = OpLabel
|
||||||
|
OpBranch %31
|
||||||
|
%32 = OpLabel
|
||||||
|
OpBranch %19
|
||||||
|
%20 = OpLabel
|
||||||
|
OpBranch %18
|
||||||
|
%19 = OpLabel
|
||||||
|
%42 = OpLoad %int %tint_return_value
|
||||||
|
OpReturnValue %42
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 37
|
; Bound: 43
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -9,16 +9,21 @@
|
||||||
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
||||||
OpName %unused_entry_point "unused_entry_point"
|
OpName %unused_entry_point "unused_entry_point"
|
||||||
OpName %f "f"
|
OpName %f "f"
|
||||||
|
OpName %tint_return_flag "tint_return_flag"
|
||||||
|
OpName %tint_return_value "tint_return_value"
|
||||||
OpName %i "i"
|
OpName %i "i"
|
||||||
OpName %j "j"
|
OpName %j "j"
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%1 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%5 = OpTypeFunction %int
|
%5 = OpTypeFunction %int
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
|
||||||
%11 = OpConstantNull %int
|
|
||||||
%int_4 = OpConstant %int 4
|
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
|
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||||
|
%12 = OpConstantNull %bool
|
||||||
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
|
%15 = OpConstantNull %int
|
||||||
|
%int_4 = OpConstant %int 4
|
||||||
|
%true = OpConstantTrue %bool
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
%int_2 = OpConstant %int 2
|
%int_2 = OpConstant %int 2
|
||||||
%unused_entry_point = OpFunction %void None %1
|
%unused_entry_point = OpFunction %void None %1
|
||||||
|
@ -27,45 +32,52 @@
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%f = OpFunction %int None %5
|
%f = OpFunction %int None %5
|
||||||
%8 = OpLabel
|
%8 = OpLabel
|
||||||
%i = OpVariable %_ptr_Function_int Function %11
|
%tint_return_flag = OpVariable %_ptr_Function_bool Function %12
|
||||||
%j = OpVariable %_ptr_Function_int Function %11
|
%tint_return_value = OpVariable %_ptr_Function_int Function %15
|
||||||
OpBranch %13
|
%i = OpVariable %_ptr_Function_int Function %15
|
||||||
%13 = OpLabel
|
%j = OpVariable %_ptr_Function_int Function %15
|
||||||
OpLoopMerge %14 %15 None
|
OpBranch %18
|
||||||
OpBranch %16
|
%18 = OpLabel
|
||||||
%16 = OpLabel
|
OpLoopMerge %19 %20 None
|
||||||
%17 = OpLoad %int %i
|
OpBranch %21
|
||||||
%19 = OpSGreaterThan %bool %17 %int_4
|
|
||||||
OpSelectionMerge %21 None
|
|
||||||
OpBranchConditional %19 %22 %21
|
|
||||||
%22 = OpLabel
|
|
||||||
OpReturnValue %int_1
|
|
||||||
%21 = OpLabel
|
%21 = OpLabel
|
||||||
OpBranch %24
|
%22 = OpLoad %int %i
|
||||||
%24 = OpLabel
|
%24 = OpSGreaterThan %bool %22 %int_4
|
||||||
OpLoopMerge %25 %26 None
|
OpSelectionMerge %25 None
|
||||||
OpBranch %27
|
OpBranchConditional %24 %26 %25
|
||||||
%27 = OpLabel
|
|
||||||
%28 = OpLoad %int %j
|
|
||||||
%29 = OpSGreaterThan %bool %28 %int_4
|
|
||||||
OpSelectionMerge %30 None
|
|
||||||
OpBranchConditional %29 %31 %30
|
|
||||||
%31 = OpLabel
|
|
||||||
OpReturnValue %int_2
|
|
||||||
%30 = OpLabel
|
|
||||||
OpBranch %26
|
|
||||||
%26 = OpLabel
|
%26 = OpLabel
|
||||||
%33 = OpLoad %int %j
|
OpStore %tint_return_flag %true
|
||||||
%34 = OpIAdd %int %33 %int_1
|
OpStore %tint_return_value %int_1
|
||||||
OpStore %j %34
|
OpBranch %19
|
||||||
OpBranch %24
|
|
||||||
%25 = OpLabel
|
%25 = OpLabel
|
||||||
OpBranch %15
|
OpBranch %29
|
||||||
%15 = OpLabel
|
%29 = OpLabel
|
||||||
%35 = OpLoad %int %i
|
OpLoopMerge %30 %31 None
|
||||||
%36 = OpIAdd %int %35 %int_1
|
OpBranch %32
|
||||||
OpStore %i %36
|
%32 = OpLabel
|
||||||
OpBranch %13
|
%33 = OpLoad %int %j
|
||||||
%14 = OpLabel
|
%34 = OpSGreaterThan %bool %33 %int_4
|
||||||
OpReturnValue %11
|
OpSelectionMerge %35 None
|
||||||
|
OpBranchConditional %34 %36 %35
|
||||||
|
%36 = OpLabel
|
||||||
|
OpStore %tint_return_flag %true
|
||||||
|
OpStore %tint_return_value %int_2
|
||||||
|
OpBranch %30
|
||||||
|
%35 = OpLabel
|
||||||
|
OpBranch %31
|
||||||
|
%31 = OpLabel
|
||||||
|
%38 = OpLoad %int %j
|
||||||
|
%39 = OpIAdd %int %38 %int_1
|
||||||
|
OpStore %j %39
|
||||||
|
OpBranch %29
|
||||||
|
%30 = OpLabel
|
||||||
|
OpBranch %19
|
||||||
|
%20 = OpLabel
|
||||||
|
%40 = OpLoad %int %i
|
||||||
|
%41 = OpIAdd %int %40 %int_1
|
||||||
|
OpStore %i %41
|
||||||
|
OpBranch %18
|
||||||
|
%19 = OpLabel
|
||||||
|
%42 = OpLoad %int %tint_return_value
|
||||||
|
OpReturnValue %42
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
Loading…
Reference in New Issue