Apply memory decorations from GLSL source to the top-level OpVariable. Previously, these decorations would only be applied to individual members. While this is correct behavior, it is more convenient for some front ends to see the decorations (specifically ReadOnly and WriteOnly) applied to the whole variable rather than individual members.
52 lines
2.6 KiB
Text
52 lines
2.6 KiB
Text
spv.specConstant.float16.comp
|
|
// Module Version 10000
|
|
// Generated by (magic number): 8000b
|
|
// Id's are bound by 18
|
|
|
|
Capability Shader
|
|
Capability Float16
|
|
Capability StorageUniformBufferBlock16
|
|
Extension "SPV_KHR_16bit_storage"
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint GLCompute 4 "main"
|
|
ExecutionMode 4 LocalSize 1 1 1
|
|
Source GLSL 450
|
|
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16"
|
|
Name 4 "main"
|
|
Name 7 "Output"
|
|
MemberName 7(Output) 0 "r0"
|
|
MemberName 7(Output) 1 "r1"
|
|
Name 9 "sb_out"
|
|
Name 12 "sc0"
|
|
Name 16 "sc1"
|
|
Decorate 7(Output) BufferBlock
|
|
MemberDecorate 7(Output) 0 NonReadable
|
|
MemberDecorate 7(Output) 0 Offset 0
|
|
MemberDecorate 7(Output) 1 NonReadable
|
|
MemberDecorate 7(Output) 1 Offset 2
|
|
Decorate 9(sb_out) NonReadable
|
|
Decorate 9(sb_out) Binding 0
|
|
Decorate 9(sb_out) DescriptorSet 0
|
|
Decorate 12(sc0) SpecId 1
|
|
Decorate 16(sc1) SpecId 2
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 16
|
|
7(Output): TypeStruct 6(float16_t) 6(float16_t)
|
|
8: TypePointer Uniform 7(Output)
|
|
9(sb_out): 8(ptr) Variable Uniform
|
|
10: TypeInt 32 1
|
|
11: 10(int) Constant 0
|
|
12(sc0):6(float16_t) SpecConstant 18624
|
|
13: TypePointer Uniform 6(float16_t)
|
|
15: 10(int) Constant 1
|
|
16(sc1):6(float16_t) SpecConstant 52000
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
14: 13(ptr) AccessChain 9(sb_out) 11
|
|
Store 14 12(sc0)
|
|
17: 13(ptr) AccessChain 9(sb_out) 15
|
|
Store 17 16(sc1)
|
|
Return
|
|
FunctionEnd
|