• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1               OpCapability Shader
2          %1 = OpExtInstImport "GLSL.std.450"
3               OpMemoryModel Logical GLSL450
4               OpEntryPoint Fragment %main "main" %sk_FragColor
5               OpExecutionMode %main OriginUpperLeft
6               OpName %testPushConstants "testPushConstants"
7               OpMemberName %testPushConstants 0 "pushConstantArray"
8               OpName %testUniforms "testUniforms"
9               OpMemberName %testUniforms 0 "uniformArray"
10               OpName %sk_FragColor "sk_FragColor"
11               OpName %main "main"
12               OpName %localArray "localArray"
13               OpDecorate %_arr_float_int_2 ArrayStride 4
14               OpMemberDecorate %testPushConstants 0 Offset 0
15               OpDecorate %testPushConstants Block
16               OpDecorate %_arr_float_int_2_0 ArrayStride 16
17               OpMemberDecorate %testUniforms 0 Offset 0
18               OpDecorate %testUniforms Block
19               OpDecorate %10 Binding 0
20               OpDecorate %10 DescriptorSet 0
21               OpDecorate %sk_FragColor RelaxedPrecision
22               OpDecorate %sk_FragColor Location 0
23               OpDecorate %sk_FragColor Index 0
24               OpDecorate %59 RelaxedPrecision
25      %float = OpTypeFloat 32
26        %int = OpTypeInt 32 1
27      %int_2 = OpConstant %int 2
28%_arr_float_int_2 = OpTypeArray %float %int_2
29%testPushConstants = OpTypeStruct %_arr_float_int_2
30%_ptr_PushConstant_testPushConstants = OpTypePointer PushConstant %testPushConstants
31          %3 = OpVariable %_ptr_PushConstant_testPushConstants PushConstant
32%_arr_float_int_2_0 = OpTypeArray %float %int_2
33%testUniforms = OpTypeStruct %_arr_float_int_2_0
34%_ptr_Uniform_testUniforms = OpTypePointer Uniform %testUniforms
35         %10 = OpVariable %_ptr_Uniform_testUniforms Uniform
36    %v4float = OpTypeVector %float 4
37%_ptr_Output_v4float = OpTypePointer Output %v4float
38%sk_FragColor = OpVariable %_ptr_Output_v4float Output
39       %void = OpTypeVoid
40         %18 = OpTypeFunction %void
41%_ptr_Function__arr_float_int_2_0 = OpTypePointer Function %_arr_float_int_2_0
42    %float_1 = OpConstant %float 1
43    %float_2 = OpConstant %float 2
44       %bool = OpTypeBool
45      %false = OpConstantFalse %bool
46      %int_0 = OpConstant %int 0
47%_ptr_Uniform__arr_float_int_2_0 = OpTypePointer Uniform %_arr_float_int_2_0
48%_ptr_PushConstant__arr_float_int_2 = OpTypePointer PushConstant %_arr_float_int_2
49%_ptr_Function_v4float = OpTypePointer Function %v4float
50         %56 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
51    %float_0 = OpConstant %float 0
52         %58 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
53       %main = OpFunction %void None %18
54         %19 = OpLabel
55 %localArray = OpVariable %_ptr_Function__arr_float_int_2_0 Function
56         %51 = OpVariable %_ptr_Function_v4float Function
57         %24 = OpCompositeConstruct %_arr_float_int_2_0 %float_1 %float_2
58               OpStore %localArray %24
59         %28 = OpAccessChain %_ptr_Uniform__arr_float_int_2_0 %10 %int_0
60         %30 = OpLoad %_arr_float_int_2_0 %28
61         %31 = OpCompositeExtract %float %30 0
62         %32 = OpFOrdEqual %bool %float_1 %31
63         %33 = OpCompositeExtract %float %30 1
64         %34 = OpFOrdEqual %bool %float_2 %33
65         %35 = OpLogicalAnd %bool %34 %32
66               OpSelectionMerge %37 None
67               OpBranchConditional %35 %36 %37
68         %36 = OpLabel
69         %38 = OpAccessChain %_ptr_Uniform__arr_float_int_2_0 %10 %int_0
70         %39 = OpLoad %_arr_float_int_2_0 %38
71         %40 = OpAccessChain %_ptr_PushConstant__arr_float_int_2 %3 %int_0
72         %42 = OpLoad %_arr_float_int_2 %40
73         %43 = OpCompositeExtract %float %39 0
74         %44 = OpCompositeExtract %float %42 0
75         %45 = OpFOrdEqual %bool %43 %44
76         %46 = OpCompositeExtract %float %39 1
77         %47 = OpCompositeExtract %float %42 1
78         %48 = OpFOrdEqual %bool %46 %47
79         %49 = OpLogicalAnd %bool %48 %45
80               OpBranch %37
81         %37 = OpLabel
82         %50 = OpPhi %bool %false %19 %49 %36
83               OpSelectionMerge %55 None
84               OpBranchConditional %50 %53 %54
85         %53 = OpLabel
86               OpStore %51 %56
87               OpBranch %55
88         %54 = OpLabel
89               OpStore %51 %58
90               OpBranch %55
91         %55 = OpLabel
92         %59 = OpLoad %v4float %51
93               OpStore %sk_FragColor %59
94               OpReturn
95               OpFunctionEnd
96