BQ: get rid of async in producer interface
- Get rid of the async flag in dequeueBuffer, allocateBuffers,
waitForFreeSlotThenRelock, and QueueBufferInput.
- Instead use the persistent flags mDequeueBufferCannotBlock and
mAsyncMode to determine whether to use the async behavior.
Bug 13174928
Change-Id: Ie6f7b9e46ee3844ee77b102003c84dddf1bcafdd
diff --git a/libs/gui/tests/IGraphicBufferProducer_test.cpp b/libs/gui/tests/IGraphicBufferProducer_test.cpp
index 34fb998..7455cd9 100644
--- a/libs/gui/tests/IGraphicBufferProducer_test.cpp
+++ b/libs/gui/tests/IGraphicBufferProducer_test.cpp
@@ -61,7 +61,6 @@
const Rect QUEUE_BUFFER_INPUT_RECT = Rect(DEFAULT_WIDTH, DEFAULT_HEIGHT);
const int QUEUE_BUFFER_INPUT_SCALING_MODE = 0;
const int QUEUE_BUFFER_INPUT_TRANSFORM = 0;
- const bool QUEUE_BUFFER_INPUT_ASYNC = false;
const sp<Fence> QUEUE_BUFFER_INPUT_FENCE = Fence::NO_FENCE;
}; // namespace anonymous
@@ -131,7 +130,6 @@
crop = QUEUE_BUFFER_INPUT_RECT;
scalingMode = QUEUE_BUFFER_INPUT_SCALING_MODE;
transform = QUEUE_BUFFER_INPUT_TRANSFORM;
- async = QUEUE_BUFFER_INPUT_ASYNC;
fence = QUEUE_BUFFER_INPUT_FENCE;
}
@@ -143,7 +141,6 @@
crop,
scalingMode,
transform,
- async,
fence);
}
@@ -177,11 +174,6 @@
return *this;
}
- QueueBufferInputBuilder& setAsync(bool async) {
- this->async = async;
- return *this;
- }
-
QueueBufferInputBuilder& setFence(sp<Fence> fence) {
this->fence = fence;
return *this;
@@ -194,7 +186,6 @@
Rect crop;
int scalingMode;
uint32_t transform;
- int async;
sp<Fence> fence;
}; // struct QueueBufferInputBuilder
@@ -204,8 +195,8 @@
sp<Fence> fence;
};
- status_t dequeueBuffer(bool async, uint32_t w, uint32_t h, uint32_t format, uint32_t usage, DequeueBufferResult* result) {
- return mProducer->dequeueBuffer(&result->slot, &result->fence, async, w, h, format, usage);
+ status_t dequeueBuffer(uint32_t w, uint32_t h, uint32_t format, uint32_t usage, DequeueBufferResult* result) {
+ return mProducer->dequeueBuffer(&result->slot, &result->fence, w, h, format, usage);
}
void setupDequeueRequestBuffer(int *slot, sp<Fence> *fence,
@@ -218,9 +209,8 @@
ASSERT_NO_FATAL_FAILURE(ConnectProducer());
ASSERT_EQ(OK, ~IGraphicBufferProducer::BUFFER_NEEDS_REALLOCATION &
- (mProducer->dequeueBuffer(slot, fence,
- QUEUE_BUFFER_INPUT_ASYNC, DEFAULT_WIDTH, DEFAULT_HEIGHT,
- DEFAULT_FORMAT, TEST_PRODUCER_USAGE_BITS)));
+ (mProducer->dequeueBuffer(slot, fence, DEFAULT_WIDTH,
+ DEFAULT_HEIGHT, DEFAULT_FORMAT, TEST_PRODUCER_USAGE_BITS)));
EXPECT_LE(0, *slot);
EXPECT_GT(BufferQueue::NUM_BUFFER_SLOTS, *slot);
@@ -355,9 +345,9 @@
int dequeuedSlot = -1;
sp<Fence> dequeuedFence;
+
ASSERT_EQ(OK, ~IGraphicBufferProducer::BUFFER_NEEDS_REALLOCATION &
(mProducer->dequeueBuffer(&dequeuedSlot, &dequeuedFence,
- QUEUE_BUFFER_INPUT_ASYNC,
DEFAULT_WIDTH, DEFAULT_HEIGHT, DEFAULT_FORMAT,
TEST_PRODUCER_USAGE_BITS)));
@@ -422,7 +412,6 @@
ASSERT_EQ(OK, ~IGraphicBufferProducer::BUFFER_NEEDS_REALLOCATION &
(mProducer->dequeueBuffer(&dequeuedSlot, &dequeuedFence,
- QUEUE_BUFFER_INPUT_ASYNC,
DEFAULT_WIDTH, DEFAULT_HEIGHT, DEFAULT_FORMAT,
TEST_PRODUCER_USAGE_BITS)));
@@ -492,7 +481,6 @@
ASSERT_EQ(OK, ~IGraphicBufferProducer::BUFFER_NEEDS_REALLOCATION &
(mProducer->dequeueBuffer(&dequeuedSlot, &dequeuedFence,
- QUEUE_BUFFER_INPUT_ASYNC,
DEFAULT_WIDTH, DEFAULT_HEIGHT, DEFAULT_FORMAT,
TEST_PRODUCER_USAGE_BITS)));
@@ -521,8 +509,7 @@
DequeueBufferResult result;
EXPECT_EQ(OK, ~IGraphicBufferProducer::BUFFER_NEEDS_REALLOCATION &
- (dequeueBuffer(QUEUE_BUFFER_INPUT_ASYNC,
- DEFAULT_WIDTH, DEFAULT_HEIGHT, DEFAULT_FORMAT,
+ (dequeueBuffer(DEFAULT_WIDTH, DEFAULT_HEIGHT, DEFAULT_FORMAT,
TEST_PRODUCER_USAGE_BITS, &result)))
<< "iteration: " << i << ", slot: " << result.slot;
@@ -543,7 +530,6 @@
EXPECT_EQ(OK, ~IGraphicBufferProducer::BUFFER_NEEDS_REALLOCATION &
(mProducer->dequeueBuffer(&dequeuedSlot, &dequeuedFence,
- QUEUE_BUFFER_INPUT_ASYNC,
DEFAULT_WIDTH, DEFAULT_HEIGHT,
DEFAULT_FORMAT,
TEST_PRODUCER_USAGE_BITS)))
@@ -574,7 +560,6 @@
ASSERT_EQ(OK, ~IGraphicBufferProducer::BUFFER_NEEDS_REALLOCATION &
(mProducer->dequeueBuffer(&dequeuedSlot, &dequeuedFence,
- QUEUE_BUFFER_INPUT_ASYNC,
DEFAULT_WIDTH, DEFAULT_HEIGHT,
DEFAULT_FORMAT,
TEST_PRODUCER_USAGE_BITS)))
@@ -602,10 +587,7 @@
int dequeuedSlot = -1;
sp<Fence> dequeuedFence;
- IGraphicBufferProducer::QueueBufferInput input(QUEUE_BUFFER_INPUT_TIMESTAMP,
- QUEUE_BUFFER_INPUT_IS_AUTO_TIMESTAMP, QUEUE_BUFFER_INPUT_DATASPACE,
- QUEUE_BUFFER_INPUT_RECT, QUEUE_BUFFER_INPUT_SCALING_MODE,
- QUEUE_BUFFER_INPUT_TRANSFORM, true, QUEUE_BUFFER_INPUT_FENCE);
+ IGraphicBufferProducer::QueueBufferInput input = CreateBufferInput();
IGraphicBufferProducer::QueueBufferOutput output;
sp<GraphicBuffer> dequeuedBuffer;
@@ -614,9 +596,8 @@
for (int i = 0; i < 5; ++i) {
ASSERT_EQ(OK, ~IGraphicBufferProducer::BUFFER_NEEDS_REALLOCATION &
(mProducer->dequeueBuffer(&dequeuedSlot, &dequeuedFence,
- true, DEFAULT_WIDTH, DEFAULT_HEIGHT,
- DEFAULT_FORMAT, TEST_PRODUCER_USAGE_BITS))) << "slot : "
- << dequeuedSlot;
+ DEFAULT_WIDTH, DEFAULT_HEIGHT, DEFAULT_FORMAT,
+ TEST_PRODUCER_USAGE_BITS))) << "slot : " << dequeuedSlot;
ASSERT_OK(mProducer->requestBuffer(dequeuedSlot, &dequeuedBuffer));
ASSERT_OK(mProducer->queueBuffer(dequeuedSlot, input, &output));
}
@@ -631,9 +612,8 @@
ASSERT_EQ(OK, ~IGraphicBufferProducer::BUFFER_NEEDS_REALLOCATION &
(mProducer->dequeueBuffer(&dequeuedSlot, &dequeuedFence,
- QUEUE_BUFFER_INPUT_ASYNC, DEFAULT_WIDTH, DEFAULT_HEIGHT,
- DEFAULT_FORMAT, TEST_PRODUCER_USAGE_BITS))) << "slot: "
- << dequeuedSlot;
+ DEFAULT_WIDTH, DEFAULT_HEIGHT, DEFAULT_FORMAT,
+ TEST_PRODUCER_USAGE_BITS))) << "slot: " << dequeuedSlot;
}
// Client has one or more buffers dequeued
@@ -653,9 +633,8 @@
int slot = -1;
sp<Fence> fence;
- ASSERT_EQ(NO_INIT, mProducer->dequeueBuffer(&slot, &fence,
- QUEUE_BUFFER_INPUT_ASYNC, DEFAULT_WIDTH, DEFAULT_HEIGHT,
- DEFAULT_FORMAT, TEST_PRODUCER_USAGE_BITS));
+ ASSERT_EQ(NO_INIT, mProducer->dequeueBuffer(&slot, &fence, DEFAULT_WIDTH,
+ DEFAULT_HEIGHT, DEFAULT_FORMAT, TEST_PRODUCER_USAGE_BITS));
}
TEST_F(IGraphicBufferProducerTest,
@@ -674,9 +653,8 @@
sp<Fence> fence;
ASSERT_EQ(OK, ~IGraphicBufferProducer::BUFFER_NEEDS_REALLOCATION &
- (mProducer->dequeueBuffer(&slot, &fence,
- QUEUE_BUFFER_INPUT_ASYNC, DEFAULT_WIDTH, DEFAULT_HEIGHT,
- DEFAULT_FORMAT, TEST_PRODUCER_USAGE_BITS)));
+ (mProducer->dequeueBuffer(&slot, &fence, DEFAULT_WIDTH,
+ DEFAULT_HEIGHT, DEFAULT_FORMAT, TEST_PRODUCER_USAGE_BITS)));
EXPECT_LE(0, slot);
EXPECT_GT(BufferQueue::NUM_BUFFER_SLOTS, slot);