summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/Src/StreamBuffer.cpp
diff options
context:
space:
mode:
authorRyan Houdek <Sonicadvance1@gmail.com>2013-12-31 15:41:50 -0600
committerRyan Houdek <Sonicadvance1@gmail.com>2013-12-31 15:41:50 -0600
commit8d8b0fc884367bc4d433d698a790ef5badee6957 (patch)
treea15158d7f38eea2f63432da4f75615ad5919571c /Source/Core/VideoBackends/OGL/Src/StreamBuffer.cpp
parent0b31fc8f52444964398b4d0253793c22e7f042b3 (diff)
parent6d63db96e962586b13ad343e26182f9e7be7cc2b (diff)
Merge branch 'master' into buffer_storage
Conflicts: Source/Core/VideoBackends/OGL/Src/Render.cpp Source/Core/VideoCommon/Src/DriverDetails.cpp Source/Core/VideoCommon/Src/DriverDetails.h
Diffstat (limited to 'Source/Core/VideoBackends/OGL/Src/StreamBuffer.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/Src/StreamBuffer.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/Source/Core/VideoBackends/OGL/Src/StreamBuffer.cpp b/Source/Core/VideoBackends/OGL/Src/StreamBuffer.cpp
index 95e8a8e72b..c80dc6e703 100644
--- a/Source/Core/VideoBackends/OGL/Src/StreamBuffer.cpp
+++ b/Source/Core/VideoBackends/OGL/Src/StreamBuffer.cpp
@@ -44,7 +44,9 @@ StreamBuffer::StreamBuffer(u32 type, size_t size, StreamType uploadType)
m_uploadtype = BUFFERDATA;
else if(g_ogl_config.bSupportsGLSync && g_ActiveConfig.bHackedBufferUpload && (m_uploadtype & MAP_AND_RISK))
m_uploadtype = MAP_AND_RISK;
- else if(g_ogl_config.bSupportsGLSync && g_ogl_config.bSupportsGLPinnedMemory && (m_uploadtype & PINNED_MEMORY))
+ else if(g_ogl_config.bSupportsGLSync && g_ogl_config.bSupportsGLPinnedMemory &&
+ !(DriverDetails::HasBug(DriverDetails::BUG_BROKENPINNEDMEMORY) && type == GL_ELEMENT_ARRAY_BUFFER) &&
+ (m_uploadtype & PINNED_MEMORY))
m_uploadtype = PINNED_MEMORY;
else if(nvidia && (m_uploadtype & BUFFERSUBDATA))
m_uploadtype = BUFFERSUBDATA;