summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/StreamBuffer.cpp
diff options
context:
space:
mode:
authorPierre Bourdon <delroth@gmail.com>2014-07-04 13:56:45 +0200
committerPierre Bourdon <delroth@gmail.com>2014-07-04 13:56:45 +0200
commit7035e5e4fb6171526890cd61e184d5e1bbf216a0 (patch)
tree74ab99ab7f2bc3068acc3f13c6bc07ba7db2252c /Source/Core/VideoBackends/OGL/StreamBuffer.cpp
parent32e45e6abef8bbded4bd71fb327e5a4ff7ae3038 (diff)
parent30f93ab4186bd69bd39bce015907753e9665ccd3 (diff)
Merge pull request #555 from JMC47/pinned_memory
Place pinned memory as top priority.
Diffstat (limited to 'Source/Core/VideoBackends/OGL/StreamBuffer.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/StreamBuffer.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/Source/Core/VideoBackends/OGL/StreamBuffer.cpp b/Source/Core/VideoBackends/OGL/StreamBuffer.cpp
index 5723283b72..cbcf210957 100644
--- a/Source/Core/VideoBackends/OGL/StreamBuffer.cpp
+++ b/Source/Core/VideoBackends/OGL/StreamBuffer.cpp
@@ -346,16 +346,16 @@ StreamBuffer* StreamBuffer::Create(u32 type, u32 size)
// Prefer the syncing buffers over the orphaning one
if (g_ogl_config.bSupportsGLSync)
{
- // try to use buffer storage whenever possible
- if (g_ogl_config.bSupportsGLBufferStorage &&
- !(DriverDetails::HasBug(DriverDetails::BUG_BROKENBUFFERSTORAGE) && type == GL_ARRAY_BUFFER))
- return new BufferStorage(type, size);
-
- // pinned memory is almost as fine
+ // pinned memory is much faster on amd cards
if (g_ogl_config.bSupportsGLPinnedMemory &&
!(DriverDetails::HasBug(DriverDetails::BUG_BROKENPINNEDMEMORY) && type == GL_ELEMENT_ARRAY_BUFFER))
return new PinnedMemory(type, size);
+ // buffer storage works well in most situations
+ if (g_ogl_config.bSupportsGLBufferStorage &&
+ !(DriverDetails::HasBug(DriverDetails::BUG_BROKENBUFFERSTORAGE) && type == GL_ARRAY_BUFFER))
+ return new BufferStorage(type, size);
+
// don't fall back to MapAnd* for nvidia drivers
if (DriverDetails::HasBug(DriverDetails::BUG_BROKENUNSYNCMAPPING))
return new BufferSubData(type, size);