diff --git a/plugins/GSdx/GS.cpp b/plugins/GSdx/GS.cpp index 41f9c69847..95ee464bbd 100644 --- a/plugins/GSdx/GS.cpp +++ b/plugins/GSdx/GS.cpp @@ -24,6 +24,7 @@ #include "GSUtil.h" #include "GSRendererSW.h" #include "GSRendererNull.h" +#include "GSDeviceSW.h" #include "GSDeviceNull.h" #ifdef _WINDOWS @@ -194,6 +195,7 @@ static int _GSopen(void** dsp, char* title, int renderer, int threads = -1) #ifdef _WINDOWS case 0: case 1: case 2: dev = new GSDevice9(); break; case 3: case 4: case 5: dev = new GSDevice11(); break; + // case 3: case 4: case 5: dev = new GSDeviceSW(); break; #endif case 12: case 13: dev = new GSDeviceNull(); break; } diff --git a/plugins/GSdx/GSRenderer.cpp b/plugins/GSdx/GSRenderer.cpp index 8bcdcfacaa..49d6bcb50d 100644 --- a/plugins/GSdx/GSRenderer.cpp +++ b/plugins/GSdx/GSRenderer.cpp @@ -355,7 +355,7 @@ void GSRenderer::VSync(int field) s += " | Recording..."; } - if (m_wnd.IsManaged()) + if(m_wnd.IsManaged()) { m_wnd.SetWindowText(s.c_str()); } diff --git a/plugins/GSdx/GSTextureCache.cpp b/plugins/GSdx/GSTextureCache.cpp index 2c327fc766..84b1c43ec1 100644 --- a/plugins/GSdx/GSTextureCache.cpp +++ b/plugins/GSdx/GSTextureCache.cpp @@ -783,7 +783,7 @@ GSTextureCache::Source* GSTextureCache::CreateSource(const GIFRegTEX0& TEX0, con GSTextureCache::Target* GSTextureCache::CreateTarget(const GIFRegTEX0& TEX0, int w, int h, int type) { - Target* t = new Target(m_renderer); + Target* t = new Target(m_renderer, m_temp); t->m_TEX0 = TEX0; @@ -816,8 +816,9 @@ GSTextureCache::Target* GSTextureCache::CreateTarget(const GIFRegTEX0& TEX0, int // GSTextureCache::Surface -GSTextureCache::Surface::Surface(GSRenderer* r) +GSTextureCache::Surface::Surface(GSRenderer* r, uint8* temp) : m_renderer(r) + , m_temp(temp) , m_texture(NULL) , m_age(0) { @@ -837,13 +838,12 @@ void GSTextureCache::Surface::Update() // GSTextureCache::Source GSTextureCache::Source::Source(GSRenderer* r, uint8* temp) - : Surface(r) + : Surface(r, temp) , m_palette(NULL) , m_initpalette(true) , m_fmt(0) , m_target(false) , m_complete(false) - , m_temp(temp) { memset(m_valid, 0, sizeof(m_valid)); @@ -1048,8 +1048,8 @@ void GSTextureCache::Source::Flush(uint32 count) // GSTextureCache::Target -GSTextureCache::Target::Target(GSRenderer* r) - : Surface(r) +GSTextureCache::Target::Target(GSRenderer* r, uint8* temp) + : Surface(r, temp) , m_type(-1) , m_used(false) { @@ -1091,13 +1091,11 @@ void GSTextureCache::Target::Update() } else { - static uint8* buff = (uint8*)::_aligned_malloc(1024 * 1024 * 4, 32); - int pitch = ((w + 3) & ~3) * 4; - m_renderer->m_mem.ReadTexture(o, r, buff, pitch, TEXA); + m_renderer->m_mem.ReadTexture(o, r, m_temp, pitch, TEXA); - t->Update(r.rsize(), buff, pitch); + t->Update(r.rsize(), m_temp, pitch); } // m_renderer->m_perfmon.Put(GSPerfMon::Unswizzle, w * h * 4); diff --git a/plugins/GSdx/GSTextureCache.h b/plugins/GSdx/GSTextureCache.h index f15cd3c472..18052fddcf 100644 --- a/plugins/GSdx/GSTextureCache.h +++ b/plugins/GSdx/GSTextureCache.h @@ -49,9 +49,10 @@ public: GIFRegTEX0 m_TEX0; GIFRegTEXA m_TEXA; int m_age; + uint8* m_temp; public: - explicit Surface(GSRenderer* r); + Surface(GSRenderer* r, uint8* temp); virtual ~Surface(); virtual void Update(); @@ -72,7 +73,6 @@ public: int m_fmt; bool m_target; bool m_complete; - uint8* m_temp; public: Source(GSRenderer* r, uint8* temp); @@ -90,7 +90,7 @@ public: GSVector4i m_valid; public: - explicit Target(GSRenderer* r); + Target(GSRenderer* r, uint8* temp); virtual void Update(); }; diff --git a/plugins/GSdx/stdafx.cpp b/plugins/GSdx/stdafx.cpp index 843588ce8c..1ab4397375 100644 --- a/plugins/GSdx/stdafx.cpp +++ b/plugins/GSdx/stdafx.cpp @@ -47,7 +47,7 @@ void* vmalloc(size_t size, bool code) void vmfree(void* ptr, size_t size) { - VirtualFree(ptr, size, MEM_RELEASE); + VirtualFree(ptr, 0, MEM_RELEASE); } #else