From 5aa3e3180f4e36d442edc3ca3ce8a909c8ab31fa Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Fri, 12 Feb 2021 20:40:21 -0800 Subject: [PATCH] GPU: Force reinterpret off without copy image. Also, assert we have it when using it, since there's ifs. --- Common/GPU/OpenGL/GLQueueRunner.cpp | 2 ++ GPU/Common/FramebufferManagerCommon.cpp | 3 +++ 2 files changed, 5 insertions(+) diff --git a/Common/GPU/OpenGL/GLQueueRunner.cpp b/Common/GPU/OpenGL/GLQueueRunner.cpp index 44e0a2da27e1..80606241b5bc 100644 --- a/Common/GPU/OpenGL/GLQueueRunner.cpp +++ b/Common/GPU/OpenGL/GLQueueRunner.cpp @@ -1369,12 +1369,14 @@ void GLQueueRunner::PerformCopy(const GLRStep &step) { #if defined(USING_GLES2) #ifndef IOS + _assert_msg_(gl_extensions.OES_copy_image || gl_extensions.NV_copy_image || gl_extensions.EXT_copy_image, "Image copy extension expected"); glCopyImageSubDataOES( srcTex, target, srcLevel, srcRect.x, srcRect.y, srcZ, dstTex, target, dstLevel, dstPos.x, dstPos.y, dstZ, srcRect.w, srcRect.h, depth); #endif #else + _assert_msg_(gl_extensions.ARB_copy_image || gl_extensions.NV_copy_image, "Image copy extension expected"); if (gl_extensions.ARB_copy_image) { glCopyImageSubData( srcTex, target, srcLevel, srcRect.x, srcRect.y, srcZ, diff --git a/GPU/Common/FramebufferManagerCommon.cpp b/GPU/Common/FramebufferManagerCommon.cpp index 76b94ccbb1db..f30a05bee54a 100644 --- a/GPU/Common/FramebufferManagerCommon.cpp +++ b/GPU/Common/FramebufferManagerCommon.cpp @@ -551,6 +551,9 @@ void FramebufferManagerCommon::ReinterpretFramebuffer(VirtualFramebuffer *vfb, G bool doReinterpret = PSP_CoreParameter().compat.flags().ReinterpretFramebuffers && (lang == HLSL_D3D11 || lang == GLSL_VULKAN || lang == GLSL_3xx); + // Copy image required for now. + if (!gstate_c.Supports(GPU_SUPPORTS_COPY_IMAGE)) + doReinterpret = false; if (!doReinterpret) { // Fake reinterpret - just clear the way we always did on Vulkan. Just clear color and stencil. if (oldFormat == GE_FORMAT_565) {