Lines Matching refs:slot

148                     // Front buffer is still in mSlots, so mark the slot as free
196 int slot = BufferQueueCore::INVALID_BUFFER_SLOT;
202 slot = mCore->mSharedBufferSlot;
206 outBuffer->mGraphicBuffer = mSlots[slot].mGraphicBuffer;
215 outBuffer->mSlot = slot;
216 outBuffer->mAcquireCalled = mSlots[slot].mAcquireCalled;
226 slot = front->mSlot;
230 ATRACE_BUFFER_INDEX(slot);
232 BQ_LOGV("acquireBuffer: acquiring { slot=%d/%" PRIu64 " buffer=%p }",
233 slot, outBuffer->mFrameNumber, outBuffer->mGraphicBuffer->handle);
236 mSlots[slot].mAcquireCalled = true;
241 mSlots[slot].mBufferState.acquireNotInQueue();
243 mSlots[slot].mBufferState.acquire();
245 mSlots[slot].mFence = Fence::NO_FENCE;
257 // We might have freed a slot while dropping old buffers, or the producer
276 status_t BufferQueueConsumer::detachBuffer(int slot) {
278 ATRACE_BUFFER_INDEX(slot);
279 BQ_LOGV("detachBuffer: slot %d", slot);
287 if (mCore->mSharedBufferMode || slot == mCore->mSharedBufferSlot) {
292 if (slot < 0 || slot >= BufferQueueDefs::NUM_BUFFER_SLOTS) {
293 BQ_LOGE("detachBuffer: slot index %d out of range [0, %d)",
294 slot, BufferQueueDefs::NUM_BUFFER_SLOTS);
296 } else if (!mSlots[slot].mBufferState.isAcquired()) {
297 BQ_LOGE("detachBuffer: slot %d is not owned by the consumer "
298 "(state = %s)", slot, mSlots[slot].mBufferState.string());
302 mSlots[slot].mBufferState.detachConsumer();
303 mCore->mActiveBuffers.erase(slot);
304 mCore->mFreeSlots.insert(slot);
305 mCore->clearBufferSlotLocked(slot);
353 // Find a free slot to put the buffer into
356 auto slot = mCore->mFreeSlots.begin();
357 found = *slot;
358 mCore->mFreeSlots.erase(slot);
364 BQ_LOGE("attachBuffer: could not find free buffer slot");
371 BQ_LOGV("attachBuffer: returning slot %d", *outSlot);
382 // requires that the consumer maintain a cached copy of the slot <--> buffer
390 // doesn't make sense to maintain the slot/buffer mappings, which would
401 status_t BufferQueueConsumer::releaseBuffer(int slot, uint64_t frameNumber,
405 ATRACE_BUFFER_INDEX(slot);
407 if (slot < 0 || slot >= BufferQueueDefs::NUM_BUFFER_SLOTS ||
409 BQ_LOGE("releaseBuffer: slot %d out of range or fence %p NULL", slot,
423 if (frameNumber != mSlots[slot].mFrameNumber &&
424 !mSlots[slot].mBufferState.isShared()) {
428 if (!mSlots[slot].mBufferState.isAcquired()) {
429 BQ_LOGE("releaseBuffer: attempted to release buffer slot %d "
430 "but its state was %s", slot,
431 mSlots[slot].mBufferState.string());
435 mSlots[slot].mEglDisplay = eglDisplay;
436 mSlots[slot].mEglFence = eglFence;
437 mSlots[slot].mFence = releaseFence;
438 mSlots[slot].mBufferState.release();
443 if (!mCore->mSharedBufferMode && mSlots[slot].mBufferState.isFree()) {
444 mSlots[slot].mBufferState.mShared = false;
447 if (!mSlots[slot].mBufferState.isShared()) {
448 mCore->mActiveBuffers.erase(slot);
449 mCore->mFreeBuffers.push_back(slot);
453 BQ_LOGV("releaseBuffer: releasing slot %d", slot);
632 for (int slot : mCore->mActiveBuffers) {
633 if (mSlots[slot].mBufferState.isAcquired()) {