Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
118 lines (114 sloc) 4.5 KB
[vertex shader spirv]
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %main "main" %_ %pos %norm_coord
OpSource GLSL 430
OpName %main "main"
OpName %gl_PerVertex "gl_PerVertex"
OpMemberName %gl_PerVertex 0 "gl_Position"
OpName %_ ""
OpName %pos "pos"
OpName %norm_coord "norm_coord"
OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
OpDecorate %gl_PerVertex Block
OpDecorate %pos Location 0
OpDecorate %norm_coord Location 0
%void = OpTypeVoid
%3 = OpTypeFunction %void
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%uint = OpTypeInt 32 0
%uint_1 = OpConstant %uint 1
%_arr_float_uint_1 = OpTypeArray %float %uint_1
%gl_PerVertex = OpTypeStruct %v4float
%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex
%_ = OpVariable %_ptr_Output_gl_PerVertex Output
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%_ptr_Input_v4float = OpTypePointer Input %v4float
%pos = OpVariable %_ptr_Input_v4float Input
%_ptr_Output_v4float = OpTypePointer Output %v4float
%norm_coord = OpVariable %_ptr_Output_v4float Output
%main = OpFunction %void None %3
%5 = OpLabel
%18 = OpLoad %v4float %pos
%20 = OpAccessChain %_ptr_Output_v4float %_ %int_0
OpStore %20 %18
OpStore %norm_coord %18
OpReturn
OpFunctionEnd
[fragment shader spirv]
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %color %norm_coord
OpExecutionMode %main OriginUpperLeft
OpSource GLSL 430
OpName %main "main"
OpName %color "color"
OpName %norm_coord "norm_coord"
OpDecorate %color Location 0
OpDecorate %norm_coord Location 0
%void = OpTypeVoid
%3 = OpTypeFunction %void
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%color = OpVariable %_ptr_Output_v4float Output
%v2float = OpTypeVector %float 2
%float_1 = OpConstant %float 1
%12 = OpConstantComposite %v2float %float_1 %float_1
%bool = OpTypeBool
%_ptr_Input_v4float = OpTypePointer Input %v4float
%norm_coord = OpVariable %_ptr_Input_v4float Input
%uint = OpTypeInt 32 0
%uint_0 = OpConstant %uint 0
%_ptr_Input_float = OpTypePointer Input %float
%float_0_1 = OpConstant %float 0.1
%uint_1 = OpConstant %uint 1
%float_0 = OpConstant %float 0
%38 = OpConstantComposite %v2float %float_0 %float_0
%main = OpFunction %void None %3
%5 = OpLabel
%13 = OpLoad %v4float %color
%14 = OpVectorShuffle %v4float %13 %12 4 1 2 5
OpStore %color %14
%21 = OpAccessChain %_ptr_Input_float %norm_coord %uint_0
%22 = OpLoad %float %21
%23 = OpExtInst %float %1 FAbs %22
%25 = OpFOrdLessThan %bool %23 %float_0_1
%26 = OpLogicalNot %bool %25
OpSelectionMerge %28 None
OpBranchConditional %26 %27 %28
%27 = OpLabel
%30 = OpAccessChain %_ptr_Input_float %norm_coord %uint_1
%31 = OpLoad %float %30
%32 = OpExtInst %float %1 FAbs %31
%33 = OpFOrdLessThan %bool %32 %float_0_1
OpBranch %28
%28 = OpLabel
%34 = OpPhi %bool %25 %5 %33 %27
OpSelectionMerge %36 None
OpBranchConditional %34 %35 %41
%35 = OpLabel
%39 = OpLoad %v4float %color
%40 = OpVectorShuffle %v4float %39 %38 0 4 5 3
OpStore %color %40
OpBranch %36
%41 = OpLabel
%42 = OpLoad %v4float %color
%43 = OpVectorShuffle %v4float %42 %12 0 4 5 3
OpStore %color %43
OpBranch %36
%36 = OpLabel
OpReturn
OpFunctionEnd
[test]
draw rect -1 -1 2 2
probe rect rgba (0, 0, 11, 11) (1, 1, 1, 1)
probe rect rgba (138, 0, 112, 11) (1, 1, 1, 1)
probe rect rgba (0, 138, 11, 112) (1, 1, 1, 1)
probe rect rgba (138, 138, 112, 112) (1, 1, 1, 1)
probe rect rgba (114, 0, 23, 250) (1, 0, 0, 1)
probe rect rgba (0, 114, 250, 23) (1, 0, 0, 1)