diff --git a/plugins/GSdx/GSDevice.cpp b/plugins/GSdx/GSDevice.cpp index 723a365314..7114b43ec0 100644 --- a/plugins/GSdx/GSDevice.cpp +++ b/plugins/GSdx/GSDevice.cpp @@ -188,7 +188,7 @@ void GSDevice::Merge(GSTexture* st[2], GSVector4* sr, GSVector4* dr, const GSVec { if(!m_merge || !(m_merge->GetSize() == fs)) { - delete m_merge; + Recycle(m_merge); m_merge = CreateRenderTarget(fs.x, fs.y, false); } diff --git a/plugins/GSdx/GSRendererSW.cpp b/plugins/GSdx/GSRendererSW.cpp index 601ae1cc9a..d27d3daa95 100644 --- a/plugins/GSdx/GSRendererSW.cpp +++ b/plugins/GSdx/GSRendererSW.cpp @@ -113,6 +113,7 @@ GSTexture* GSRendererSW::GetOutput(int i) s_n++; } + ReleaseTextureBufferLock(); } return m_texture[i]; diff --git a/plugins/GSdx/GSTextureCache.cpp b/plugins/GSdx/GSTextureCache.cpp index e70af27609..c4c9d78f11 100644 --- a/plugins/GSdx/GSTextureCache.cpp +++ b/plugins/GSdx/GSTextureCache.cpp @@ -647,6 +647,8 @@ GSTextureCache::Source* GSTextureCache::CreateSource(const GIFRegTEX0& TEX0, con switch(TEX0.PSM) { default: + // Note: this assertion triggers in Xenosaga2 after the first intro scenes, when + // gameplay first begins (in the city). ASSERT(0); case PSM_PSMCT32: src->m_fmt = FMT_32;