Put glTexBuffer into frame record to preserve ordering

* Important buffer chunks like the first glBindBuffer and glBufferStorage
  could happen in the frame, so need to preserve order between those and
  glTexBuffer.
* It is only replayed in READING, so once at startup - not once per frame
  replay.
This commit is contained in:
baldurk
2014-12-10 20:56:42 +00:00
parent 231cd31b0c
commit 31d81147af
@@ -4786,8 +4786,17 @@ void WrappedOpenGL::glTextureBufferEXT(GLuint texture, GLenum target, GLenum int
SCOPED_SERIALISE_CONTEXT(TEXBUFFER);
Serialise_glTextureBufferEXT(texture, target, internalformat, buffer);
record->AddChunk(scope.Get());
record->AddParent(GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer)));
Chunk *chunk = scope.Get();
if(m_State == WRITING_CAPFRAME)
{
m_ContextRecord->AddChunk(chunk);
}
else
{
record->AddChunk(chunk);
record->AddParent(GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer)));
}
}
}
@@ -4804,8 +4813,17 @@ void WrappedOpenGL::glTexBuffer(GLenum target, GLenum internalformat, GLuint buf
Serialise_glTextureBufferEXT(record->Resource.name,
target, internalformat, buffer);
record->AddChunk(scope.Get());
record->AddParent(GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer)));
Chunk *chunk = scope.Get();
if(m_State == WRITING_CAPFRAME)
{
m_ContextRecord->AddChunk(chunk);
}
else
{
record->AddChunk(chunk);
record->AddParent(GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer)));
}
}
}
@@ -4822,8 +4840,17 @@ void WrappedOpenGL::glMultiTexBufferEXT(GLenum texunit, GLenum target, GLenum in
Serialise_glTextureBufferEXT(record->Resource.name,
target, internalformat, buffer);
record->AddChunk(scope.Get());
record->AddParent(GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer)));
Chunk *chunk = scope.Get();
if(m_State == WRITING_CAPFRAME)
{
m_ContextRecord->AddChunk(chunk);
}
else
{
record->AddChunk(chunk);
record->AddParent(GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer)));
}
}
}