mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-07-08 16:50:44 +00:00
Fix ES attrib client pointers being interpreted as buffer offsets.
This commit is contained in:
committed by
Baldur Karlsson
parent
43d6d6e197
commit
87a587cc98
@@ -2959,6 +2959,12 @@ bool WrappedOpenGL::Serialise_glVertexArrayVertexAttribOffsetEXT(GLuint vaobj, G
|
||||
GLenum SizeEnum = Size == 1 ? eGL_RED : Size == 2 ? eGL_RG : Size == 3 ? eGL_RGB : eGL_RGBA;
|
||||
Stride = (uint32_t)GetByteSize(1, 1, 1, SizeEnum, Type);
|
||||
}
|
||||
if(!buffer)
|
||||
{
|
||||
// ES allows client-memory pointers, which we override with temp buffers during capture.
|
||||
// For replay, discard these pointers to prevent driver complaining about "negative offsets".
|
||||
Offset = 0;
|
||||
}
|
||||
m_Real.glVertexArrayBindVertexBufferEXT(vaobj, Index, buffer, (GLintptr)Offset, Stride);
|
||||
|
||||
m_Real.glBindVertexArray(prevVAO);
|
||||
@@ -3071,6 +3077,10 @@ bool WrappedOpenGL::Serialise_glVertexArrayVertexAttribIOffsetEXT(GLuint vaobj,
|
||||
GLenum SizeEnum = Size == 1 ? eGL_RED : Size == 2 ? eGL_RG : Size == 3 ? eGL_RGB : eGL_RGBA;
|
||||
Stride = (uint32_t)GetByteSize(1, 1, 1, SizeEnum, Type);
|
||||
}
|
||||
if(!buffer)
|
||||
{
|
||||
Offset = 0;
|
||||
}
|
||||
m_Real.glVertexArrayBindVertexBufferEXT(vaobj, Index, buffer, (GLintptr)Offset, Stride);
|
||||
}
|
||||
|
||||
@@ -3180,6 +3190,10 @@ bool WrappedOpenGL::Serialise_glVertexArrayVertexAttribLOffsetEXT(GLuint vaobj,
|
||||
GLenum SizeEnum = Size == 1 ? eGL_RED : Size == 2 ? eGL_RG : Size == 3 ? eGL_RGB : eGL_RGBA;
|
||||
Stride = (uint32_t)GetByteSize(1, 1, 1, SizeEnum, Type);
|
||||
}
|
||||
if(!buffer)
|
||||
{
|
||||
Offset = 0;
|
||||
}
|
||||
m_Real.glVertexArrayBindVertexBufferEXT(vaobj, Index, buffer, (GLintptr)Offset, Stride);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user