Don't use persistently mapped buffers on Intel Ivy Bridge GPUs on Windows. glClientWaitSync can hang with those drivers, apparently.

This commit is contained in:
Alex Szpakowski
2018-01-06 00:42:16 -04:00
parent fd514d8176
commit 3857d09132
3 changed files with 27 additions and 8 deletions
+11 -8
View File
@@ -538,14 +538,17 @@ love::graphics::StreamBuffer *CreateStreamBuffer(BufferType mode, size_t size)
{
if (gl.isCoreProfile())
{
// AMD's pinned memory seems to be faster than persistent mapping, on
// AMD GPUs.
if (GLAD_AMD_pinned_memory)
return new StreamBufferPinnedMemory(mode, size);
else if (GLAD_VERSION_4_4 || GLAD_ARB_buffer_storage)
return new StreamBufferPersistentMapSync(mode, size);
else
return new StreamBufferSubDataOrphan(mode, size);
if (!gl.bugs.clientWaitSyncStalls)
{
// AMD's pinned memory seems to be faster than persistent mapping,
// on AMD GPUs.
if (GLAD_AMD_pinned_memory)
return new StreamBufferPinnedMemory(mode, size);
else if (GLAD_VERSION_4_4 || GLAD_ARB_buffer_storage)
return new StreamBufferPersistentMapSync(mode, size);
}
return new StreamBufferSubDataOrphan(mode, size);
}
else
return new StreamBufferClientMemory(mode, size);