Emit debug info for buffer references
Using OpExtInstWithForwardRefs, the debug type information for buffer reference types can be emitted alongside the OpFowardPointer opcode.
This commit is contained in:
parent
996c5d3123
commit
81f7045aa0
3 changed files with 188 additions and 146 deletions
|
|
@ -182,6 +182,10 @@ Id Builder::makeForwardPointer(StorageClass storageClass)
|
|||
constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(type));
|
||||
module.mapInstruction(type);
|
||||
|
||||
if (emitNonSemanticShaderDebugInfo) {
|
||||
const Id debugResultId = makeForwardPointerDebugType(storageClass);
|
||||
debugId[type->getResultId()] = debugResultId;
|
||||
}
|
||||
return type->getResultId();
|
||||
}
|
||||
|
||||
|
|
@ -204,6 +208,15 @@ Id Builder::makePointerFromForwardPointer(StorageClass storageClass, Id forwardP
|
|||
constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(type));
|
||||
module.mapInstruction(type);
|
||||
|
||||
// If we are emitting nonsemantic debuginfo, we need to patch the debug pointer type
|
||||
// that was emitted alongside the forward pointer, now that we have a pointee debug
|
||||
// type for it to point to.
|
||||
if (emitNonSemanticShaderDebugInfo) {
|
||||
Instruction *debugForwardPointer = module.getInstruction(debugId[forwardPointerType]);
|
||||
assert(debugId[pointee]);
|
||||
debugForwardPointer->setIdOperand(2, debugId[pointee]);
|
||||
}
|
||||
|
||||
return type->getResultId();
|
||||
}
|
||||
|
||||
|
|
@ -1045,6 +1058,29 @@ Id Builder::makePointerDebugType(StorageClass storageClass, Id const baseType)
|
|||
return type->getResultId();
|
||||
}
|
||||
|
||||
// Emit a OpExtInstWithForwardRefs nonsemantic instruction for a pointer debug type
|
||||
// where we don't have the pointee yet. Since we don't have the pointee yet, it just
|
||||
// points to itself and we rely on patching it later.
|
||||
Id Builder::makeForwardPointerDebugType(StorageClass storageClass)
|
||||
{
|
||||
const Id scID = makeUintConstant(storageClass);
|
||||
|
||||
this->addExtension(spv::E_SPV_KHR_relaxed_extended_instruction);
|
||||
|
||||
Instruction *type = new Instruction(getUniqueId(), makeVoidType(), OpExtInstWithForwardRefs);
|
||||
type->addIdOperand(nonSemanticShaderDebugInfo);
|
||||
type->addImmediateOperand(NonSemanticShaderDebugInfo100DebugTypePointer);
|
||||
type->addIdOperand(type->getResultId());
|
||||
type->addIdOperand(scID);
|
||||
type->addIdOperand(makeUintConstant(0));
|
||||
|
||||
groupedDebugTypes[NonSemanticShaderDebugInfo100DebugTypePointer].push_back(type);
|
||||
constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(type));
|
||||
module.mapInstruction(type);
|
||||
|
||||
return type->getResultId();
|
||||
}
|
||||
|
||||
Id Builder::makeDebugSource(const Id fileName) {
|
||||
if (debugSourceId.find(fileName) != debugSourceId.end())
|
||||
return debugSourceId[fileName];
|
||||
|
|
|
|||
|
|
@ -235,6 +235,7 @@ public:
|
|||
Id makeCompositeDebugType(std::vector<Id> const& memberTypes, char const*const name,
|
||||
NonSemanticShaderDebugInfo100DebugCompositeType const tag, bool const isOpaqueType = false);
|
||||
Id makePointerDebugType(StorageClass storageClass, Id const baseType);
|
||||
Id makeForwardPointerDebugType(StorageClass storageClass);
|
||||
Id makeDebugSource(const Id fileName);
|
||||
Id makeDebugCompilationUnit();
|
||||
Id createDebugGlobalVariable(Id const type, char const*const name, Id const variable);
|
||||
|
|
|
|||
|
|
@ -1,17 +1,18 @@
|
|||
spv.debuginfo.bufferref.glsl.frag
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 8000b
|
||||
// Id's are bound by 142
|
||||
// Id's are bound by 146
|
||||
|
||||
Capability Shader
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Extension "SPV_KHR_non_semantic_info"
|
||||
Extension "SPV_KHR_physical_storage_buffer"
|
||||
Extension "SPV_KHR_relaxed_extended_instruction"
|
||||
Extension "SPV_KHR_storage_buffer_storage_class"
|
||||
1: ExtInstImport "NonSemantic.Shader.DebugInfo.100"
|
||||
3: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel PhysicalStorageBuffer64EXT GLSL450
|
||||
EntryPoint Fragment 14 "main" 76 131
|
||||
EntryPoint Fragment 14 "main" 82 135
|
||||
ExecutionMode 14 OriginUpperLeft
|
||||
2: String "spv.debuginfo.bufferref.glsl.frag"
|
||||
8: String "uint"
|
||||
|
|
@ -52,46 +53,47 @@ void main() {
|
|||
out_fragColor = vec4(vertex_pos0, 1.0);
|
||||
}
|
||||
"
|
||||
31: String "Mesh"
|
||||
34: String "float"
|
||||
40: String "data"
|
||||
44: String "MeshVertexPositions"
|
||||
50: String "meshData"
|
||||
63: String "PerPass_meshes"
|
||||
69: String "perPass_meshes"
|
||||
71: String "int"
|
||||
78: String "tri_idx0"
|
||||
94: String "vertex_pos0"
|
||||
133: String "out_fragColor"
|
||||
33: String "positions"
|
||||
37: String "Mesh"
|
||||
40: String "float"
|
||||
46: String "data"
|
||||
49: String "MeshVertexPositions"
|
||||
55: String "meshData"
|
||||
69: String "PerPass_meshes"
|
||||
75: String "perPass_meshes"
|
||||
77: String "int"
|
||||
84: String "tri_idx0"
|
||||
100: String "vertex_pos0"
|
||||
137: String "out_fragColor"
|
||||
SourceExtension "GL_EXT_buffer_reference"
|
||||
Name 14 "main"
|
||||
Name 29 "Mesh"
|
||||
MemberName 29(Mesh) 0 "positions"
|
||||
Name 38 "MeshVertexPositions"
|
||||
MemberName 38(MeshVertexPositions) 0 "data"
|
||||
Name 48 "meshData"
|
||||
Name 54 "Mesh"
|
||||
MemberName 54(Mesh) 0 "positions"
|
||||
Name 58 "PerPass_meshes"
|
||||
MemberName 58(PerPass_meshes) 0 "data"
|
||||
Name 67 "perPass_meshes"
|
||||
Name 76 "tri_idx0"
|
||||
Name 92 "vertex_pos0"
|
||||
Name 131 "out_fragColor"
|
||||
Decorate 36 ArrayStride 4
|
||||
MemberDecorate 38(MeshVertexPositions) 0 Offset 0
|
||||
Decorate 38(MeshVertexPositions) Block
|
||||
MemberDecorate 54(Mesh) 0 Offset 0
|
||||
Decorate 56 ArrayStride 8
|
||||
MemberDecorate 58(PerPass_meshes) 0 NonWritable
|
||||
MemberDecorate 58(PerPass_meshes) 0 Offset 0
|
||||
Decorate 58(PerPass_meshes) Block
|
||||
Decorate 67(perPass_meshes) DescriptorSet 0
|
||||
Decorate 67(perPass_meshes) Binding 0
|
||||
Decorate 76(tri_idx0) Flat
|
||||
Decorate 76(tri_idx0) Location 0
|
||||
Decorate 131(out_fragColor) Location 0
|
||||
Decorate 48(meshData) DecorationAliasedPointerEXT
|
||||
Name 31 "Mesh"
|
||||
MemberName 31(Mesh) 0 "positions"
|
||||
Name 44 "MeshVertexPositions"
|
||||
MemberName 44(MeshVertexPositions) 0 "data"
|
||||
Name 53 "meshData"
|
||||
Name 59 "Mesh"
|
||||
MemberName 59(Mesh) 0 "positions"
|
||||
Name 64 "PerPass_meshes"
|
||||
MemberName 64(PerPass_meshes) 0 "data"
|
||||
Name 73 "perPass_meshes"
|
||||
Name 82 "tri_idx0"
|
||||
Name 98 "vertex_pos0"
|
||||
Name 135 "out_fragColor"
|
||||
Decorate 42 ArrayStride 4
|
||||
MemberDecorate 44(MeshVertexPositions) 0 Offset 0
|
||||
Decorate 44(MeshVertexPositions) Block
|
||||
MemberDecorate 59(Mesh) 0 Offset 0
|
||||
Decorate 62 ArrayStride 8
|
||||
MemberDecorate 64(PerPass_meshes) 0 NonWritable
|
||||
MemberDecorate 64(PerPass_meshes) 0 Offset 0
|
||||
Decorate 64(PerPass_meshes) Block
|
||||
Decorate 73(perPass_meshes) DescriptorSet 0
|
||||
Decorate 73(perPass_meshes) Binding 0
|
||||
Decorate 82(tri_idx0) Flat
|
||||
Decorate 82(tri_idx0) Location 0
|
||||
Decorate 135(out_fragColor) Location 0
|
||||
Decorate 53(meshData) DecorationAliasedPointerEXT
|
||||
4: TypeVoid
|
||||
5: TypeFunction 4
|
||||
7: TypeInt 32 0
|
||||
|
|
@ -109,116 +111,119 @@ void main() {
|
|||
21: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 22 23 18 24
|
||||
17: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 16 6 18 20 12 21 16 13 20
|
||||
TypeForwardPointer 28 PhysicalStorageBufferEXT
|
||||
29(Mesh): TypeStruct 28
|
||||
32: 7(int) Constant 21
|
||||
30: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 31 22 18 32 12 21 31 12 13
|
||||
33: TypeFloat 32
|
||||
35: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 34 10 13 12
|
||||
36: TypeRuntimeArray 33(float)
|
||||
37: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 35 12
|
||||
38(MeshVertexPositions): TypeStruct 36
|
||||
41: 7(int) Constant 5
|
||||
42: 7(int) Constant 9
|
||||
39: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 40 37 18 41 42 12 12 13
|
||||
43: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 44 22 18 32 12 21 44 12 13 39
|
||||
28: TypePointer PhysicalStorageBufferEXT 38(MeshVertexPositions)
|
||||
45: TypePointer Function 29(Mesh)
|
||||
46: 7(int) Constant 7
|
||||
47: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 30 46 12
|
||||
49: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 50 30 18 32 12 17 23
|
||||
52: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
|
||||
54(Mesh): TypeStruct 28(ptr)
|
||||
55: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 31 22 18 32 12 21 31 12 13
|
||||
56: TypeRuntimeArray 54(Mesh)
|
||||
57: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 55 12
|
||||
58(PerPass_meshes): TypeStruct 56
|
||||
60: 7(int) Constant 13
|
||||
61: 7(int) Constant 8
|
||||
59: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 40 57 18 60 61 12 12 13
|
||||
62: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 63 22 18 32 12 21 63 12 13 59
|
||||
64: TypePointer StorageBuffer 58(PerPass_meshes)
|
||||
65: 7(int) Constant 12
|
||||
66: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 62 65 12
|
||||
67(perPass_meshes): 64(ptr) Variable StorageBuffer
|
||||
68: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 69 62 18 32 12 21 69 67(perPass_meshes) 61
|
||||
70: TypeInt 32 1
|
||||
72: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 71 10 23 12
|
||||
73: 70(int) Constant 0
|
||||
74: TypePointer Input 7(int)
|
||||
75: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 9 22 12
|
||||
76(tri_idx0): 74(ptr) Variable Input
|
||||
77: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 78 9 18 32 12 21 78 76(tri_idx0) 61
|
||||
80: TypePointer StorageBuffer 54(Mesh)
|
||||
81: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 55 65 12
|
||||
85: TypePointer Function 28(ptr)
|
||||
86: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
|
||||
88: TypeVector 33(float) 3
|
||||
89: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 35 13
|
||||
90: TypePointer Function 88(fvec3)
|
||||
91: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 89 46 12
|
||||
95: 7(int) Constant 23
|
||||
93: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 94 89 18 95 12 17 23
|
||||
102: TypePointer PhysicalStorageBufferEXT 33(float)
|
||||
103: 7(int) Constant 5349
|
||||
104: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 35 103 12
|
||||
109: 7(int) Constant 24
|
||||
118: 7(int) Constant 25
|
||||
127: TypeVector 33(float) 4
|
||||
128: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 35 23
|
||||
129: TypePointer Output 127(fvec4)
|
||||
130: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 128 13 12
|
||||
131(out_fragColor): 129(ptr) Variable Output
|
||||
134: 7(int) Constant 27
|
||||
132: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 133 128 18 134 12 21 133 131(out_fragColor) 61
|
||||
137: 33(float) Constant 1065353216
|
||||
29: 7(int) Constant 5349
|
||||
30: 4 ExtInstWithForwardRefs 1(NonSemantic.Shader.DebugInfo.100) 3 48 29 12
|
||||
31(Mesh): TypeStruct 28
|
||||
34: 7(int) Constant 9
|
||||
35: 7(int) Constant 23
|
||||
32: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 33 30 18 34 35 12 12 13
|
||||
38: 7(int) Constant 21
|
||||
36: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 37 22 18 38 12 21 37 12 13 32
|
||||
39: TypeFloat 32
|
||||
41: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 40 10 13 12
|
||||
42: TypeRuntimeArray 39(float)
|
||||
43: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 41 12
|
||||
44(MeshVertexPositions): TypeStruct 42
|
||||
47: 7(int) Constant 5
|
||||
45: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 46 43 18 47 34 12 12 13
|
||||
48: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 49 22 18 38 12 21 49 12 13 45
|
||||
28: TypePointer PhysicalStorageBufferEXT 44(MeshVertexPositions)
|
||||
50: TypePointer Function 31(Mesh)
|
||||
51: 7(int) Constant 7
|
||||
52: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 36 51 12
|
||||
54: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 55 36 18 38 12 17 23
|
||||
57: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
|
||||
59(Mesh): TypeStruct 28(ptr)
|
||||
60: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 33 30 18 34 35 12 12 13
|
||||
61: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 37 22 18 38 12 21 37 12 13 60
|
||||
62: TypeRuntimeArray 59(Mesh)
|
||||
63: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 61 12
|
||||
64(PerPass_meshes): TypeStruct 62
|
||||
66: 7(int) Constant 13
|
||||
67: 7(int) Constant 8
|
||||
65: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 46 63 18 66 67 12 12 13
|
||||
68: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 69 22 18 38 12 21 69 12 13 65
|
||||
70: TypePointer StorageBuffer 64(PerPass_meshes)
|
||||
71: 7(int) Constant 12
|
||||
72: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 68 71 12
|
||||
73(perPass_meshes): 70(ptr) Variable StorageBuffer
|
||||
74: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 75 68 18 38 12 21 75 73(perPass_meshes) 67
|
||||
76: TypeInt 32 1
|
||||
78: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 77 10 23 12
|
||||
79: 76(int) Constant 0
|
||||
80: TypePointer Input 7(int)
|
||||
81: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 9 22 12
|
||||
82(tri_idx0): 80(ptr) Variable Input
|
||||
83: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 84 9 18 38 12 21 84 82(tri_idx0) 67
|
||||
86: TypePointer StorageBuffer 59(Mesh)
|
||||
87: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 61 71 12
|
||||
91: TypePointer Function 28(ptr)
|
||||
92: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 30 51 12
|
||||
94: TypeVector 39(float) 3
|
||||
95: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 41 13
|
||||
96: TypePointer Function 94(fvec3)
|
||||
97: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 95 51 12
|
||||
99: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 100 95 18 35 12 17 23
|
||||
107: TypePointer PhysicalStorageBufferEXT 39(float)
|
||||
108: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 41 29 12
|
||||
113: 7(int) Constant 24
|
||||
122: 7(int) Constant 25
|
||||
131: TypeVector 39(float) 4
|
||||
132: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 41 23
|
||||
133: TypePointer Output 131(fvec4)
|
||||
134: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 132 13 12
|
||||
135(out_fragColor): 133(ptr) Variable Output
|
||||
138: 7(int) Constant 27
|
||||
136: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 137 132 18 138 12 21 137 135(out_fragColor) 67
|
||||
141: 39(float) Constant 1065353216
|
||||
14(main): 4 Function None 5
|
||||
15: Label
|
||||
48(meshData): 45(ptr) Variable Function
|
||||
92(vertex_pos0): 90(ptr) Variable Function
|
||||
53(meshData): 50(ptr) Variable Function
|
||||
98(vertex_pos0): 96(ptr) Variable Function
|
||||
26: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
|
||||
27: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 20 20 12 12
|
||||
25: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 17 14(main)
|
||||
53: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 32 32 12 12
|
||||
51: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 49 48(meshData) 52
|
||||
79: 7(int) Load 76(tri_idx0)
|
||||
82: 80(ptr) AccessChain 67(perPass_meshes) 73 79
|
||||
83: 54(Mesh) Load 82
|
||||
84: 28(ptr) CompositeExtract 83 0
|
||||
87: 85(ptr) AccessChain 48(meshData) 73
|
||||
Store 87 84
|
||||
97: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 95 95 12 12
|
||||
96: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 93 92(vertex_pos0) 52
|
||||
98: 85(ptr) AccessChain 48(meshData) 73
|
||||
99: 28(ptr) Load 98
|
||||
100: 7(int) Load 76(tri_idx0)
|
||||
101: 7(int) IMul 13 100
|
||||
105: 102(ptr) AccessChain 99 73 101
|
||||
106: 33(float) Load 105 Aligned 4
|
||||
108: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 109 109 12 12
|
||||
107: 85(ptr) AccessChain 48(meshData) 73
|
||||
110: 28(ptr) Load 107
|
||||
111: 7(int) Load 76(tri_idx0)
|
||||
112: 7(int) IMul 13 111
|
||||
113: 7(int) IAdd 112 22
|
||||
114: 102(ptr) AccessChain 110 73 113
|
||||
115: 33(float) Load 114 Aligned 4
|
||||
117: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 118 118 12 12
|
||||
116: 85(ptr) AccessChain 48(meshData) 73
|
||||
119: 28(ptr) Load 116
|
||||
120: 7(int) Load 76(tri_idx0)
|
||||
121: 7(int) IMul 13 120
|
||||
122: 7(int) IAdd 121 24
|
||||
123: 102(ptr) AccessChain 119 73 122
|
||||
124: 33(float) Load 123 Aligned 4
|
||||
125: 88(fvec3) CompositeConstruct 106 115 124
|
||||
126: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 95 95 12 12
|
||||
Store 92(vertex_pos0) 125
|
||||
136: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 134 134 12 12
|
||||
135: 88(fvec3) Load 92(vertex_pos0)
|
||||
138: 33(float) CompositeExtract 135 0
|
||||
139: 33(float) CompositeExtract 135 1
|
||||
140: 33(float) CompositeExtract 135 2
|
||||
141: 127(fvec4) CompositeConstruct 138 139 140 137
|
||||
Store 131(out_fragColor) 141
|
||||
58: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 38 38 12 12
|
||||
56: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 54 53(meshData) 57
|
||||
85: 7(int) Load 82(tri_idx0)
|
||||
88: 86(ptr) AccessChain 73(perPass_meshes) 79 85
|
||||
89: 59(Mesh) Load 88
|
||||
90: 28(ptr) CompositeExtract 89 0
|
||||
93: 91(ptr) AccessChain 53(meshData) 79
|
||||
Store 93 90
|
||||
102: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 35 35 12 12
|
||||
101: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 99 98(vertex_pos0) 57
|
||||
103: 91(ptr) AccessChain 53(meshData) 79
|
||||
104: 28(ptr) Load 103
|
||||
105: 7(int) Load 82(tri_idx0)
|
||||
106: 7(int) IMul 13 105
|
||||
109: 107(ptr) AccessChain 104 79 106
|
||||
110: 39(float) Load 109 Aligned 4
|
||||
112: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 113 113 12 12
|
||||
111: 91(ptr) AccessChain 53(meshData) 79
|
||||
114: 28(ptr) Load 111
|
||||
115: 7(int) Load 82(tri_idx0)
|
||||
116: 7(int) IMul 13 115
|
||||
117: 7(int) IAdd 116 22
|
||||
118: 107(ptr) AccessChain 114 79 117
|
||||
119: 39(float) Load 118 Aligned 4
|
||||
121: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 122 122 12 12
|
||||
120: 91(ptr) AccessChain 53(meshData) 79
|
||||
123: 28(ptr) Load 120
|
||||
124: 7(int) Load 82(tri_idx0)
|
||||
125: 7(int) IMul 13 124
|
||||
126: 7(int) IAdd 125 24
|
||||
127: 107(ptr) AccessChain 123 79 126
|
||||
128: 39(float) Load 127 Aligned 4
|
||||
129: 94(fvec3) CompositeConstruct 110 119 128
|
||||
130: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 35 35 12 12
|
||||
Store 98(vertex_pos0) 129
|
||||
140: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 138 138 12 12
|
||||
139: 94(fvec3) Load 98(vertex_pos0)
|
||||
142: 39(float) CompositeExtract 139 0
|
||||
143: 39(float) CompositeExtract 139 1
|
||||
144: 39(float) CompositeExtract 139 2
|
||||
145: 131(fvec4) CompositeConstruct 142 143 144 141
|
||||
Store 135(out_fragColor) 145
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue