From 005e6796b85341a3e79fc93e49337bb8d4e67fdf Mon Sep 17 00:00:00 2001 From: z0z0z Date: Sun, 26 Feb 2017 10:49:28 -0500 Subject: [PATCH] Disable pinned memory for AMD mesa drivers --- Source/Core/VideoBackends/OGL/StreamBuffer.cpp | 3 +-- Source/Core/VideoCommon/DriverDetails.cpp | 2 ++ 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::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(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,