video_core: Make ARB_buffer_storage a required extension
This commit is contained in:
parent
07f7ce1da2
commit
58c0d37422
|
@ -105,11 +105,6 @@ void RasterizerOpenGL::CheckExtensions() {
|
||||||
Render_OpenGL,
|
Render_OpenGL,
|
||||||
"Anisotropic filter is not supported! This can cause graphical issues in some games.");
|
"Anisotropic filter is not supported! This can cause graphical issues in some games.");
|
||||||
}
|
}
|
||||||
if (!GLAD_GL_ARB_buffer_storage) {
|
|
||||||
LOG_WARNING(
|
|
||||||
Render_OpenGL,
|
|
||||||
"Buffer storage control is not supported! This can cause performance degradation.");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GLuint RasterizerOpenGL::SetupVertexFormat() {
|
GLuint RasterizerOpenGL::SetupVertexFormat() {
|
||||||
|
|
|
@ -15,7 +15,8 @@ MICROPROFILE_DEFINE(OpenGL_StreamBuffer, "OpenGL", "Stream Buffer Orphaning",
|
||||||
|
|
||||||
namespace OpenGL {
|
namespace OpenGL {
|
||||||
|
|
||||||
OGLStreamBuffer::OGLStreamBuffer(GLsizeiptr size, bool vertex_data_usage, bool prefer_coherent)
|
OGLStreamBuffer::OGLStreamBuffer(GLsizeiptr size, bool vertex_data_usage, bool prefer_coherent,
|
||||||
|
bool use_persistent)
|
||||||
: buffer_size(size) {
|
: buffer_size(size) {
|
||||||
gl_buffer.Create();
|
gl_buffer.Create();
|
||||||
|
|
||||||
|
@ -29,7 +30,7 @@ OGLStreamBuffer::OGLStreamBuffer(GLsizeiptr size, bool vertex_data_usage, bool p
|
||||||
allocate_size *= 2;
|
allocate_size *= 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GLAD_GL_ARB_buffer_storage) {
|
if (use_persistent) {
|
||||||
persistent = true;
|
persistent = true;
|
||||||
coherent = prefer_coherent;
|
coherent = prefer_coherent;
|
||||||
const GLbitfield flags =
|
const GLbitfield flags =
|
||||||
|
|
|
@ -13,7 +13,8 @@ namespace OpenGL {
|
||||||
|
|
||||||
class OGLStreamBuffer : private NonCopyable {
|
class OGLStreamBuffer : private NonCopyable {
|
||||||
public:
|
public:
|
||||||
explicit OGLStreamBuffer(GLsizeiptr size, bool vertex_data_usage, bool prefer_coherent = false);
|
explicit OGLStreamBuffer(GLsizeiptr size, bool vertex_data_usage, bool prefer_coherent = false,
|
||||||
|
bool use_persistent = true);
|
||||||
~OGLStreamBuffer();
|
~OGLStreamBuffer();
|
||||||
|
|
||||||
GLuint GetHandle() const;
|
GLuint GetHandle() const;
|
||||||
|
|
|
@ -750,6 +750,9 @@ void GMainWindow::OnDisplayTitleBars(bool show) {
|
||||||
QStringList GMainWindow::GetUnsupportedGLExtensions() {
|
QStringList GMainWindow::GetUnsupportedGLExtensions() {
|
||||||
QStringList unsupported_ext;
|
QStringList unsupported_ext;
|
||||||
|
|
||||||
|
if (!GLAD_GL_ARB_buffer_storage) {
|
||||||
|
unsupported_ext.append(QStringLiteral("ARB_buffer_storage"));
|
||||||
|
}
|
||||||
if (!GLAD_GL_ARB_direct_state_access) {
|
if (!GLAD_GL_ARB_direct_state_access) {
|
||||||
unsupported_ext.append(QStringLiteral("ARB_direct_state_access"));
|
unsupported_ext.append(QStringLiteral("ARB_direct_state_access"));
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,6 +52,10 @@ private:
|
||||||
bool EmuWindow_SDL2_GL::SupportsRequiredGLExtensions() {
|
bool EmuWindow_SDL2_GL::SupportsRequiredGLExtensions() {
|
||||||
std::vector<std::string> unsupported_ext;
|
std::vector<std::string> unsupported_ext;
|
||||||
|
|
||||||
|
if (!GLAD_GL_ARB_buffer_storage)
|
||||||
|
unsupported_ext.push_back("ARB_buffer_storage");
|
||||||
|
if (!GLAD_GL_ARB_direct_state_access)
|
||||||
|
unsupported_ext.push_back("ARB_direct_state_access");
|
||||||
if (!GLAD_GL_ARB_vertex_type_10f_11f_11f_rev)
|
if (!GLAD_GL_ARB_vertex_type_10f_11f_11f_rev)
|
||||||
unsupported_ext.push_back("ARB_vertex_type_10f_11f_11f_rev");
|
unsupported_ext.push_back("ARB_vertex_type_10f_11f_11f_rev");
|
||||||
if (!GLAD_GL_ARB_texture_mirror_clamp_to_edge)
|
if (!GLAD_GL_ARB_texture_mirror_clamp_to_edge)
|
||||||
|
|
Reference in New Issue