summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorz0z0z <trash0@openmailbox.org>2017-02-26 10:49:28 -0500
committerz0z0z <trash0@openmailbox.org>2017-02-26 10:49:28 -0500
commit005e6796b85341a3e79fc93e49337bb8d4e67fdf (patch)
treeb4ab355e634c815413ab58ca7b38361bf3dcd90b
parent51136681dfa77c88f548d187c9c7954f0ad6ac32 (diff)
Disable pinned memory for AMD mesa drivers
-rw-r--r--Source/Core/VideoBackends/OGL/StreamBuffer.cpp3
-rw-r--r--Source/Core/VideoCommon/DriverDetails.cpp2
2 files changed, 3 insertions, 2 deletions
diff --git a/Source/Core/VideoBackends/OGL/StreamBuffer.cpp b/Source/Core/VideoBackends/OGL/StreamBuffer.cpp
index 91a63389a7..4148f5fee3 100644
--- a/Source/Core/VideoBackends/OGL/StreamBuffer.cpp
+++ b/Source/Core/VideoBackends/OGL/StreamBuffer.cpp
@@ -356,8 +356,7 @@ std::unique_ptr<StreamBuffer> StreamBuffer::Create(u32 type, u32 size)
{
// pinned memory is much faster than buffer storage on AMD cards
if (g_ogl_config.bSupportsGLPinnedMemory &&
- !(DriverDetails::HasBug(DriverDetails::BUG_BROKEN_PINNED_MEMORY) &&
- type == GL_ELEMENT_ARRAY_BUFFER))
+ !(DriverDetails::HasBug(DriverDetails::BUG_BROKEN_PINNED_MEMORY)))
return std::make_unique<PinnedMemory>(type, size);
// buffer storage works well in most situations
diff --git a/Source/Core/VideoCommon/DriverDetails.cpp b/Source/Core/VideoCommon/DriverDetails.cpp
index 072f7b69de..6d7852fa47 100644
--- a/Source/Core/VideoCommon/DriverDetails.cpp
+++ b/Source/Core/VideoCommon/DriverDetails.cpp
@@ -70,6 +70,8 @@ static BugInfo m_known_bugs[] = {
1064.0, true},
{API_OPENGL, OS_LINUX, VENDOR_ATI, DRIVER_ATI, Family::UNKNOWN, BUG_BROKEN_PINNED_MEMORY, -1.0,
-1.0, true},
+ {API_OPENGL, OS_ALL, VENDOR_MESA, DRIVER_R600, Family::UNKNOWN, BUG_BROKEN_PINNED_MEMORY, -1.0,
+ -1.0, true},
{API_OPENGL, OS_LINUX, VENDOR_NVIDIA, DRIVER_NVIDIA, Family::UNKNOWN, BUG_BROKEN_BUFFER_STORAGE,
-1.0, 33138.0, true},
{API_OPENGL, OS_OSX, VENDOR_INTEL, DRIVER_INTEL, Family::INTEL_SANDY, BUG_PRIMITIVE_RESTART,