Home | History | Annotate | Download | only in ui

Lines Matching refs:Fence

34 const auto FenceTime::NO_FENCE = std::make_shared<FenceTime>(Fence::NO_FENCE);
48 FenceTime::FenceTime(const sp<Fence>& fence)
49 : mState(((fence.get() != nullptr) && fence->isValid()) ?
51 mFence(fence),
53 Fence::SIGNAL_TIME_INVALID : Fence::SIGNAL_TIME_PENDING) {
56 FenceTime::FenceTime(sp<Fence>&& fence)
57 : mState(((fence.get() != nullptr) && fence->isValid()) ?
59 mFence(std::move(fence)),
61 Fence::SIGNAL_TIME_INVALID : Fence::SIGNAL_TIME_PENDING) {
65 : mState(Fence::isValidTimestamp(signalTime) ? State::VALID : State::INVALID),
68 if (CC_UNLIKELY(mSignalTime == Fence::SIGNAL_TIME_PENDING)) {
70 mSignalTime = Fence::SIGNAL_TIME_INVALID;
76 // Applying Snapshot::State::FENCE, could change the valid state of the
79 ALOGE("applyTrustedSnapshot: Unexpected fence.");
88 if (signalTime != Fence::SIGNAL_TIME_PENDING) {
108 // underlying fence is destroyed.
115 if (signalTime != Fence::SIGNAL_TIME_PENDING) {
119 // Hold a reference to the fence on the stack in case the class'
121 // fence from being destroyed until the end of this method, where
123 sp<Fence> fence;
126 // value or if we need to poll the fence.
133 fence = mFence;
137 signalTime = fence->getSignalTime();
142 if (signalTime == Fence::SIGNAL_TIME_INVALID) {
143 signalTime = Fence::SIGNAL_TIME_PENDING;
148 // and remove the class' reference to the fence.
149 if (signalTime != Fence::SIGNAL_TIME_PENDING) {
167 if (signalTime != Fence::SIGNAL_TIME_PENDING) {
174 if (signalTime != Fence::SIGNAL_TIME_PENDING) {
182 FenceTime::FenceTime(const sp<Fence>& fence, bool forceValidForTest)
185 mFence(fence),
187 Fence::SIGNAL_TIME_INVALID : Fence::SIGNAL_TIME_PENDING) {
202 FenceTime::Snapshot::Snapshot(const sp<Fence>& srcFence)
203 : state(State::FENCE), fence(srcFence) {
215 case State::FENCE:
216 return min + fence->getFlattenedSize();
224 return state == State::FENCE ? fence->getFdCount() : 0u;
237 case State::FENCE:
238 return fence->flatten(buffer, size, fds, count);
257 case State::FENCE:
258 fence = new Fence;
259 return fence->unflatten(buffer, size, fds, count);
274 void FenceTimeline::push(const std::shared_ptr<FenceTime>& fence) {
281 // should eventually call Fence::getSignalTime on their own.
290 mQueue.push(fence);
296 std::shared_ptr<FenceTime> fence = mQueue.front().lock();
297 if (!fence) {
302 } else if (fence->getSignalTime() != Fence::SIGNAL_TIME_PENDING) {
303 // The fence has signaled and we've removed the sp<Fence> ref.
307 // The fence didn't signal yet. Break since the later ones
318 const sp<Fence>& fence) {
322 std::shared_ptr<FenceTime> fenceTime(new FenceTime(fence, true));
323 mMap[fence.get()].push_back(fenceTime);
328 const sp<Fence>& fence, nsecs_t signalTime) {
332 auto it = mMap.find(fence.get());
340 "signalAllForTest: Signaling invalid fence.");