gsdx: increase the allocation of the GS memory

GS memory is only 4MB but rendering is allowed to be 2048x2048
with 32 bits format (so 16MB). Technically the frame/depth buffer can start
at the end of the GS memory. Let's not waste too much memory.

Fix crash with BASARAX

(game draws a 2048x1664 32 bits area)
This commit is contained in:
Gregory Hainaut 2016-09-07 08:27:37 +02:00
parent c638e5ec87
commit 145d6e29c2
1 changed files with 2 additions and 2 deletions

View File

@ -83,7 +83,7 @@ GSLocalMemory::psm_t GSLocalMemory::m_psm[64];
GSLocalMemory::GSLocalMemory() GSLocalMemory::GSLocalMemory()
: m_clut(this) : m_clut(this)
{ {
m_vm8 = (uint8*)vmalloc(m_vmsize * 2, false); m_vm8 = (uint8*)vmalloc(m_vmsize * 4, false);
m_vm16 = (uint16*)m_vm8; m_vm16 = (uint16*)m_vm8;
m_vm32 = (uint32*)m_vm8; m_vm32 = (uint32*)m_vm8;
@ -457,7 +457,7 @@ GSLocalMemory::GSLocalMemory()
GSLocalMemory::~GSLocalMemory() GSLocalMemory::~GSLocalMemory()
{ {
vmfree(m_vm8, m_vmsize * 2); vmfree(m_vm8, m_vmsize * 4);
for_each(m_omap.begin(), m_omap.end(), aligned_free_second()); for_each(m_omap.begin(), m_omap.end(), aligned_free_second());
for_each(m_pomap.begin(), m_pomap.end(), aligned_free_second()); for_each(m_pomap.begin(), m_pomap.end(), aligned_free_second());