diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-03-12 07:27:29 +0100 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-03-13 22:33:05 +0100 |
commit | 69c7a01f88a1839a3d950cab968accfa5100ea18 (patch) | |
tree | 58c80a2133092b990ca11f3a357d70fab2c5fd0b | |
parent | vk_shader_decompiler: Fix default varying regression (diff) | |
download | yuzu-69c7a01f88a1839a3d950cab968accfa5100ea18.tar yuzu-69c7a01f88a1839a3d950cab968accfa5100ea18.tar.gz yuzu-69c7a01f88a1839a3d950cab968accfa5100ea18.tar.bz2 yuzu-69c7a01f88a1839a3d950cab968accfa5100ea18.tar.lz yuzu-69c7a01f88a1839a3d950cab968accfa5100ea18.tar.xz yuzu-69c7a01f88a1839a3d950cab968accfa5100ea18.tar.zst yuzu-69c7a01f88a1839a3d950cab968accfa5100ea18.zip |
-rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 9 | ||||
-rw-r--r-- | src/video_core/renderer_vulkan/vk_shader_decompiler.cpp | 9 |
2 files changed, 12 insertions, 6 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index 973d3fd11..3adf7f0cb 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp @@ -408,8 +408,11 @@ public: explicit GLSLDecompiler(const Device& device, const ShaderIR& ir, const Registry& registry, ShaderType stage, std::string_view identifier, std::string_view suffix) : device{device}, ir{ir}, registry{registry}, stage{stage}, - identifier{identifier}, suffix{suffix}, header{ir.GetHeader()}, - transform_feedback{BuildTransformFeedback(registry.GetGraphicsInfo())} {} + identifier{identifier}, suffix{suffix}, header{ir.GetHeader()} { + if (stage != ShaderType::Compute) { + transform_feedback = BuildTransformFeedback(registry.GetGraphicsInfo()); + } + } void Decompile() { DeclareHeader(); @@ -2553,7 +2556,7 @@ private: const std::string_view identifier; const std::string_view suffix; const Header header; - const std::unordered_map<u8, VaryingTFB> transform_feedback; + std::unordered_map<u8, VaryingTFB> transform_feedback; ShaderWriter code; diff --git a/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp b/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp index 7d51bf9af..b2c298051 100644 --- a/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp +++ b/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp @@ -277,8 +277,11 @@ public: explicit SPIRVDecompiler(const VKDevice& device, const ShaderIR& ir, ShaderType stage, const Registry& registry, const Specialization& specialization) : Module(0x00010300), device{device}, ir{ir}, stage{stage}, header{ir.GetHeader()}, - registry{registry}, specialization{specialization}, - transform_feedback{BuildTransformFeedback(registry.GetGraphicsInfo())} { + registry{registry}, specialization{specialization} { + if (stage != ShaderType::Compute) { + transform_feedback = BuildTransformFeedback(registry.GetGraphicsInfo()); + } + AddCapability(spv::Capability::Shader); AddCapability(spv::Capability::UniformAndStorageBuffer16BitAccess); AddCapability(spv::Capability::ImageQuery); @@ -2581,7 +2584,7 @@ private: const Tegra::Shader::Header header; const Registry& registry; 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"); |