From 6feb59fef51411469802aab58855d73f652f9d85 Mon Sep 17 00:00:00 2001 From: Alessandro Vetere Date: Fri, 16 Aug 2019 15:52:37 +0200 Subject: [PATCH] GSdx-hw OGL: log if tex size gt PBO segment size. Texture data may be corrupted in this case due to missing fences synchronization. --- plugins/GSdx/Renderers/OpenGL/GSTextureOGL.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/GSdx/Renderers/OpenGL/GSTextureOGL.cpp b/plugins/GSdx/Renderers/OpenGL/GSTextureOGL.cpp index f0e871f0f3..60f500a951 100644 --- a/plugins/GSdx/Renderers/OpenGL/GSTextureOGL.cpp +++ b/plugins/GSdx/Renderers/OpenGL/GSTextureOGL.cpp @@ -121,6 +121,11 @@ namespace PboPool { // Align current transfer on the start of the segment m_offset = m_seg_size * segment_next; + if (m_size > m_seg_size) { + fprintf(stderr, "BUG: PBO Map size %u is bigger than a single segment %u. Crossing more than one fence is not supported yet, texture data may be corrupted.\n", m_size, m_seg_size); + // TODO Synchronize all crossed fences + } + // protect the left segment m_fence[segment_current] = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);