Loading libs/gui/BufferQueueProducer.cpp +11 −11 Original line number Original line Diff line number Diff line Loading @@ -981,6 +981,17 @@ status_t BufferQueueProducer::queueBuffer(int slot, item.mGraphicBuffer.clear(); item.mGraphicBuffer.clear(); } } // Update and get FrameEventHistory. nsecs_t postedTime = systemTime(SYSTEM_TIME_MONOTONIC); NewFrameEventsEntry newFrameEventsEntry = { currentFrameNumber, postedTime, requestedPresentTimestamp, std::move(acquireFenceTime) }; addAndGetFrameTimestamps(&newFrameEventsEntry, getFrameTimestamps ? &output->frameTimestamps : nullptr); // Call back without the main BufferQueue lock held, but with the callback // Call back without the main BufferQueue lock held, but with the callback // lock held so we can ensure that callbacks occur in order // lock held so we can ensure that callbacks occur in order Loading Loading @@ -1010,17 +1021,6 @@ status_t BufferQueueProducer::queueBuffer(int slot, mCallbackCondition.notify_all(); mCallbackCondition.notify_all(); } } // Update and get FrameEventHistory. nsecs_t postedTime = systemTime(SYSTEM_TIME_MONOTONIC); NewFrameEventsEntry newFrameEventsEntry = { currentFrameNumber, postedTime, requestedPresentTimestamp, std::move(acquireFenceTime) }; addAndGetFrameTimestamps(&newFrameEventsEntry, getFrameTimestamps ? &output->frameTimestamps : nullptr); // Wait without lock held // Wait without lock held if (connectedApi == NATIVE_WINDOW_API_EGL) { if (connectedApi == NATIVE_WINDOW_API_EGL) { // Waiting here allows for two full buffers to be queued but not a // Waiting here allows for two full buffers to be queued but not a Loading Loading
libs/gui/BufferQueueProducer.cpp +11 −11 Original line number Original line Diff line number Diff line Loading @@ -981,6 +981,17 @@ status_t BufferQueueProducer::queueBuffer(int slot, item.mGraphicBuffer.clear(); item.mGraphicBuffer.clear(); } } // Update and get FrameEventHistory. nsecs_t postedTime = systemTime(SYSTEM_TIME_MONOTONIC); NewFrameEventsEntry newFrameEventsEntry = { currentFrameNumber, postedTime, requestedPresentTimestamp, std::move(acquireFenceTime) }; addAndGetFrameTimestamps(&newFrameEventsEntry, getFrameTimestamps ? &output->frameTimestamps : nullptr); // Call back without the main BufferQueue lock held, but with the callback // Call back without the main BufferQueue lock held, but with the callback // lock held so we can ensure that callbacks occur in order // lock held so we can ensure that callbacks occur in order Loading Loading @@ -1010,17 +1021,6 @@ status_t BufferQueueProducer::queueBuffer(int slot, mCallbackCondition.notify_all(); mCallbackCondition.notify_all(); } } // Update and get FrameEventHistory. nsecs_t postedTime = systemTime(SYSTEM_TIME_MONOTONIC); NewFrameEventsEntry newFrameEventsEntry = { currentFrameNumber, postedTime, requestedPresentTimestamp, std::move(acquireFenceTime) }; addAndGetFrameTimestamps(&newFrameEventsEntry, getFrameTimestamps ? &output->frameTimestamps : nullptr); // Wait without lock held // Wait without lock held if (connectedApi == NATIVE_WINDOW_API_EGL) { if (connectedApi == NATIVE_WINDOW_API_EGL) { // Waiting here allows for two full buffers to be queued but not a // Waiting here allows for two full buffers to be queued but not a Loading