diff --git a/plugins/GSdx/work_to_use_gpu_buffer_directly.patch b/plugins/GSdx/work_to_use_gpu_buffer_directly.patch deleted file mode 100644 index ca4deeeeab..0000000000 --- a/plugins/GSdx/work_to_use_gpu_buffer_directly.patch +++ /dev/null @@ -1,99 +0,0 @@ -diff --git a/plugins/GSdx/GS.cpp b/plugins/GSdx/GS.cpp -index a4c90a4..7a6b9a2 100644 ---- a/plugins/GSdx/GS.cpp -+++ b/plugins/GSdx/GS.cpp -@@ -58,7 +58,7 @@ extern bool RunLinuxDialog(); - #define PS2E_X86 0x01 // 32 bit - #define PS2E_X86_64 0x02 // 64 bit - --static GSRenderer* s_gs = NULL; -+GSRenderer* s_gs = NULL; - static void (*s_irq)() = NULL; - static uint8* s_basemem = NULL; - static int s_renderer = -1; -diff --git a/plugins/GSdx/GS.h b/plugins/GSdx/GS.h -index ec414a3..b5ce390 100644 ---- a/plugins/GSdx/GS.h -+++ b/plugins/GSdx/GS.h -@@ -1245,3 +1245,5 @@ enum {FREEZE_LOAD=0, FREEZE_SAVE=1, FREEZE_SIZE=2}; - struct GSFreezeData {int size; uint8* data;}; - - enum stateType {ST_WRITE, ST_TRANSFER, ST_VSYNC}; -+ -+enum GpuVertexType {GPU_VERTEX_BUFFER, GPU_INDEX_BUFFER}; -diff --git a/plugins/GSdx/GSDevice.h b/plugins/GSdx/GSDevice.h -index 97eb407..3042802 100644 ---- a/plugins/GSdx/GSDevice.h -+++ b/plugins/GSdx/GSDevice.h -@@ -157,6 +157,8 @@ public: - - GSTexture* GetCurrent(); - -+ virtual void* AllocateGpuBuffer(GpuVertexType type, uint32 max_count) { return NULL; } -+ - void Merge(GSTexture* st[2], GSVector4* sr, GSVector4* dr, const GSVector2i& fs, bool slbg, bool mmod, const GSVector4& c); - void Interlace(const GSVector2i& ds, int field, int mode, float yoffset); - void FXAA(); -diff --git a/plugins/GSdx/GSDeviceOGL.cpp b/plugins/GSdx/GSDeviceOGL.cpp -index 5d34ff4..0a85fd2 100644 ---- a/plugins/GSdx/GSDeviceOGL.cpp -+++ b/plugins/GSdx/GSDeviceOGL.cpp -@@ -986,6 +986,10 @@ void GSDeviceOGL::EndScene() - m_state.vb->EndScene(); - } - -+void GSDeviceOGL::AllocateGpuBuffer(GpuVertexType type, uint32 max_count) -+{ -+} -+ - void GSDeviceOGL::IASetVertexState(GSVertexBufferStateOGL* vb) - { - if (vb == NULL) vb = m_vb; -diff --git a/plugins/GSdx/GSDeviceOGL.h b/plugins/GSdx/GSDeviceOGL.h -index a1680a8..a2aff3c 100644 ---- a/plugins/GSdx/GSDeviceOGL.h -+++ b/plugins/GSdx/GSDeviceOGL.h -@@ -628,4 +628,6 @@ class GSDeviceOGL : public GSDevice - GLuint GetPaletteSamplerID(); - - void Barrier(GLbitfield b); -+ -+ void* AllocateGpuBuffer(GpuVertexType type, uint32 max_count); - }; -diff --git a/plugins/GSdx/GSState.cpp b/plugins/GSdx/GSState.cpp -index 2c7995c..735a269 100644 ---- a/plugins/GSdx/GSState.cpp -+++ b/plugins/GSdx/GSState.cpp -@@ -23,6 +23,9 @@ - #include "GSState.h" - #include "GSdx.h" - -+#include "GSRendererOGL.h"; -+extern GSRenderer* s_gs; -+ - //#define Offset_ST // Fixes Persona3 mini map alignment which is off even in software rendering - - GSState::GSState() -@@ -2285,8 +2288,20 @@ void GSState::GrowVertexBuffer() - { - int maxcount = std::max(m_vertex.maxcount * 3 / 2, 10000); - -- GSVertex* vertex = (GSVertex*)_aligned_malloc(sizeof(GSVertex) * maxcount, 32); -- uint32* index = (uint32*)_aligned_malloc(sizeof(uint32) * maxcount * 3, 32); // worst case is slightly less than vertex number * 3 -+ GSVertex* vertex = NULL; -+ uint32* index = NULL; -+ -+ if (s_gs && s_gs->m_dev) { -+ vertex = (GSVertex*)s_gs->m_dev->AllocateGpuBuffer(GPU_VERTEX_BUFFER, maxcount); -+ index = (uint32*)s_gs->m_dev->AllocateGpuBuffer(GPU_INDEX_BUFFER, maxcount*3); -+ } else { -+ maxcount = 10; -+ } -+ -+ if (!vertex || !index) { -+ vertex = (GSVertex*)_aligned_malloc(sizeof(GSVertex) * maxcount, 32); -+ index = (uint32*)_aligned_malloc(sizeof(uint32) * maxcount * 3, 32); // worst case is slightly less than vertex number * 3 -+ } - - if (!vertex || !index) - {