From 00ea527bd5605717ea8f353058bc72fa2c2aac08 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Sun, 3 Apr 2016 00:14:53 +0200 Subject: [PATCH] Cleanup: Remove the last case of non-refcounted fences. --- mixer.cpp | 9 ++++----- mixer.h | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/mixer.cpp b/mixer.cpp index 2669ad9..f0b0694 100644 --- a/mixer.cpp +++ b/mixer.cpp @@ -473,7 +473,6 @@ void Mixer::bm_frame(unsigned card_index, uint16_t timecode, new_frame.frame = RefCountedFrame(FrameAllocator::Frame()); new_frame.length = frame_length; new_frame.interlaced = false; - new_frame.ready_fence = nullptr; new_frame.dropped_frames = dropped_frames; card->new_frames.push(move(new_frame)); card->new_frames_changed.notify_all(); @@ -547,9 +546,9 @@ void Mixer::bm_frame(unsigned card_index, uint16_t timecode, check_error(); glBindBuffer(GL_PIXEL_UNPACK_BUFFER_ARB, 0); check_error(); - GLsync fence = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, /*flags=*/0); + RefCountedGLsync fence(GL_SYNC_GPU_COMMANDS_COMPLETE, /*flags=*/0); check_error(); - assert(fence != nullptr); + assert(fence.get() != nullptr); if (field == 1) { // Don't upload the second field as fast as we can; wait until @@ -647,9 +646,9 @@ void Mixer::thread_func() // The new texture might still be uploaded, // tell the GPU to wait until it's there. if (new_frame->ready_fence) { - glWaitSync(new_frame->ready_fence, /*flags=*/0, GL_TIMEOUT_IGNORED); + glWaitSync(new_frame->ready_fence.get(), /*flags=*/0, GL_TIMEOUT_IGNORED); check_error(); - glDeleteSync(new_frame->ready_fence); + new_frame->ready_fence.reset(); check_error(); } } diff --git a/mixer.h b/mixer.h index 2b00682..af97698 100644 --- a/mixer.h +++ b/mixer.h @@ -388,7 +388,7 @@ private: int64_t length; // In TIMEBASE units. bool interlaced; unsigned field; // Which field (0 or 1) of the frame to use. Always 0 for progressive. - GLsync ready_fence; // Whether frame is ready for rendering. + RefCountedGLsync ready_fence; // Whether frame is ready for rendering. unsigned dropped_frames = 0; // Number of dropped frames before this one. }; std::queue new_frames; -- 2.39.2