X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=pbo_frame_allocator.cpp;h=613506dcb61b1eb16c4bdc92dbdf88141a95db39;hb=a98732df9454028ddaa54a9d07b5d7513767bfe9;hp=15fcb61d37b8cefad61df15f26b165796e91b528;hpb=c76392ca2e019399e6123a7ba0849090a3f7a4ce;p=nageru diff --git a/pbo_frame_allocator.cpp b/pbo_frame_allocator.cpp index 15fcb61..613506d 100644 --- a/pbo_frame_allocator.cpp +++ b/pbo_frame_allocator.cpp @@ -1,5 +1,6 @@ #include "pbo_frame_allocator.h" +#include #include #include #include @@ -58,6 +59,9 @@ PBOFrameAllocator::PBOFrameAllocator(size_t frame_size, GLuint width, GLuint hei glTexImage2D(GL_TEXTURE_2D, 0, GL_RG8, width / 2, height, 0, GL_RG, GL_UNSIGNED_BYTE, NULL); check_error(); + userdata[i].last_width = width; + userdata[i].last_height = height; + freelist.push(frame); } glBindBuffer(buffer, 0); @@ -103,11 +107,16 @@ FrameAllocator::Frame PBOFrameAllocator::alloc_frame() freelist.pop(); // Meh. } vf.len = 0; + vf.overflow = 0; return vf; } void PBOFrameAllocator::release_frame(Frame frame) { + if (frame.overflow > 0) { + printf("%d bytes overflow after last (PBO) frame\n", int(frame.overflow)); + } + std::unique_lock lock(freelist_mutex); freelist.push(frame); //--sumsum;