From 6d52415d5025a593e643d2a823a392c1a07ec920 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Mon, 9 Mar 2026 17:53:45 +0300 Subject: [PATCH] gl: Ignore range offset when doing readback operations - OGL desperately needs a functioning DMA layer --- rpcs3/Emu/RSX/GL/GLTextureCache.h | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/rpcs3/Emu/RSX/GL/GLTextureCache.h b/rpcs3/Emu/RSX/GL/GLTextureCache.h index 8bfc92f902..7fb932681b 100644 --- a/rpcs3/Emu/RSX/GL/GLTextureCache.h +++ b/rpcs3/Emu/RSX/GL/GLTextureCache.h @@ -171,14 +171,6 @@ namespace gl { static_cast(src_area.width()), static_cast(src_area.height()), 1 } }; - u32 pbo_offset = 0; - if (valid_range.valid()) - { - const u32 section_base = get_section_base(); - pbo_offset = valid_range.start - section_base; - ensure(valid_range.start >= section_base && pbo_offset <= pbo.size()); - } - bool use_driver_pixel_transform = true; if (get_driver_caps().ARB_compute_shader_supported) [[likely]] { @@ -214,7 +206,7 @@ namespace gl real_pitch = pack_info.size * src->width(); const u64 data_length = pack_info.size * mem_info.image_size_in_texels; - scratch_mem.copy_to(&pbo, reinterpret_cast(out_offset), pbo_offset, data_length); + scratch_mem.copy_to(&pbo, reinterpret_cast(out_offset), 0, data_length); } else { @@ -237,7 +229,7 @@ namespace gl pack_settings.alignment(1); pack_settings.swap_bytes(pack_unpack_swap_bytes); - src->copy_to(pbo, pbo_offset, format, type, 0, src_rgn, pack_settings); + src->copy_to(pbo, 0, format, type, 0, src_rgn, pack_settings); } if (auto error = glGetError())