mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-15 22:40:50 +00:00
Consider buffers that are bound to xfm feedback to be dirty
This commit is contained in:
@@ -186,6 +186,12 @@ void WrappedOpenGL::glBindBuffer(GLenum target, GLuint buffer)
|
||||
|
||||
m_FeedbackRecord->AddChunk(scope.Get());
|
||||
}
|
||||
|
||||
// immediately consider buffers bound to transform feedbacks as dirty
|
||||
if(m_State == WRITING_IDLE && target == eGL_TRANSFORM_FEEDBACK_BUFFER)
|
||||
{
|
||||
GetResourceManager()->MarkDirtyResource(r->GetResourceID());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -611,6 +617,12 @@ void WrappedOpenGL::glBindBufferBase(GLenum target, GLuint index, GLuint buffer)
|
||||
|
||||
m_FeedbackRecord->AddChunk(scope.Get());
|
||||
}
|
||||
|
||||
// immediately consider buffers bound to transform feedbacks as dirty
|
||||
if(m_State == WRITING_IDLE && target == eGL_TRANSFORM_FEEDBACK_BUFFER)
|
||||
{
|
||||
GetResourceManager()->MarkDirtyResource(BufferRes(GetCtx(), buffer));
|
||||
}
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
@@ -671,6 +683,12 @@ void WrappedOpenGL::glBindBufferRange(GLenum target, GLuint index, GLuint buffer
|
||||
|
||||
m_FeedbackRecord->AddChunk(scope.Get());
|
||||
}
|
||||
|
||||
// immediately consider buffers bound to transform feedbacks as dirty
|
||||
if(m_State == WRITING_IDLE && target == eGL_TRANSFORM_FEEDBACK_BUFFER)
|
||||
{
|
||||
GetResourceManager()->MarkDirtyResource(BufferRes(GetCtx(), buffer));
|
||||
}
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
@@ -744,6 +762,13 @@ void WrappedOpenGL::glBindBuffersBase(GLenum target, GLuint first, GLsizei count
|
||||
m_FeedbackRecord->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
|
||||
// immediately consider buffers bound to transform feedbacks as dirty
|
||||
if(m_State == WRITING_IDLE && target == eGL_TRANSFORM_FEEDBACK_BUFFER)
|
||||
{
|
||||
for(int i=0; i < count; i++)
|
||||
GetResourceManager()->MarkDirtyResource(BufferRes(GetCtx(), buffers[i]));
|
||||
}
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
@@ -829,6 +854,13 @@ void WrappedOpenGL::glBindBuffersRange(GLenum target, GLuint first, GLsizei coun
|
||||
m_FeedbackRecord->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
|
||||
// immediately consider buffers bound to transform feedbacks as dirty
|
||||
if(m_State == WRITING_IDLE && target == eGL_TRANSFORM_FEEDBACK_BUFFER)
|
||||
{
|
||||
for(int i=0; i < count; i++)
|
||||
GetResourceManager()->MarkDirtyResource(BufferRes(GetCtx(), buffers[i]));
|
||||
}
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user