Consider buffers that are bound to xfm feedback to be dirty

This commit is contained in:
baldurk
2014-12-03 11:53:11 +00:00
parent 2a3fde6e51
commit a05a8d457e
@@ -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)
{