From 7fa3ec51c989d33ee75ad2b5b52482e2345cb8d6 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 8 Nov 2017 17:03:16 +0000 Subject: [PATCH] Fix emulation of glMapNamedBuffer - pass correct map access bits --- renderdoc/driver/gl/wrappers/gl_emulated.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/gl/wrappers/gl_emulated.cpp b/renderdoc/driver/gl/wrappers/gl_emulated.cpp index 784a44fd5..a97483cfa 100644 --- a/renderdoc/driver/gl/wrappers/gl_emulated.cpp +++ b/renderdoc/driver/gl/wrappers/gl_emulated.cpp @@ -379,7 +379,15 @@ void *APIENTRY _glMapNamedBufferEXT(GLuint buffer, GLenum access) PushPopBuffer(eGL_COPY_READ_BUFFER, buffer); GLint size; hookset->glGetBufferParameteriv(eGL_COPY_READ_BUFFER, eGL_BUFFER_SIZE, &size); - return hookset->glMapBufferRange(eGL_COPY_READ_BUFFER, 0, size, eGL_MAP_READ_BIT); + + GLbitfield accessBits = eGL_MAP_READ_BIT | eGL_MAP_WRITE_BIT; + + if(access == eGL_READ_ONLY) + accessBits = eGL_MAP_READ_BIT; + else if(access == eGL_WRITE_ONLY) + accessBits = eGL_MAP_WRITE_BIT; + + return hookset->glMapBufferRange(eGL_COPY_READ_BUFFER, 0, size, accessBits); } void *APIENTRY _glMapNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GLsizeiptr length,