From ba53fe9ceee8cdd8e7fc3c562c86f9bcaee53088 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Wed, 11 Jan 2017 15:50:44 +0300 Subject: [PATCH] [gl] Dont flush on every sync wait (Needs improvement to sync after next call) [gl] Increase index buffer size to 64M since some games draw excessive geometry --- rpcs3/Emu/RSX/GL/GLGSRender.cpp | 2 +- rpcs3/Emu/RSX/GL/GLHelpers.h | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/rpcs3/Emu/RSX/GL/GLGSRender.cpp b/rpcs3/Emu/RSX/GL/GLGSRender.cpp index 8252ab0e7b..0ac82dbfbb 100644 --- a/rpcs3/Emu/RSX/GL/GLGSRender.cpp +++ b/rpcs3/Emu/RSX/GL/GLGSRender.cpp @@ -556,7 +556,7 @@ void GLGSRender::on_init_thread() m_attrib_ring_buffer->create(gl::buffer::target::texture, 256 * 0x100000); m_uniform_ring_buffer->create(gl::buffer::target::uniform, 64 * 0x100000); - m_index_ring_buffer->create(gl::buffer::target::element_array, 16 * 0x100000); + m_index_ring_buffer->create(gl::buffer::target::element_array, 64 * 0x100000); m_vao.element_array_buffer = *m_index_ring_buffer; m_gl_texture_cache.initialize_rtt_cache(); diff --git a/rpcs3/Emu/RSX/GL/GLHelpers.h b/rpcs3/Emu/RSX/GL/GLHelpers.h index c50b22a7e8..795ec81896 100644 --- a/rpcs3/Emu/RSX/GL/GLHelpers.h +++ b/rpcs3/Emu/RSX/GL/GLHelpers.h @@ -601,10 +601,13 @@ namespace gl verify(HERE), m_fence != nullptr; bool done = false; + GLenum flag = GL_SYNC_FLUSH_COMMANDS_BIT; while (!done) { //Check if we are finished, wait time = 1us - GLenum err = glClientWaitSync(m_fence, GL_SYNC_FLUSH_COMMANDS_BIT, 1000); + GLenum err = glClientWaitSync(m_fence, flag, 1000); + flag = 0; + switch (err) { default: