diff options
author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2019-05-11 07:21:02 +0200 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-06-21 02:36:12 +0200 |
commit | d65a4af89582f272efbbfd47d1ee78e616553312 (patch) | |
tree | 82e3742e6a03f55ebe4b3aecc21c554d4d5d9334 | |
parent | engine_upload: Addapt to new Texture Cache (diff) | |
download | yuzu-d65a4af89582f272efbbfd47d1ee78e616553312.tar yuzu-d65a4af89582f272efbbfd47d1ee78e616553312.tar.gz yuzu-d65a4af89582f272efbbfd47d1ee78e616553312.tar.bz2 yuzu-d65a4af89582f272efbbfd47d1ee78e616553312.tar.lz yuzu-d65a4af89582f272efbbfd47d1ee78e616553312.tar.xz yuzu-d65a4af89582f272efbbfd47d1ee78e616553312.tar.zst yuzu-d65a4af89582f272efbbfd47d1ee78e616553312.zip |
-rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 6 | ||||
-rw-r--r-- | src/video_core/texture_cache/texture_cache.h | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index 2d6fd154a..2872dbdeb 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp @@ -370,10 +370,12 @@ void RasterizerOpenGL::SetupCachedFramebuffer(const FramebufferCacheKey& fbkey, return; if (fbkey.is_single_buffer) { - if (fbkey.color_attachments[0] != GL_NONE) { + if (fbkey.color_attachments[0] != GL_NONE && fbkey.colors[0]) { fbkey.colors[0]->Attach(fbkey.color_attachments[0]); + glDrawBuffer(fbkey.color_attachments[0]); + } else { + glDrawBuffer(GL_NONE); } - glDrawBuffer(fbkey.color_attachments[0]); } else { for (std::size_t index = 0; index < Maxwell::NumRenderTargets; ++index) { if (fbkey.colors[index]) { diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index 1b8ada910..7058399e2 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -133,6 +133,11 @@ public: return {}; } + if (regs.color_mask[index].raw != 0) { + SetEmptyColorBuffer(index); + return {}; + } + const auto& config{regs.rt[index]}; const auto gpu_addr{config.Address()}; if (!gpu_addr) { |