|
|
@ -277,8 +277,11 @@ public:
|
|
|
|
explicit SPIRVDecompiler(const VKDevice& device, const ShaderIR& ir, ShaderType stage,
|
|
|
|
explicit SPIRVDecompiler(const VKDevice& device, const ShaderIR& ir, ShaderType stage,
|
|
|
|
const Registry& registry, const Specialization& specialization)
|
|
|
|
const Registry& registry, const Specialization& specialization)
|
|
|
|
: Module(0x00010300), device{device}, ir{ir}, stage{stage}, header{ir.GetHeader()},
|
|
|
|
: Module(0x00010300), device{device}, ir{ir}, stage{stage}, header{ir.GetHeader()},
|
|
|
|
registry{registry}, specialization{specialization},
|
|
|
|
registry{registry}, specialization{specialization} {
|
|
|
|
transform_feedback{BuildTransformFeedback(registry.GetGraphicsInfo())} {
|
|
|
|
if (stage != ShaderType::Compute) {
|
|
|
|
|
|
|
|
transform_feedback = BuildTransformFeedback(registry.GetGraphicsInfo());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
AddCapability(spv::Capability::Shader);
|
|
|
|
AddCapability(spv::Capability::Shader);
|
|
|
|
AddCapability(spv::Capability::UniformAndStorageBuffer16BitAccess);
|
|
|
|
AddCapability(spv::Capability::UniformAndStorageBuffer16BitAccess);
|
|
|
|
AddCapability(spv::Capability::ImageQuery);
|
|
|
|
AddCapability(spv::Capability::ImageQuery);
|
|
|
@ -2581,7 +2584,7 @@ private:
|
|
|
|
const Tegra::Shader::Header header;
|
|
|
|
const Tegra::Shader::Header header;
|
|
|
|
const Registry& registry;
|
|
|
|
const Registry& registry;
|
|
|
|
const Specialization& specialization;
|
|
|
|
const Specialization& specialization;
|
|
|
|
const std::unordered_map<u8, VaryingTFB> transform_feedback;
|
|
|
|
std::unordered_map<u8, VaryingTFB> transform_feedback;
|
|
|
|
|
|
|
|
|
|
|
|
const Id t_void = Name(TypeVoid(), "void");
|
|
|
|
const Id t_void = Name(TypeVoid(), "void");
|
|
|
|
|
|
|
|
|
|
|
|