Move pushbuffer deletion to the render manager.

This commit is contained in:
Henrik Rydgård committed 2018-04-05 17:47:08 +02:00
1 parent feb3870f7d
commit 76138fee6d
2 files changed
+20 -3

No files matched your search

+9 -1
View File
@@ -13,7 +13,12 @@
#define VLOG(...)
#endif
// Runs on the GPU thread.
void GLDeleter::Perform() {
for (auto pushBuffer : pushBuffers) {
delete pushBuffer;
}
pushBuffers.clear();
for (auto shader : shaders) {
delete shader;
}
@@ -638,10 +643,13 @@ bool GLPushBuffer::AddBuffer() {
return true;
}
// Executed on the render thread!
void GLPushBuffer::Destroy() {
for (BufInfo &info : buffers_) {
// This will automatically unmap device memory, if needed.
render_->DeleteBuffer(info.buffer);
// NOTE: We immediately delete the buffer, don't go through the deleter, since we're on the render thread.
// render_->DeleteBuffer(info.buffer);
delete info.buffer;
FreeAlignedMemory(info.localMemory);
}
buffers_.clear();