From 65cc331b10b834d27e69799a5a71c5dd10272739 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 18 Sep 2019 13:55:04 +0100 Subject: [PATCH] Ensure we can always map for read even for non-persistent buffers --- renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp b/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp index d5cfd4a35..f1086d5ec 100644 --- a/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp +++ b/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp @@ -490,10 +490,9 @@ void WrappedOpenGL::glNamedBufferStorageEXT(GLuint buffer, GLsizeiptr size, cons GLbitfield origflags = flags; - // if we're persistently writing, we want to be able to read as well, enable that. - uint32_t persistentWriteFlags = GL_MAP_PERSISTENT_BIT | GL_MAP_WRITE_BIT; - if((flags & persistentWriteFlags) == persistentWriteFlags) - flags |= GL_MAP_READ_BIT; + // we always want to be able to read. This is true for persistent maps, as well as + // non-invalidating maps which we need to readback the current contents before the map. + flags |= GL_MAP_READ_BIT; SERIALISE_TIME_CALL(GL.glNamedBufferStorageEXT(buffer, size, data, flags)); @@ -527,10 +526,9 @@ void WrappedOpenGL::glBufferStorage(GLenum target, GLsizeiptr size, const void * GLbitfield origflags = flags; - // if we're persistently writing, we want to be able to read as well, enable that. - uint32_t persistentWriteFlags = GL_MAP_PERSISTENT_BIT | GL_MAP_WRITE_BIT; - if((flags & persistentWriteFlags) == persistentWriteFlags) - flags |= GL_MAP_READ_BIT; + // we always want to be able to read. This is true for persistent maps, as well as + // non-invalidating maps which we need to readback the current contents before the map. + flags |= GL_MAP_READ_BIT; SERIALISE_TIME_CALL(GL.glBufferStorage(target, size, data, flags));