vk/gl_shader_decompiler: Silence assertion on compute

This commit is contained in:
ReinUsesLisp 2020-03-12 03:27:29 -03:00
parent 62560f1e63
commit 69c7a01f88
2 changed files with 12 additions and 6 deletions

View file

@ -408,8 +408,11 @@ public:
explicit GLSLDecompiler(const Device& device, const ShaderIR& ir, const Registry& registry, explicit GLSLDecompiler(const Device& device, const ShaderIR& ir, const Registry& registry,
ShaderType stage, std::string_view identifier, std::string_view suffix) ShaderType stage, std::string_view identifier, std::string_view suffix)
: device{device}, ir{ir}, registry{registry}, stage{stage}, : device{device}, ir{ir}, registry{registry}, stage{stage},
identifier{identifier}, suffix{suffix}, header{ir.GetHeader()}, identifier{identifier}, suffix{suffix}, header{ir.GetHeader()} {
transform_feedback{BuildTransformFeedback(registry.GetGraphicsInfo())} {} if (stage != ShaderType::Compute) {
transform_feedback = BuildTransformFeedback(registry.GetGraphicsInfo());
}
}
void Decompile() { void Decompile() {
DeclareHeader(); DeclareHeader();
@ -2553,7 +2556,7 @@ private:
const std::string_view identifier; const std::string_view identifier;
const std::string_view suffix; const std::string_view suffix;
const Header header; const Header header;
const std::unordered_map<u8, VaryingTFB> transform_feedback; std::unordered_map<u8, VaryingTFB> transform_feedback;
ShaderWriter code; ShaderWriter code;

View file

@ -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");