summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony <Helios747@users.noreply.github.com>2018-06-05 12:06:17 -0700
committerGitHub <noreply@github.com>2018-06-05 12:06:17 -0700
commit36ff2a20d52ed9901ee5d24644b2d0e026a1fd2c (patch)
treec06b2bdc42b4f9a0c5629d6471f1dd94b8735f80
parent89b7da74e4109959a775b7b5fd2a135c8baabe4c (diff)
parentfdfd8b19d62dbd254046aaabdc4c7a9ee167467a (diff)
Merge pull request #6954 from degasus/coherent
OGL/Streambuffer: Use coherent mapping by default.
-rw-r--r--Source/Core/VideoBackends/OGL/StreamBuffer.cpp5
-rw-r--r--Source/Core/VideoCommon/DriverDetails.cpp2
-rw-r--r--Source/Core/VideoCommon/DriverDetails.h9
3 files changed, 2 insertions, 14 deletions
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> StreamBuffer::Create(u32 type, u32 size)
return std::make_unique<PinnedMemory>(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<BufferStorage>(type, size, coherent);
+ return std::make_unique<BufferStorage>(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