summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2020-03-12 07:27:29 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2020-03-13 22:33:05 +0100
commit69c7a01f88a1839a3d950cab968accfa5100ea18 (patch)
tree58c80a2133092b990ca11f3a357d70fab2c5fd0b
parentvk_shader_decompiler: Fix default varying regression (diff)
downloadyuzu-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.cpp9
-rw-r--r--src/video_core/renderer_vulkan/vk_shader_decompiler.cpp9
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");