diff --git a/Source/Core/VideoBackends/OGL/StreamBuffer.cpp b/Source/Core/VideoBackends/OGL/StreamBuffer.cpp index e32afd9a47..d50bc38ed3 100644 --- a/Source/Core/VideoBackends/OGL/StreamBuffer.cpp +++ b/Source/Core/VideoBackends/OGL/StreamBuffer.cpp @@ -216,7 +216,7 @@ public: class BufferStorage : public StreamBuffer { public: - BufferStorage(u32 type, u32 size, bool _coherent = false) + BufferStorage(u32 type, u32 size, bool _coherent = true) : StreamBuffer(type, size), coherent(_coherent) { CreateFences(); @@ -368,13 +368,12 @@ std::unique_ptr StreamBuffer::Create(u32 type, u32 size) return std::make_unique(type, size); // buffer storage works well in most situations - bool coherent = DriverDetails::HasBug(DriverDetails::BUG_BROKEN_EXPLICIT_FLUSH); if (g_ogl_config.bSupportsGLBufferStorage && !(DriverDetails::HasBug(DriverDetails::BUG_BROKEN_BUFFER_STORAGE) && type == GL_ARRAY_BUFFER) && !(DriverDetails::HasBug(DriverDetails::BUG_INTEL_BROKEN_BUFFER_STORAGE) && type == GL_ELEMENT_ARRAY_BUFFER)) - return std::make_unique(type, size, coherent); + return std::make_unique(type, size); // don't fall back to MapAnd* for Nvidia drivers if (DriverDetails::HasBug(DriverDetails::BUG_BROKEN_UNSYNC_MAPPING)) diff --git a/Source/Core/VideoCommon/DriverDetails.cpp b/Source/Core/VideoCommon/DriverDetails.cpp index b1440f8788..0a0e3e2b72 100644 --- a/Source/Core/VideoCommon/DriverDetails.cpp +++ b/Source/Core/VideoCommon/DriverDetails.cpp @@ -52,8 +52,6 @@ static BugInfo m_known_bugs[] = { BUG_BROKEN_BUFFER_STREAM, -1.0, -1.0, true}, {API_OPENGL, OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM, Family::UNKNOWN, BUG_BROKEN_NEGATED_BOOLEAN, -1.0, -1.0, true}, - {API_OPENGL, OS_ALL, VENDOR_QUALCOMM, DRIVER_QUALCOMM, Family::UNKNOWN, - BUG_BROKEN_EXPLICIT_FLUSH, -1.0, -1.0, true}, {API_OPENGL, OS_ALL, VENDOR_ARM, DRIVER_ARM, Family::UNKNOWN, BUG_BROKEN_BUFFER_STREAM, -1.0, -1.0, true}, {API_OPENGL, OS_ALL, VENDOR_ARM, DRIVER_ARM, Family::UNKNOWN, BUG_BROKEN_VSYNC, -1.0, -1.0, diff --git a/Source/Core/VideoCommon/DriverDetails.h b/Source/Core/VideoCommon/DriverDetails.h index 7a92ffcc61..c698c12caf 100644 --- a/Source/Core/VideoCommon/DriverDetails.h +++ b/Source/Core/VideoCommon/DriverDetails.h @@ -200,15 +200,6 @@ enum Bug // Causes misrenderings on a large amount of things that draw lines. BUG_BROKEN_GEOMETRY_SHADERS, - // Bug: Explicit flush is very slow on Qualcomm - // Started Version: -1 - // Ended Version: -1 - // Our ARB_buffer_storage code uses explicit flush to avoid coherent mapping. - // Qualcomm seems to have lots of overhead on explicit flushing, but the coherent mapping path is - // fine. - // So let's use coherent mapping there. - BUG_BROKEN_EXPLICIT_FLUSH, - // Bug: glGetBufferSubData for bounding box reads is slow on AMD drivers // Started Version: -1 // Ended Version: -1