diff options
| author | Pierre Bourdon <delroth@gmail.com> | 2014-07-04 13:56:45 +0200 |
|---|---|---|
| committer | Pierre Bourdon <delroth@gmail.com> | 2014-07-04 13:56:45 +0200 |
| commit | 7035e5e4fb6171526890cd61e184d5e1bbf216a0 (patch) | |
| tree | 74ab99ab7f2bc3068acc3f13c6bc07ba7db2252c /Source/Core/VideoBackends/OGL/StreamBuffer.cpp | |
| parent | 32e45e6abef8bbded4bd71fb327e5a4ff7ae3038 (diff) | |
| parent | 30f93ab4186bd69bd39bce015907753e9665ccd3 (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.cpp | 12 |
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); |
