From 85f80cfbd115fdb35ab9f59ad5ee501d2f994965 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Thu, 16 Mar 2017 17:27:13 +0300 Subject: [PATCH] gl/debug: More fixes --- rpcs3/Emu/RSX/GL/GLTextureCache.h | 1 + rpcs3/Emu/RSX/rsx_methods.cpp | 2 +- rpcs3/Emu/RSX/rsx_utils.cpp | 11 +++++++---- rpcs3/GLGSRender.vcxproj | 2 +- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/rpcs3/Emu/RSX/GL/GLTextureCache.h b/rpcs3/Emu/RSX/GL/GLTextureCache.h index 0d3d1e79f5..27a58113e7 100644 --- a/rpcs3/Emu/RSX/GL/GLTextureCache.h +++ b/rpcs3/Emu/RSX/GL/GLTextureCache.h @@ -14,6 +14,7 @@ #include "GLRenderTargets.h" #include "../Common/TextureUtils.h" #include "../../Memory/vm.h" +#include "Utilities/Config.h" class GLGSRender; diff --git a/rpcs3/Emu/RSX/rsx_methods.cpp b/rpcs3/Emu/RSX/rsx_methods.cpp index 0dc82c5659..dc7e8d3695 100644 --- a/rpcs3/Emu/RSX/rsx_methods.cpp +++ b/rpcs3/Emu/RSX/rsx_methods.cpp @@ -543,7 +543,7 @@ namespace rsx } } - if (need_convert) + if (need_convert || need_clip) { //For now, only use this for actual scaled images, there are use cases that should not go through 3d engine, e.g program ucode transfer //TODO: Figure out more instances where we can use this without problems diff --git a/rpcs3/Emu/RSX/rsx_utils.cpp b/rpcs3/Emu/RSX/rsx_utils.cpp index 2b231da3c8..bd1506076d 100644 --- a/rpcs3/Emu/RSX/rsx_utils.cpp +++ b/rpcs3/Emu/RSX/rsx_utils.cpp @@ -30,12 +30,15 @@ namespace rsx void clip_image(u8 *dst, const u8 *src, int clip_x, int clip_y, int clip_w, int clip_h, int bpp, int src_pitch, int dst_pitch) { + u8 *pixels_src = (u8*)src + clip_y * src_pitch + clip_x * bpp; + u8 *pixels_dst = dst; + const u32 row_length = clip_w * bpp; + for (int y = 0; y < clip_h; ++y) { - u8 *dst_row = dst + y * dst_pitch; - const u8 *src_row = src + (y + clip_y) * src_pitch + clip_x * bpp; - - std::memmove(dst_row, src_row, clip_w * bpp); + std::memmove(pixels_dst, pixels_src, row_length); + pixels_src += src_pitch; + pixels_dst += dst_pitch; } } diff --git a/rpcs3/GLGSRender.vcxproj b/rpcs3/GLGSRender.vcxproj index 3c8811888b..85403b593e 100644 --- a/rpcs3/GLGSRender.vcxproj +++ b/rpcs3/GLGSRender.vcxproj @@ -69,7 +69,7 @@ ..\rsx_program_decompiler\rsx_decompiler;%(AdditionalIncludeDirectories) - Disabled + Full