1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint Fragment %main "main" %gl_FragCoord %_GLF_color 5 OpExecutionMode %main OriginUpperLeft 6 OpSource ESSL 320 7 OpName %main "main" 8 OpName %cross2d_vf2_vf2_ "cross2d(vf2;vf2;" 9 OpName %a "a" 10 OpName %b "b" 11 OpName %pointInTriangle_vf2_vf2_vf2_vf2_ "pointInTriangle(vf2;vf2;vf2;vf2;" 12 OpName %p "p" 13 OpName %a_0 "a" 14 OpName %b_0 "b" 15 OpName %c "c" 16 OpName %pab "pab" 17 OpName %param "param" 18 OpName %param_0 "param" 19 OpName %pbc "pbc" 20 OpName %param_1 "param" 21 OpName %param_2 "param" 22 OpName %pca "pca" 23 OpName %param_3 "param" 24 OpName %param_4 "param" 25 OpName %pos "pos" 26 OpName %gl_FragCoord "gl_FragCoord" 27 OpName %buf0 "buf0" 28 OpMemberName %buf0 0 "resolution" 29 OpName %_ "" 30 OpName %param_5 "param" 31 OpName %param_6 "param" 32 OpName %param_7 "param" 33 OpName %param_8 "param" 34 OpName %_GLF_color "_GLF_color" 35 OpDecorate %gl_FragCoord BuiltIn FragCoord 36 OpMemberDecorate %buf0 0 Offset 0 37 OpDecorate %buf0 Block 38 OpDecorate %_ DescriptorSet 0 39 OpDecorate %_ Binding 0 40 OpDecorate %_GLF_color Location 0 41 %void = OpTypeVoid 42 %30 = OpTypeFunction %void 43 %float = OpTypeFloat 32 44 %v2float = OpTypeVector %float 2 45%_ptr_Function_v2float = OpTypePointer Function %v2float 46 %34 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float 47 %int = OpTypeInt 32 1 48 %36 = OpTypeFunction %int %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v2float 49 %uint = OpTypeInt 32 0 50 %uint_0 = OpConstant %uint 0 51%_ptr_Function_float = OpTypePointer Function %float 52 %uint_1 = OpConstant %uint 1 53 %bool = OpTypeBool 54 %float_0 = OpConstant %float 0 55 %int_0 = OpConstant %int 0 56 %int_1 = OpConstant %int 1 57 %v4float = OpTypeVector %float 4 58%_ptr_Input_v4float = OpTypePointer Input %v4float 59%gl_FragCoord = OpVariable %_ptr_Input_v4float Input 60 %buf0 = OpTypeStruct %v2float 61%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0 62 %_ = OpVariable %_ptr_Uniform_buf0 Uniform 63%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float 64%float_0_699999988 = OpConstant %float 0.699999988 65%float_0_300000012 = OpConstant %float 0.300000012 66 %51 = OpConstantComposite %v2float %float_0_699999988 %float_0_300000012 67 %float_0_5 = OpConstant %float 0.5 68%float_0_899999976 = OpConstant %float 0.899999976 69 %54 = OpConstantComposite %v2float %float_0_5 %float_0_899999976 70%float_0_100000001 = OpConstant %float 0.100000001 71%float_0_400000006 = OpConstant %float 0.400000006 72 %57 = OpConstantComposite %v2float %float_0_100000001 %float_0_400000006 73%_ptr_Output_v4float = OpTypePointer Output %v4float 74 %_GLF_color = OpVariable %_ptr_Output_v4float Output 75 %float_1 = OpConstant %float 1 76 %60 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 77 %61 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 78 %main = OpFunction %void None %30 79 %62 = OpLabel 80 %pos = OpVariable %_ptr_Function_v2float Function 81 %param_5 = OpVariable %_ptr_Function_v2float Function 82 %param_6 = OpVariable %_ptr_Function_v2float Function 83 %param_7 = OpVariable %_ptr_Function_v2float Function 84 %param_8 = OpVariable %_ptr_Function_v2float Function 85 %63 = OpLoad %v4float %gl_FragCoord 86 %64 = OpVectorShuffle %v2float %63 %63 0 1 87 %65 = OpAccessChain %_ptr_Uniform_v2float %_ %int_0 88 %66 = OpLoad %v2float %65 89 %67 = OpFDiv %v2float %64 %66 90 OpStore %pos %67 91 %68 = OpLoad %v2float %pos 92 OpStore %param_5 %68 93 OpStore %param_6 %51 94 OpStore %param_7 %54 95 OpStore %param_8 %57 96 %69 = OpFunctionCall %int %pointInTriangle_vf2_vf2_vf2_vf2_ %param_5 %param_6 %param_7 %param_8 97 %70 = OpIEqual %bool %69 %int_1 98 OpSelectionMerge %71 None 99 OpBranchConditional %70 %72 %73 100 %72 = OpLabel 101 OpStore %_GLF_color %60 102 OpBranch %71 103 %73 = OpLabel 104 OpStore %_GLF_color %61 105 OpBranch %71 106 %71 = OpLabel 107 OpReturn 108 OpFunctionEnd 109%cross2d_vf2_vf2_ = OpFunction %float None %34 110 %a = OpFunctionParameter %_ptr_Function_v2float 111 %b = OpFunctionParameter %_ptr_Function_v2float 112 %74 = OpLabel 113 %75 = OpAccessChain %_ptr_Function_float %a %uint_0 114 %76 = OpLoad %float %75 115 %77 = OpAccessChain %_ptr_Function_float %b %uint_1 116 %78 = OpLoad %float %77 117 %79 = OpFMul %float %76 %78 118 %80 = OpAccessChain %_ptr_Function_float %b %uint_0 119 %81 = OpLoad %float %80 120 %82 = OpAccessChain %_ptr_Function_float %a %uint_1 121 %83 = OpLoad %float %82 122 %84 = OpFMul %float %81 %83 123 %85 = OpFSub %float %79 %84 124 OpReturnValue %85 125 OpFunctionEnd 126%pointInTriangle_vf2_vf2_vf2_vf2_ = OpFunction %int None %36 127 %p = OpFunctionParameter %_ptr_Function_v2float 128 %a_0 = OpFunctionParameter %_ptr_Function_v2float 129 %b_0 = OpFunctionParameter %_ptr_Function_v2float 130 %c = OpFunctionParameter %_ptr_Function_v2float 131 %86 = OpLabel 132 %pab = OpVariable %_ptr_Function_float Function 133 %param = OpVariable %_ptr_Function_v2float Function 134 %param_0 = OpVariable %_ptr_Function_v2float Function 135 %pbc = OpVariable %_ptr_Function_float Function 136 %param_1 = OpVariable %_ptr_Function_v2float Function 137 %param_2 = OpVariable %_ptr_Function_v2float Function 138 %pca = OpVariable %_ptr_Function_float Function 139 %param_3 = OpVariable %_ptr_Function_v2float Function 140 %param_4 = OpVariable %_ptr_Function_v2float Function 141 %87 = OpAccessChain %_ptr_Function_float %p %uint_0 142 %88 = OpLoad %float %87 143 %89 = OpAccessChain %_ptr_Function_float %a_0 %uint_0 144 %90 = OpLoad %float %89 145 %91 = OpFSub %float %88 %90 146 %92 = OpAccessChain %_ptr_Function_float %p %uint_1 147 %93 = OpLoad %float %92 148 %94 = OpAccessChain %_ptr_Function_float %a_0 %uint_1 149 %95 = OpLoad %float %94 150 %96 = OpFSub %float %93 %95 151 %97 = OpCompositeConstruct %v2float %91 %96 152 %98 = OpAccessChain %_ptr_Function_float %b_0 %uint_0 153 %99 = OpLoad %float %98 154 %100 = OpLoad %float %89 155 %101 = OpFSub %float %99 %100 156 %102 = OpAccessChain %_ptr_Function_float %b_0 %uint_1 157 %103 = OpLoad %float %102 158 %104 = OpLoad %float %94 159 %105 = OpFSub %float %103 %104 160 %106 = OpCompositeConstruct %v2float %101 %105 161 OpStore %param %97 162 OpStore %param_0 %106 163 %107 = OpFunctionCall %float %cross2d_vf2_vf2_ %param %param_0 164 OpStore %pab %107 165 %108 = OpLoad %float %87 166 %109 = OpLoad %float %98 167 %110 = OpFSub %float %108 %109 168 %111 = OpLoad %float %92 169 %112 = OpLoad %float %102 170 %113 = OpFSub %float %111 %112 171 %114 = OpCompositeConstruct %v2float %110 %113 172 %115 = OpAccessChain %_ptr_Function_float %c %uint_0 173 %116 = OpLoad %float %115 174 %117 = OpLoad %float %98 175 %118 = OpFSub %float %116 %117 176 %119 = OpAccessChain %_ptr_Function_float %c %uint_1 177 %120 = OpLoad %float %119 178 %121 = OpLoad %float %102 179 %122 = OpFSub %float %120 %121 180 %123 = OpCompositeConstruct %v2float %118 %122 181 OpStore %param_1 %114 182 OpStore %param_2 %123 183 %124 = OpFunctionCall %float %cross2d_vf2_vf2_ %param_1 %param_2 184 OpStore %pbc %124 185 %125 = OpLoad %float %pab 186 %126 = OpFOrdLessThan %bool %125 %float_0 187 %127 = OpLoad %float %pbc 188 %128 = OpFOrdLessThan %bool %127 %float_0 189 %129 = OpLogicalAnd %bool %126 %128 190 %130 = OpLogicalNot %bool %129 191 OpSelectionMerge %131 None 192 OpBranchConditional %130 %132 %131 193 %132 = OpLabel 194 %133 = OpLoad %float %pab 195 %134 = OpFOrdGreaterThanEqual %bool %133 %float_0 196 %135 = OpLoad %float %pbc 197 %136 = OpFOrdGreaterThanEqual %bool %135 %float_0 198 %137 = OpLogicalAnd %bool %134 %136 199 OpBranch %131 200 %131 = OpLabel 201 %138 = OpPhi %bool %129 %86 %137 %132 202 %139 = OpLogicalNot %bool %138 203 OpSelectionMerge %140 None 204 OpBranchConditional %139 %141 %140 205 %141 = OpLabel 206 OpReturnValue %int_0 207 %140 = OpLabel 208 %142 = OpLoad %float %87 209 %143 = OpLoad %float %115 210 %144 = OpFSub %float %142 %143 211 %145 = OpLoad %float %92 212 %146 = OpLoad %float %119 213 %147 = OpFSub %float %145 %146 214 %148 = OpCompositeConstruct %v2float %144 %147 215 %149 = OpLoad %float %89 216 %150 = OpLoad %float %115 217 %151 = OpFSub %float %149 %150 218 %152 = OpLoad %float %94 219 %153 = OpLoad %float %119 220 %154 = OpFSub %float %152 %153 221 %155 = OpCompositeConstruct %v2float %151 %154 222 OpStore %param_3 %148 223 OpStore %param_4 %155 224 %156 = OpFunctionCall %float %cross2d_vf2_vf2_ %param_3 %param_4 225 OpStore %pca %156 226 %157 = OpLoad %float %pab 227 %158 = OpFOrdLessThan %bool %157 %float_0 228 %159 = OpLoad %float %pca 229 %160 = OpFOrdLessThan %bool %159 %float_0 230 %161 = OpLogicalAnd %bool %158 %160 231 %162 = OpLogicalNot %bool %161 232 OpSelectionMerge %163 None 233 OpBranchConditional %162 %164 %163 234 %164 = OpLabel 235 %165 = OpLoad %float %pab 236 %166 = OpFOrdGreaterThanEqual %bool %165 %float_0 237 %167 = OpLoad %float %pca 238 %168 = OpFOrdGreaterThanEqual %bool %167 %float_0 239 %169 = OpLogicalAnd %bool %166 %168 240 OpBranch %163 241 %163 = OpLabel 242 %170 = OpPhi %bool %161 %140 %169 %164 243 %171 = OpLogicalNot %bool %170 244 OpSelectionMerge %172 None 245 OpBranchConditional %171 %173 %172 246 %173 = OpLabel 247 OpReturnValue %int_0 248 %172 = OpLabel 249 OpReturnValue %int_1 250 OpFunctionEnd 251