diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2021-02-01 15:41:21 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2021-02-01 15:41:21 +0300 |
commit | f04ddd398fabda8f644ccb076d650c34f085f9e1 (patch) | |
tree | 6a9f4c3b633ceca5749b3de85cf6f5e2b6386f53 /source/blender | |
parent | 5c72a4d45269638c7a8f72151db6cfd2b8895c35 (diff) | |
parent | 03c1c5f3a4c58e9f85a9ae79010a4fd41c8af92c (diff) |
Merge branch 'blender-v2.92-release'
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/gpu/opengl/gl_drawlist.cc | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/source/blender/gpu/opengl/gl_drawlist.cc b/source/blender/gpu/opengl/gl_drawlist.cc index f0a18deafd3..0270020b9d8 100644 --- a/source/blender/gpu/opengl/gl_drawlist.cc +++ b/source/blender/gpu/opengl/gl_drawlist.cc @@ -69,7 +69,6 @@ GLDrawList::GLDrawList(int length) buffer_id_ = 0; command_len_ = 0; command_offset_ = 0; - data_offset_ = 0; data_size_ = 0; data_ = nullptr; @@ -81,6 +80,8 @@ GLDrawList::GLDrawList(int length) /* Indicates MDI is not supported. */ buffer_size_ = 0; } + /* Force buffer specification on first init. */ + data_offset_ = buffer_size_; } GLDrawList::~GLDrawList() @@ -104,10 +105,10 @@ void GLDrawList::init() glBindBuffer(GL_DRAW_INDIRECT_BUFFER, buffer_id_); /* If buffer is full, orphan buffer data and start fresh. */ - // if (command_offset_ >= data_size_) { - glBufferData(GL_DRAW_INDIRECT_BUFFER, buffer_size_, nullptr, GL_DYNAMIC_DRAW); - data_offset_ = 0; - // } + if (data_offset_ >= buffer_size_) { + glBufferData(GL_DRAW_INDIRECT_BUFFER, buffer_size_, nullptr, GL_DYNAMIC_DRAW); + data_offset_ = 0; + } /* Map the remaining range. */ GLbitfield flag = GL_MAP_WRITE_BIT | GL_MAP_UNSYNCHRONIZED_BIT | GL_MAP_FLUSH_EXPLICIT_BIT; data_size_ = buffer_size_ - data_offset_; |