0d07e14f1e
Previously, the declaration didn't link back to function definition. This makes the function appear to be undefined, which inhibits inlining and also makes it difficult for us to validate the presence of a definition for every called function. Change-Id: I220ab502634cb3e1d337c23bac150af9aa6370b1 Bug: skia:10902 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/349063 Commit-Queue: John Stiles <johnstiles@google.com> Commit-Queue: Brian Osman <brianosman@google.com> Auto-Submit: John Stiles <johnstiles@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
79 lines
2.6 KiB
GLSL
79 lines
2.6 KiB
GLSL
OpCapability Geometry
|
|
%1 = OpExtInstImport "GLSL.std.450"
|
|
OpMemoryModel Logical GLSL450
|
|
OpEntryPoint Geometry %main "main" %3 %8
|
|
OpExecutionMode %main InputPoints
|
|
OpExecutionMode %main OutputLineStrip
|
|
OpExecutionMode %main OutputVertices 2
|
|
OpExecutionMode %main Invocations 1
|
|
OpName %sk_PerVertex "sk_PerVertex"
|
|
OpMemberName %sk_PerVertex 0 "sk_Position"
|
|
OpMemberName %sk_PerVertex 1 "sk_PointSize"
|
|
OpName %sk_InvocationID "sk_InvocationID"
|
|
OpName %main "main"
|
|
OpMemberDecorate %sk_PerVertex 0 BuiltIn Position
|
|
OpMemberDecorate %sk_PerVertex 1 BuiltIn PointSize
|
|
OpDecorate %_arr_sk_PerVertex_int_1 ArrayStride 32
|
|
%float = OpTypeFloat 32
|
|
%v4float = OpTypeVector %float 4
|
|
%sk_PerVertex = OpTypeStruct %v4float %float
|
|
%_ptr_Output_sk_PerVertex = OpTypePointer Output %sk_PerVertex
|
|
%3 = OpVariable %_ptr_Output_sk_PerVertex Output
|
|
%int = OpTypeInt 32 1
|
|
%int_1 = OpConstant %int 1
|
|
%_arr_sk_PerVertex_int_1 = OpTypeArray %sk_PerVertex %int_1
|
|
%_ptr_Input__arr_sk_PerVertex_int_1 = OpTypePointer Input %_arr_sk_PerVertex_int_1
|
|
%8 = OpVariable %_ptr_Input__arr_sk_PerVertex_int_1 Input
|
|
%_ptr_Private_int = OpTypePointer Private %int
|
|
%sk_InvocationID = OpVariable %_ptr_Private_int Private
|
|
%void = OpTypeVoid
|
|
%16 = OpTypeFunction %void
|
|
%int_0 = OpConstant %int 0
|
|
%int_2 = OpConstant %int 2
|
|
%bool = OpTypeBool
|
|
%_ptr_Input_v4float = OpTypePointer Input %v4float
|
|
%float_0_5 = OpConstant %float 0.5
|
|
%float_0 = OpConstant %float 0
|
|
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
|
%float_n0_5 = OpConstant %float -0.5
|
|
%main = OpFunction %void None %16
|
|
%17 = OpLabel
|
|
OpStore %sk_InvocationID %int_0
|
|
OpBranch %19
|
|
%19 = OpLabel
|
|
OpLoopMerge %23 %22 None
|
|
OpBranch %20
|
|
%20 = OpLabel
|
|
%24 = OpLoad %int %sk_InvocationID
|
|
%26 = OpSLessThan %bool %24 %int_2
|
|
OpBranchConditional %26 %21 %23
|
|
%21 = OpLabel
|
|
%28 = OpAccessChain %_ptr_Input_v4float %8 %int_0 %int_0
|
|
%30 = OpLoad %v4float %28
|
|
%34 = OpLoad %int %sk_InvocationID
|
|
%33 = OpConvertSToF %float %34
|
|
%35 = OpCompositeConstruct %v4float %float_0_5 %float_0 %float_0 %33
|
|
%36 = OpFAdd %v4float %30 %35
|
|
%37 = OpAccessChain %_ptr_Output_v4float %3 %int_0
|
|
OpStore %37 %36
|
|
OpEmitVertex
|
|
%40 = OpAccessChain %_ptr_Input_v4float %8 %int_0 %int_0
|
|
%41 = OpLoad %v4float %40
|
|
%44 = OpLoad %int %sk_InvocationID
|
|
%43 = OpConvertSToF %float %44
|
|
%45 = OpCompositeConstruct %v4float %float_n0_5 %float_0 %float_0 %43
|
|
%46 = OpFAdd %v4float %41 %45
|
|
%47 = OpAccessChain %_ptr_Output_v4float %3 %int_0
|
|
OpStore %47 %46
|
|
OpEmitVertex
|
|
OpEndPrimitive
|
|
OpBranch %22
|
|
%22 = OpLabel
|
|
%50 = OpLoad %int %sk_InvocationID
|
|
%51 = OpIAdd %int %50 %int_1
|
|
OpStore %sk_InvocationID %51
|
|
OpBranch %19
|
|
%23 = OpLabel
|
|
OpReturn
|
|
OpFunctionEnd
|