From 96244799330b00fe02cb8463a13873caeaab5ba5 Mon Sep 17 00:00:00 2001 From: TellowKrinkle Date: Fri, 30 Sep 2022 20:37:27 -0500 Subject: [PATCH] VideoBackends:OGL: Add support for vertex shader point and line expansion --- Source/Core/VideoBackends/OGL/OGLRender.cpp | 2 ++ Source/Core/VideoBackends/OGL/OGLVertexManager.cpp | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/Source/Core/VideoBackends/OGL/OGLRender.cpp b/Source/Core/VideoBackends/OGL/OGLRender.cpp index 78f9d8e176..49400d73ff 100644 --- a/Source/Core/VideoBackends/OGL/OGLRender.cpp +++ b/Source/Core/VideoBackends/OGL/OGLRender.cpp @@ -423,6 +423,8 @@ Renderer::Renderer(std::unique_ptr main_gl_context, float backbuffer_ ((GLExtensions::Version() >= 310) || GLExtensions::Supports("GL_NV_primitive_restart")); g_Config.backend_info.bSupportsFragmentStoresAndAtomics = GLExtensions::Supports("GL_ARB_shader_storage_buffer_object"); + g_Config.backend_info.bSupportsVSLinePointExpand = + GLExtensions::Supports("GL_ARB_shader_storage_buffer_object"); g_Config.backend_info.bSupportsGSInstancing = GLExtensions::Supports("GL_ARB_gpu_shader5"); g_Config.backend_info.bSupportsSSAA = GLExtensions::Supports("GL_ARB_gpu_shader5") && GLExtensions::Supports("GL_ARB_sample_shading"); diff --git a/Source/Core/VideoBackends/OGL/OGLVertexManager.cpp b/Source/Core/VideoBackends/OGL/OGLVertexManager.cpp index 38024b0875..e47e425a3b 100644 --- a/Source/Core/VideoBackends/OGL/OGLVertexManager.cpp +++ b/Source/Core/VideoBackends/OGL/OGLVertexManager.cpp @@ -58,6 +58,11 @@ bool VertexManager::Initialize() m_vertex_buffer = StreamBuffer::Create(GL_ARRAY_BUFFER, VERTEX_STREAM_BUFFER_SIZE); m_index_buffer = StreamBuffer::Create(GL_ELEMENT_ARRAY_BUFFER, INDEX_STREAM_BUFFER_SIZE); + if (g_ActiveConfig.UseVSForLinePointExpand() || + g_ActiveConfig.backend_info.bSupportsDynamicVertexLoader) + { + glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 1, m_vertex_buffer->GetGLBufferId()); + } if (g_ActiveConfig.backend_info.bSupportsPaletteConversion) {