Files
wgpu/naga/tests/out/spv/struct-layout.spvasm

169 lines
4.3 KiB
Plaintext

; SPIR-V
; Version: 1.1
; Generator: rspirv
; Bound: 92
OpCapability Shader
OpExtension "SPV_KHR_storage_buffer_storage_class"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %30 "no_padding_frag" %22 %25 %28
OpEntryPoint Vertex %42 "no_padding_vert" %37 %39 %41
OpEntryPoint GLCompute %45 "no_padding_comp"
OpEntryPoint Fragment %67 "needs_padding_frag" %60 %62 %64 %66
OpEntryPoint Vertex %78 "needs_padding_vert" %71 %73 %75 %77
OpEntryPoint GLCompute %81 "needs_padding_comp"
OpExecutionMode %30 OriginUpperLeft
OpExecutionMode %45 LocalSize 16 1 1
OpExecutionMode %67 OriginUpperLeft
OpExecutionMode %81 LocalSize 16 1 1
OpMemberDecorate %5 0 Offset 0
OpMemberDecorate %5 1 Offset 12
OpMemberDecorate %7 0 Offset 0
OpMemberDecorate %7 1 Offset 16
OpMemberDecorate %7 2 Offset 28
OpDecorate %8 DescriptorSet 0
OpDecorate %8 Binding 0
OpDecorate %9 Block
OpMemberDecorate %9 0 Offset 0
OpDecorate %11 DescriptorSet 0
OpDecorate %11 Binding 1
OpDecorate %12 Block
OpMemberDecorate %12 0 Offset 0
OpDecorate %14 DescriptorSet 0
OpDecorate %14 Binding 2
OpDecorate %15 Block
OpMemberDecorate %15 0 Offset 0
OpDecorate %17 DescriptorSet 0
OpDecorate %17 Binding 3
OpDecorate %18 Block
OpMemberDecorate %18 0 Offset 0
OpDecorate %22 Location 0
OpDecorate %25 Location 1
OpDecorate %28 Location 0
OpDecorate %37 Location 0
OpDecorate %39 Location 1
OpDecorate %41 BuiltIn Position
OpDecorate %60 Location 0
OpDecorate %62 Location 1
OpDecorate %64 Location 2
OpDecorate %66 Location 0
OpDecorate %71 Location 0
OpDecorate %73 Location 1
OpDecorate %75 Location 2
OpDecorate %77 BuiltIn Position
%2 = OpTypeVoid
%3 = OpTypeFloat 32
%4 = OpTypeVector %3 3
%5 = OpTypeStruct %4 %3
%6 = OpTypeVector %3 4
%7 = OpTypeStruct %3 %4 %3
%9 = OpTypeStruct %5
%10 = OpTypePointer Uniform %9
%8 = OpVariable %10 Uniform
%12 = OpTypeStruct %5
%13 = OpTypePointer StorageBuffer %12
%11 = OpVariable %13 StorageBuffer
%15 = OpTypeStruct %7
%16 = OpTypePointer Uniform %15
%14 = OpVariable %16 Uniform
%18 = OpTypeStruct %7
%19 = OpTypePointer StorageBuffer %18
%17 = OpVariable %19 StorageBuffer
%23 = OpTypePointer Input %4
%22 = OpVariable %23 Input
%26 = OpTypePointer Input %3
%25 = OpVariable %26 Input
%29 = OpTypePointer Output %6
%28 = OpVariable %29 Output
%31 = OpTypeFunction %2
%32 = OpConstant %3 0.0
%33 = OpConstantComposite %6 %32 %32 %32 %32
%37 = OpVariable %23 Input
%39 = OpVariable %26 Input
%41 = OpVariable %29 Output
%46 = OpTypePointer Uniform %5
%48 = OpTypeInt 32 0
%47 = OpConstant %48 0
%50 = OpTypePointer StorageBuffer %5
%53 = OpTypePointer Function %5
%54 = OpConstantNull %5
%60 = OpVariable %26 Input
%62 = OpVariable %23 Input
%64 = OpVariable %26 Input
%66 = OpVariable %29 Output
%71 = OpVariable %26 Input
%73 = OpVariable %23 Input
%75 = OpVariable %26 Input
%77 = OpVariable %29 Output
%82 = OpTypePointer Uniform %7
%84 = OpTypePointer StorageBuffer %7
%87 = OpTypePointer Function %7
%88 = OpConstantNull %7
%30 = OpFunction %2 None %31
%20 = OpLabel
%24 = OpLoad %4 %22
%27 = OpLoad %3 %25
%21 = OpCompositeConstruct %5 %24 %27
OpBranch %34
%34 = OpLabel
OpStore %28 %33
OpReturn
OpFunctionEnd
%42 = OpFunction %2 None %31
%35 = OpLabel
%38 = OpLoad %4 %37
%40 = OpLoad %3 %39
%36 = OpCompositeConstruct %5 %38 %40
OpBranch %43
%43 = OpLabel
OpStore %41 %33
OpReturn
OpFunctionEnd
%45 = OpFunction %2 None %31
%44 = OpLabel
%52 = OpVariable %53 Function %54
%49 = OpAccessChain %46 %8 %47
%51 = OpAccessChain %50 %11 %47
OpBranch %55
%55 = OpLabel
%56 = OpLoad %5 %49
OpStore %52 %56
%57 = OpLoad %5 %51
OpStore %52 %57
OpReturn
OpFunctionEnd
%67 = OpFunction %2 None %31
%58 = OpLabel
%61 = OpLoad %3 %60
%63 = OpLoad %4 %62
%65 = OpLoad %3 %64
%59 = OpCompositeConstruct %7 %61 %63 %65
OpBranch %68
%68 = OpLabel
OpStore %66 %33
OpReturn
OpFunctionEnd
%78 = OpFunction %2 None %31
%69 = OpLabel
%72 = OpLoad %3 %71
%74 = OpLoad %4 %73
%76 = OpLoad %3 %75
%70 = OpCompositeConstruct %7 %72 %74 %76
OpBranch %79
%79 = OpLabel
OpStore %77 %33
OpReturn
OpFunctionEnd
%81 = OpFunction %2 None %31
%80 = OpLabel
%86 = OpVariable %87 Function %88
%83 = OpAccessChain %82 %14 %47
%85 = OpAccessChain %84 %17 %47
OpBranch %89
%89 = OpLabel
%90 = OpLoad %7 %83
OpStore %86 %90
%91 = OpLoad %7 %85
OpStore %86 %91
OpReturn
OpFunctionEnd