| OpCapability Shader | |
| OpMemoryModel Logical GLSL450 | |
| OpEntryPoint GLCompute %alpha "alpha" | |
| OpEntryPoint GLCompute %beta "beta" | |
| OpEntryPoint GLCompute %gamma "gamma" | |
| OpExecutionMode %alpha LocalSize 1 1 1 | |
| OpExecutionMode %beta LocalSize 1 1 1 | |
| OpExecutionMode %gamma LocalSize 1 1 1 | |
| OpName %alpha "alpha" | |
| OpName %beta "beta" | |
| OpName %gamma "gamma" | |
| 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 | |
| ; 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 | |
| ; does not need to be bumped | |
| ; CHECK: OpDecorate %103 DescriptorSet 0 | |
| ; CHECK: OpDecorate %103 Binding 2 | |
| 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, gamma | |
| %101 = OpVariable %p_i_ty UniformConstant ; used in alpha | |
| %102 = OpVariable %pu_st_ty Uniform ; used in beta | |
| %103 = OpVariable %pb_st_ty StorageBuffer ; used in gamma | |
| %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 %p_s_ty %100 | |
| %3002 = OpCopyObject %pb_st_ty %103 | |
| OpReturn | |
| OpFunctionEnd |