From 0993ee08e6862ea77fed6005a2021876ed295198 Mon Sep 17 00:00:00 2001 From: vlj Date: Mon, 22 Jun 2015 00:48:15 +0200 Subject: [PATCH] sysGCM: Fix for getNextCommandBufferBeginEnd We were sometimes using memory outside of buffer. It fixes vertex attribute test. --- rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp b/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp index c08ac9a50a..bfbfe1eeee 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellGcmSys.cpp @@ -1164,7 +1164,7 @@ s32 cellGcmSetTile(u8 index, u8 location, u32 offset, u32 size, u32 pitch, u8 co static std::pair getNextCommandBufferBeginEnd(u32 current) { size_t currentRange = (current - g_defaultCommandBufferBegin) / (32 * 1024); - if (currentRange >= g_defaultCommandBufferFragmentCount) + if (currentRange >= g_defaultCommandBufferFragmentCount - 1) return std::make_pair(g_defaultCommandBufferBegin + 4096, g_defaultCommandBufferBegin + 32 * 1024 - 4); return std::make_pair(g_defaultCommandBufferBegin + (currentRange + 1) * 32 * 1024, g_defaultCommandBufferBegin + (currentRange + 2) * 32 * 1024 - 4);