mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-11-13 09:39:33 +01:00
GLES: Don't use framebuffer fetch on Adreno 5xx
On an Adreno 506 (driver V@145, Redmi Note 4), fetch can return black for pixels an earlier draw in the same render pass wrote, which showed up as dark noise on LittleBigPlanet's foliage. Framebuffer copies render it correctly, and that frame needs only a few of them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
15e4c378fb
commit
4a98ebba11
1 file changed
+4
-1
@@ -746,7 +746,10 @@ OpenGLContext::OpenGLContext(bool canChangeSwapInterval) : renderManager_(frameT
|
||||
}
|
||||
|
||||
// NOTE: We only support framebuffer fetch on ES3 due to past issues..
|
||||
if (gl_extensions.IsGLES && gl_extensions.GLES3) {
|
||||
// Adreno 5xx (seen on a 506, driver V@145) can fetch black instead of what an earlier draw in the same pass
|
||||
// wrote there, so it gets framebuffer copies instead.
|
||||
bool brokenFramebufferFetch = caps_.vendor == GPUVendor::VENDOR_QUALCOMM && gl_extensions.modelNumber < 600;
|
||||
if (gl_extensions.IsGLES && gl_extensions.GLES3 && !brokenFramebufferFetch) {
|
||||
caps_.framebufferFetchSupported = (gl_extensions.EXT_shader_framebuffer_fetch || gl_extensions.ARM_shader_framebuffer_fetch);
|
||||
|
||||
if (gl_extensions.EXT_shader_framebuffer_fetch) {
|
||||
|
||||
Reference in new issue
Block a user