rendering: add keyword-aware shader variant selection
This commit is contained in:
@@ -569,12 +569,17 @@ bool WriteShaderArtifactFile(const fs::path& artifactPath, const Shader& shader)
|
||||
variantHeader.stage = static_cast<Core::uint32>(variant.stage);
|
||||
variantHeader.language = static_cast<Core::uint32>(variant.language);
|
||||
variantHeader.backend = static_cast<Core::uint32>(variant.backend);
|
||||
variantHeader.keywordCount =
|
||||
static_cast<Core::uint32>(variant.requiredKeywords.enabledKeywords.Size());
|
||||
variantHeader.compiledBinarySize = static_cast<Core::uint64>(variant.compiledBinary.Size());
|
||||
output.write(reinterpret_cast<const char*>(&variantHeader), sizeof(variantHeader));
|
||||
|
||||
WriteString(output, variant.entryPoint);
|
||||
WriteString(output, variant.profile);
|
||||
WriteString(output, variant.sourceCode);
|
||||
for (const Containers::String& keyword : variant.requiredKeywords.enabledKeywords) {
|
||||
WriteString(output, keyword);
|
||||
}
|
||||
if (!variant.compiledBinary.Empty()) {
|
||||
output.write(
|
||||
reinterpret_cast<const char*>(variant.compiledBinary.Data()),
|
||||
|
||||
Reference in New Issue
Block a user