mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-13 05:20:45 +00:00
Return SPIRVId from Add*() functions for convenience's sake
This commit is contained in:
@@ -255,25 +255,31 @@ void SPIRVEditor::AddDecoration(const SPIRVOperation &op)
|
|||||||
addWords(decorationSection.endOffset, op.size());
|
addWords(decorationSection.endOffset, op.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
void SPIRVEditor::AddType(const SPIRVOperation &op)
|
SPIRVId SPIRVEditor::AddType(const SPIRVOperation &op)
|
||||||
{
|
{
|
||||||
idOffsets[op[1]] = typeVarSection.endOffset;
|
SPIRVId id = op[1];
|
||||||
|
idOffsets[id] = typeVarSection.endOffset;
|
||||||
spirv.insert(spirv.begin() + typeVarSection.endOffset, op.begin(), op.end());
|
spirv.insert(spirv.begin() + typeVarSection.endOffset, op.begin(), op.end());
|
||||||
addWords(typeVarSection.endOffset, op.size());
|
addWords(typeVarSection.endOffset, op.size());
|
||||||
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SPIRVEditor::AddVariable(const SPIRVOperation &op)
|
SPIRVId SPIRVEditor::AddVariable(const SPIRVOperation &op)
|
||||||
{
|
{
|
||||||
idOffsets[op[2]] = typeVarSection.endOffset;
|
SPIRVId id = op[2];
|
||||||
|
idOffsets[id] = typeVarSection.endOffset;
|
||||||
spirv.insert(spirv.begin() + typeVarSection.endOffset, op.begin(), op.end());
|
spirv.insert(spirv.begin() + typeVarSection.endOffset, op.begin(), op.end());
|
||||||
addWords(typeVarSection.endOffset, op.size());
|
addWords(typeVarSection.endOffset, op.size());
|
||||||
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SPIRVEditor::AddConstant(const SPIRVOperation &op)
|
SPIRVId SPIRVEditor::AddConstant(const SPIRVOperation &op)
|
||||||
{
|
{
|
||||||
idOffsets[op[2]] = typeVarSection.endOffset;
|
SPIRVId id = op[2];
|
||||||
|
idOffsets[id] = typeVarSection.endOffset;
|
||||||
spirv.insert(spirv.begin() + typeVarSection.endOffset, op.begin(), op.end());
|
spirv.insert(spirv.begin() + typeVarSection.endOffset, op.begin(), op.end());
|
||||||
addWords(typeVarSection.endOffset, op.size());
|
addWords(typeVarSection.endOffset, op.size());
|
||||||
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SPIRVEditor::AddFunction(const SPIRVOperation *ops, size_t count)
|
void SPIRVEditor::AddFunction(const SPIRVOperation *ops, size_t count)
|
||||||
|
|||||||
@@ -319,9 +319,9 @@ public:
|
|||||||
|
|
||||||
void SetName(uint32_t id, const char *name);
|
void SetName(uint32_t id, const char *name);
|
||||||
void AddDecoration(const SPIRVOperation &op);
|
void AddDecoration(const SPIRVOperation &op);
|
||||||
void AddType(const SPIRVOperation &op);
|
SPIRVId AddType(const SPIRVOperation &op);
|
||||||
void AddVariable(const SPIRVOperation &op);
|
SPIRVId AddVariable(const SPIRVOperation &op);
|
||||||
void AddConstant(const SPIRVOperation &op);
|
SPIRVId AddConstant(const SPIRVOperation &op);
|
||||||
void AddFunction(const SPIRVOperation *ops, size_t count);
|
void AddFunction(const SPIRVOperation *ops, size_t count);
|
||||||
|
|
||||||
SPIRVIterator GetID(SPIRVId id);
|
SPIRVIterator GetID(SPIRVId id);
|
||||||
@@ -351,15 +351,13 @@ public:
|
|||||||
SPIRVId AddConstantImmediate(T t)
|
SPIRVId AddConstantImmediate(T t)
|
||||||
{
|
{
|
||||||
SPIRVId typeId = DeclareType(scalar<T>());
|
SPIRVId typeId = DeclareType(scalar<T>());
|
||||||
SPIRVId retId = MakeId();
|
std::vector<uint32_t> words = {typeId, MakeId()};
|
||||||
std::vector<uint32_t> words = {typeId, retId};
|
|
||||||
|
|
||||||
words.insert(words.end(), sizeof(T) / 4, 0U);
|
words.insert(words.end(), sizeof(T) / 4, 0U);
|
||||||
|
|
||||||
memcpy(&words[2], &t, sizeof(T));
|
memcpy(&words[2], &t, sizeof(T));
|
||||||
|
|
||||||
AddConstant(SPIRVOperation(spv::OpConstant, words));
|
return AddConstant(SPIRVOperation(spv::OpConstant, words));
|
||||||
return retId;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// simple properties that are public.
|
// simple properties that are public.
|
||||||
|
|||||||
Reference in New Issue
Block a user