skia2/tests/sksl/shared/ForLoopControlFlow.asm.frag
John Stiles b41d5bb3a7 Add helper uniforms to Runtime Effect tests.
This lets us use descriptive names like `colorRed` and `colorGreen`
instead of `half4(1,0,0,1)` and `half4(0,1,0,1)`. It also lets us use
actual unknown values instead of synthesizing sorta-kinda-unknowns by
calling sqrt.

Change-Id: I61481c33b7ff42182955777b05cfa5fcc13e0efc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/359567
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-01-27 00:53:46 +00:00

122 lines
3.3 KiB
JavaScript

### Compilation failed:
error: SPIR-V validation error: OpEntryPoint Entry Point <id> '2[%main]'s function return type is not void.
OpEntryPoint Fragment %main "main" %sk_Clockwise
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %sk_Clockwise
OpExecutionMode %main OriginUpperLeft
OpName %sk_Clockwise "sk_Clockwise"
OpName %colorWhite "colorWhite"
OpName %main "main"
OpName %x "x"
OpName %r "r"
OpName %b "b"
OpDecorate %sk_Clockwise RelaxedPrecision
OpDecorate %sk_Clockwise BuiltIn FrontFacing
OpDecorate %colorWhite RelaxedPrecision
OpDecorate %colorWhite DescriptorSet 0
OpDecorate %14 RelaxedPrecision
OpDecorate %23 RelaxedPrecision
OpDecorate %27 RelaxedPrecision
OpDecorate %31 RelaxedPrecision
OpDecorate %37 RelaxedPrecision
OpDecorate %39 RelaxedPrecision
OpDecorate %46 RelaxedPrecision
OpDecorate %48 RelaxedPrecision
OpDecorate %51 RelaxedPrecision
OpDecorate %58 RelaxedPrecision
OpDecorate %59 RelaxedPrecision
OpDecorate %60 RelaxedPrecision
%bool = OpTypeBool
%_ptr_Input_bool = OpTypePointer Input %bool
%sk_Clockwise = OpVariable %_ptr_Input_bool Input
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
%colorWhite = OpVariable %_ptr_Uniform_v4float Uniform
%10 = OpTypeFunction %v4float
%_ptr_Function_v4float = OpTypePointer Function %v4float
%_ptr_Function_float = OpTypePointer Function %float
%float_n5 = OpConstant %float -5
%float_5 = OpConstant %float 5
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%float_0 = OpConstant %float 0
%float_1 = OpConstant %float 1
%int_2 = OpConstant %int 2
%int_1 = OpConstant %int 1
%main = OpFunction %v4float None %10
%11 = OpLabel
%x = OpVariable %_ptr_Function_v4float Function
%r = OpVariable %_ptr_Function_float Function
%b = OpVariable %_ptr_Function_float Function
%14 = OpLoad %v4float %colorWhite
OpStore %x %14
OpStore %r %float_n5
OpBranch %18
%18 = OpLabel
OpLoopMerge %22 %21 None
OpBranch %19
%19 = OpLabel
%23 = OpLoad %float %r
%25 = OpFOrdLessThan %bool %23 %float_5
OpBranchConditional %25 %20 %22
%20 = OpLabel
%27 = OpLoad %float %r
%26 = OpExtInst %float %1 FAbs %27
%28 = OpAccessChain %_ptr_Function_float %x %int_0
OpStore %28 %26
%31 = OpLoad %v4float %x
%32 = OpCompositeExtract %float %31 0
%34 = OpFOrdEqual %bool %32 %float_0
OpSelectionMerge %36 None
OpBranchConditional %34 %35 %36
%35 = OpLabel
OpBranch %22
%36 = OpLabel
OpBranch %21
%21 = OpLabel
%37 = OpLoad %float %r
%39 = OpFAdd %float %37 %float_1
OpStore %r %39
OpBranch %18
%22 = OpLabel
OpStore %b %float_5
OpBranch %41
%41 = OpLabel
OpLoopMerge %45 %44 None
OpBranch %42
%42 = OpLabel
%46 = OpLoad %float %b
%47 = OpFOrdGreaterThanEqual %bool %46 %float_0
OpBranchConditional %47 %43 %45
%43 = OpLabel
%48 = OpLoad %float %b
%49 = OpAccessChain %_ptr_Function_float %x %int_2
OpStore %49 %48
%51 = OpLoad %v4float %x
%52 = OpCompositeExtract %float %51 3
%53 = OpFOrdEqual %bool %52 %float_1
OpSelectionMerge %55 None
OpBranchConditional %53 %54 %55
%54 = OpLabel
OpBranch %44
%55 = OpLabel
%56 = OpAccessChain %_ptr_Function_float %x %int_1
OpStore %56 %float_0
OpBranch %44
%44 = OpLabel
%58 = OpLoad %float %b
%59 = OpFSub %float %58 %float_1
OpStore %b %59
OpBranch %41
%45 = OpLabel
%60 = OpLoad %v4float %x
OpReturnValue %60
OpFunctionEnd
1 error