Home | History | Annotate | Download | only in test_data
      1 ; SPIR-V
      2 ; Version: 1.0
      3 ; Generator: Khronos Glslang Reference Front End; 1
      4 ; Bound: 75
      5 ; Schema: 0
      6                OpCapability Shader
      7           %1 = OpExtInstImport "GLSL.std.450"
      8                OpMemoryModel Logical GLSL450
      9                OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID
     10                OpExecutionMode %main LocalSize 4 1 1
     11                OpSource GLSL 450
     12                OpSourceExtension "GL_ARB_shading_language_420pack"
     13                OpSourceExtension "GL_GOOGLE_cpp_style_line_directive"
     14                OpSourceExtension "GL_GOOGLE_include_directive"
     15                OpName %main "main"
     16                OpName %greyscale_vf4_ "greyscale(vf4;"
     17                OpName %p "p"
     18                OpName %globalBuffer "globalBuffer"
     19                OpMemberName %globalBuffer 0 "coeff"
     20                OpMemberName %globalBuffer 1 "width"
     21                OpMemberName %globalBuffer 2 "height"
     22                OpName %globalBlock "globalBlock"
     23                OpName %xy "xy"
     24                OpName %gl_GlobalInvocationID "gl_GlobalInvocationID"
     25                OpName %inputPixel "inputPixel"
     26                OpName %inputTexture "inputTexture"
     27                OpName %res "res"
     28                OpName %x "x"
     29                OpName %y "y"
     30                OpName %outputBufferS "outputBufferS"
     31                OpMemberName %outputBufferS 0 "buf"
     32                OpName %outputBuffer "outputBuffer"
     33                OpMemberDecorate %globalBuffer 0 Offset 0
     34                OpMemberDecorate %globalBuffer 1 Offset 16
     35                OpMemberDecorate %globalBuffer 2 Offset 20
     36                OpDecorate %globalBuffer BufferBlock
     37                OpDecorate %globalBlock DescriptorSet 0
     38                OpDecorate %globalBlock Binding 2
     39                OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId
     40                OpDecorate %inputTexture DescriptorSet 0
     41                OpDecorate %inputTexture Binding 0
     42                OpDecorate %_runtimearr_v4float ArrayStride 16
     43                OpMemberDecorate %outputBufferS 0 Offset 0
     44                OpDecorate %outputBufferS BufferBlock
     45                OpDecorate %outputBuffer DescriptorSet 0
     46                OpDecorate %outputBuffer Binding 1
     47                OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize
     48        %void = OpTypeVoid
     49           %3 = OpTypeFunction %void
     50       %float = OpTypeFloat 32
     51     %v4float = OpTypeVector %float 4
     52           %8 = OpTypeFunction %v4float %v4float
     53         %int = OpTypeInt 32 1
     54 %globalBuffer = OpTypeStruct %v4float %int %int
     55 %_ptr_Uniform_globalBuffer = OpTypePointer Uniform %globalBuffer
     56 %globalBlock = OpVariable %_ptr_Uniform_globalBuffer Uniform
     57          %16 = OpConstant %int 0
     58 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
     59       %v2int = OpTypeVector %int 2
     60 %_ptr_Function_v2int = OpTypePointer Function %v2int
     61        %uint = OpTypeInt 32 0
     62      %v3uint = OpTypeVector %uint 3
     63 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
     64 %gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input
     65      %v2uint = OpTypeVector %uint 2
     66 %_ptr_Function_v4float = OpTypePointer Function %v4float
     67          %37 = OpTypeImage %float 2D 0 0 0 1 Unknown
     68          %38 = OpTypeSampledImage %37
     69 %_ptr_UniformConstant_38 = OpTypePointer UniformConstant %38
     70 %inputTexture = OpVariable %_ptr_UniformConstant_38 UniformConstant
     71 %_ptr_Function_uint = OpTypePointer Function %uint
     72          %50 = OpConstant %uint 0
     73 %_ptr_Input_uint = OpTypePointer Input %uint
     74          %55 = OpConstant %uint 1
     75 %_runtimearr_v4float = OpTypeRuntimeArray %v4float
     76 %outputBufferS = OpTypeStruct %_runtimearr_v4float
     77 %_ptr_Uniform_outputBufferS = OpTypePointer Uniform %outputBufferS
     78 %outputBuffer = OpVariable %_ptr_Uniform_outputBufferS Uniform
     79          %63 = OpConstant %int 1
     80 %_ptr_Uniform_int = OpTypePointer Uniform %int
     81          %73 = OpConstant %uint 4
     82 %gl_WorkGroupSize = OpConstantComposite %v3uint %73 %55 %55
     83        %main = OpFunction %void None %3
     84           %5 = OpLabel
     85          %xy = OpVariable %_ptr_Function_v2int Function
     86  %inputPixel = OpVariable %_ptr_Function_v4float Function
     87         %res = OpVariable %_ptr_Function_v4float Function
     88           %x = OpVariable %_ptr_Function_uint Function
     89           %y = OpVariable %_ptr_Function_uint Function
     90          %32 = OpLoad %v3uint %gl_GlobalInvocationID
     91          %33 = OpVectorShuffle %v2uint %32 %32 0 1
     92          %34 = OpBitcast %v2int %33
     93                OpStore %xy %34
     94          %41 = OpLoad %38 %inputTexture
     95          %42 = OpLoad %v2int %xy
     96          %43 = OpImage %37 %41
     97          %44 = OpImageFetch %v4float %43 %42 Lod %16
     98                OpStore %inputPixel %44
     99          %46 = OpLoad %v4float %inputPixel
    100          %47 = OpFunctionCall %v4float %greyscale_vf4_ %46
    101                OpStore %res %47
    102          %52 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %50
    103          %53 = OpLoad %uint %52
    104                OpStore %x %53
    105          %56 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %55
    106          %57 = OpLoad %uint %56
    107                OpStore %y %57
    108          %62 = OpLoad %uint %y
    109          %65 = OpAccessChain %_ptr_Uniform_int %globalBlock %63
    110          %66 = OpLoad %int %65
    111          %67 = OpBitcast %uint %66
    112          %68 = OpIMul %uint %62 %67
    113          %69 = OpLoad %uint %x
    114          %70 = OpIAdd %uint %68 %69
    115          %71 = OpLoad %v4float %res
    116          %72 = OpAccessChain %_ptr_Uniform_v4float %outputBuffer %16 %70
    117                OpStore %72 %71
    118                OpReturn
    119                OpFunctionEnd
    120 %greyscale_vf4_ = OpFunction %v4float None %8
    121           %p = OpFunctionParameter %v4float
    122          %11 = OpLabel
    123          %18 = OpAccessChain %_ptr_Uniform_v4float %globalBlock %16
    124          %19 = OpLoad %v4float %18
    125          %20 = OpDot %float %p %19
    126          %21 = OpCompositeConstruct %v4float %20 %20 %20 %20
    127                OpReturnValue %21
    128                OpFunctionEnd
    129