diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 5 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_stream_buffer.cpp | 5 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_stream_buffer.h | 3 | ||||
| -rw-r--r-- | src/yuzu/main.cpp | 3 | ||||
| -rw-r--r-- | src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp | 4 |
5 files changed, 12 insertions, 8 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index afacc3fbd..56f2d2972 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp | |||
| @@ -105,11 +105,6 @@ void RasterizerOpenGL::CheckExtensions() { | |||
| 105 | Render_OpenGL, | 105 | Render_OpenGL, |
| 106 | "Anisotropic filter is not supported! This can cause graphical issues in some games."); | 106 | "Anisotropic filter is not supported! This can cause graphical issues in some games."); |
| 107 | } | 107 | } |
| 108 | if (!GLAD_GL_ARB_buffer_storage) { | ||
| 109 | LOG_WARNING( | ||
| 110 | Render_OpenGL, | ||
| 111 | "Buffer storage control is not supported! This can cause performance degradation."); | ||
| 112 | } | ||
| 113 | } | 108 | } |
| 114 | 109 | ||
| 115 | GLuint RasterizerOpenGL::SetupVertexFormat() { | 110 | GLuint RasterizerOpenGL::SetupVertexFormat() { |
diff --git a/src/video_core/renderer_opengl/gl_stream_buffer.cpp b/src/video_core/renderer_opengl/gl_stream_buffer.cpp index d0b14b3f6..35ba334e4 100644 --- a/src/video_core/renderer_opengl/gl_stream_buffer.cpp +++ b/src/video_core/renderer_opengl/gl_stream_buffer.cpp | |||
| @@ -15,7 +15,8 @@ MICROPROFILE_DEFINE(OpenGL_StreamBuffer, "OpenGL", "Stream Buffer Orphaning", | |||
| 15 | 15 | ||
| 16 | namespace OpenGL { | 16 | namespace OpenGL { |
| 17 | 17 | ||
| 18 | OGLStreamBuffer::OGLStreamBuffer(GLsizeiptr size, bool vertex_data_usage, bool prefer_coherent) | 18 | OGLStreamBuffer::OGLStreamBuffer(GLsizeiptr size, bool vertex_data_usage, bool prefer_coherent, |
| 19 | bool use_persistent) | ||
| 19 | : buffer_size(size) { | 20 | : buffer_size(size) { |
| 20 | gl_buffer.Create(); | 21 | gl_buffer.Create(); |
| 21 | 22 | ||
| @@ -29,7 +30,7 @@ OGLStreamBuffer::OGLStreamBuffer(GLsizeiptr size, bool vertex_data_usage, bool p | |||
| 29 | allocate_size *= 2; | 30 | allocate_size *= 2; |
| 30 | } | 31 | } |
| 31 | 32 | ||
| 32 | if (GLAD_GL_ARB_buffer_storage) { | 33 | if (use_persistent) { |
| 33 | persistent = true; | 34 | persistent = true; |
| 34 | coherent = prefer_coherent; | 35 | coherent = prefer_coherent; |
| 35 | const GLbitfield flags = | 36 | const GLbitfield flags = |
diff --git a/src/video_core/renderer_opengl/gl_stream_buffer.h b/src/video_core/renderer_opengl/gl_stream_buffer.h index 3d18ecb4d..f8383cbd4 100644 --- a/src/video_core/renderer_opengl/gl_stream_buffer.h +++ b/src/video_core/renderer_opengl/gl_stream_buffer.h | |||
| @@ -13,7 +13,8 @@ namespace OpenGL { | |||
| 13 | 13 | ||
| 14 | class OGLStreamBuffer : private NonCopyable { | 14 | class OGLStreamBuffer : private NonCopyable { |
| 15 | public: | 15 | public: |
| 16 | explicit OGLStreamBuffer(GLsizeiptr size, bool vertex_data_usage, bool prefer_coherent = false); | 16 | explicit OGLStreamBuffer(GLsizeiptr size, bool vertex_data_usage, bool prefer_coherent = false, |
| 17 | bool use_persistent = true); | ||
| 17 | ~OGLStreamBuffer(); | 18 | ~OGLStreamBuffer(); |
| 18 | 19 | ||
| 19 | GLuint GetHandle() const; | 20 | GLuint GetHandle() const; |
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 66a7080c9..443fec249 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp | |||
| @@ -750,6 +750,9 @@ void GMainWindow::OnDisplayTitleBars(bool show) { | |||
| 750 | QStringList GMainWindow::GetUnsupportedGLExtensions() { | 750 | QStringList GMainWindow::GetUnsupportedGLExtensions() { |
| 751 | QStringList unsupported_ext; | 751 | QStringList unsupported_ext; |
| 752 | 752 | ||
| 753 | if (!GLAD_GL_ARB_buffer_storage) { | ||
| 754 | unsupported_ext.append(QStringLiteral("ARB_buffer_storage")); | ||
| 755 | } | ||
| 753 | if (!GLAD_GL_ARB_direct_state_access) { | 756 | if (!GLAD_GL_ARB_direct_state_access) { |
| 754 | unsupported_ext.append(QStringLiteral("ARB_direct_state_access")); | 757 | unsupported_ext.append(QStringLiteral("ARB_direct_state_access")); |
| 755 | } | 758 | } |
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp index e2d3df180..f91b071bf 100644 --- a/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp +++ b/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp | |||
| @@ -52,6 +52,10 @@ private: | |||
| 52 | bool EmuWindow_SDL2_GL::SupportsRequiredGLExtensions() { | 52 | bool EmuWindow_SDL2_GL::SupportsRequiredGLExtensions() { |
| 53 | std::vector<std::string> unsupported_ext; | 53 | std::vector<std::string> unsupported_ext; |
| 54 | 54 | ||
| 55 | if (!GLAD_GL_ARB_buffer_storage) | ||
| 56 | unsupported_ext.push_back("ARB_buffer_storage"); | ||
| 57 | if (!GLAD_GL_ARB_direct_state_access) | ||
| 58 | unsupported_ext.push_back("ARB_direct_state_access"); | ||
| 55 | if (!GLAD_GL_ARB_vertex_type_10f_11f_11f_rev) | 59 | if (!GLAD_GL_ARB_vertex_type_10f_11f_11f_rev) |
| 56 | unsupported_ext.push_back("ARB_vertex_type_10f_11f_11f_rev"); | 60 | unsupported_ext.push_back("ARB_vertex_type_10f_11f_11f_rev"); |
| 57 | if (!GLAD_GL_ARB_texture_mirror_clamp_to_edge) | 61 | if (!GLAD_GL_ARB_texture_mirror_clamp_to_edge) |