blob: 68a1f246e30b55aceaa043453be96a1136f36497 [file] [log] [blame]
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %alpha "alpha"
OpEntryPoint GLCompute %beta "beta"
OpEntryPoint GLCompute %gamma "gamma"
OpEntryPoint GLCompute %delta "delta"
OpExecutionMode %alpha LocalSize 1 1 1
OpExecutionMode %beta LocalSize 1 1 1
OpExecutionMode %gamma LocalSize 1 1 1
OpExecutionMode %delta LocalSize 1 1 1
OpName %alpha "alpha"
OpName %beta "beta"
OpName %gamma "gamma"
OpName %delta "delta"
OpName %voidfn "voidfn"
OpName %s_ty "s_ty"
OpName %i_ty "i_ty"
OpName %si_ty "si_ty"
OpName %p_s_ty "p_s_ty"
OpName %p_i_ty "p_i_ty"
OpName %p_si_ty "p_si_ty"
OpName %st_ty "st_ty"
OpName %pu_st_ty "pu_st_ty"
OpName %pb_st_ty "pb_st_ty"
OpDecorate %100 DescriptorSet 0 ; The sampler
OpDecorate %100 Binding 0
OpDecorate %101 DescriptorSet 0
OpDecorate %101 Binding 0
OpDecorate %102 DescriptorSet 0
OpDecorate %102 Binding 1
OpDecorate %103 DescriptorSet 0
OpDecorate %103 Binding 2
OpDecorate %104 DescriptorSet 0
OpDecorate %104 Binding 3
; %100 is bumped once:
; CHECK: OpDecorate %100 DescriptorSet 0
; CHECK: OpDecorate %100 Binding 1
; CHECK: OpDecorate %101 DescriptorSet 0
; CHECK: OpDecorate %101 Binding 0
; pushed back from bump of %100
; CHECK: OpDecorate %102 DescriptorSet 0
; CHECK: OpDecorate %102 Binding 2
; pushed back from bump of %102
; CHECK: OpDecorate %103 DescriptorSet 0
; CHECK: OpDecorate %103 Binding 3
; pushed back from bump of %103
; CHECK: OpDecorate %104 DescriptorSet 0
; CHECK: OpDecorate %104 Binding 4
OpDecorate %st_ty Block
OpMemberDecorate %st_ty 0 Offset 0
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%uint_0 = OpConstant %uint 0
%uint_3 = OpConstant %uint 3
%void = OpTypeVoid
%voidfn = OpTypeFunction %void
%s_ty = OpTypeSampler
%i_ty = OpTypeImage %float 2D 0 0 0 1 Unknown
%si_ty = OpTypeSampledImage %i_ty
%p_i_ty = OpTypePointer UniformConstant %i_ty
%p_s_ty = OpTypePointer UniformConstant %s_ty
%p_si_ty = OpTypePointer UniformConstant %si_ty
%st_ty = OpTypeStruct %uint
%pu_st_ty = OpTypePointer Uniform %st_ty
%pb_st_ty = OpTypePointer StorageBuffer %st_ty
%100 = OpVariable %p_s_ty UniformConstant ; used in alpha, beta
%101 = OpVariable %p_i_ty UniformConstant ; used in alpha
%102 = OpVariable %pu_st_ty Uniform ; used in beta, gamma
%103 = OpVariable %pb_st_ty StorageBuffer ; used in gamma, delta
%104 = OpVariable %p_si_ty UniformConstant ; used delta
%alpha = OpFunction %void None %voidfn
%1000 = OpLabel
%1001 = OpCopyObject %p_s_ty %100
%1002 = OpCopyObject %p_i_ty %101
OpReturn
OpFunctionEnd
%beta = OpFunction %void None %voidfn
%2000 = OpLabel
%2001 = OpCopyObject %p_s_ty %100
%2002 = OpCopyObject %pu_st_ty %102
OpReturn
OpFunctionEnd
%gamma = OpFunction %void None %voidfn
%3000 = OpLabel
%3001 = OpCopyObject %pu_st_ty %102
%3002 = OpCopyObject %pb_st_ty %103
OpReturn
OpFunctionEnd
%delta = OpFunction %void None %voidfn
%4000 = OpLabel
%4001 = OpCopyObject %pb_st_ty %103
%4002 = OpCopyObject %p_si_ty %104
OpReturn
OpFunctionEnd