texture_cache return invalid buffer on deactivated color_mask
This commit is contained in:
parent
6bd034eae9
commit
d65a4af895
|
@ -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);
|
||||
}
|
||||
} else {
|
||||
for (std::size_t index = 0; index < Maxwell::NumRenderTargets; ++index) {
|
||||
if (fbkey.colors[index]) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
Reference in New Issue