Update ANativeWindow clients for sync This change updates the uses of ANativeWindow to use the new ANW functions that accept and return Sync HAL fence file descriptors. Change-Id: I701729e34e00944709c4477acf9d63ca6a2ab0f6
diff --git a/driver/rsdAllocation.cpp b/driver/rsdAllocation.cpp index 4eb5a46..20c2165 100644 --- a/driver/rsdAllocation.cpp +++ b/driver/rsdAllocation.cpp
@@ -399,19 +399,12 @@ static bool IoGetBuffer(const Context *rsc, Allocation *alloc, ANativeWindow *nw) { DrvAllocation *drv = (DrvAllocation *)alloc->mHal.drv; - int32_t r = nw->dequeueBuffer(nw, &drv->wndBuffer); + int32_t r = native_window_dequeue_buffer_and_wait(nw, &drv->wndBuffer); if (r) { rsc->setError(RS_ERROR_DRIVER, "Error getting next IO output buffer."); return false; } - // This lock is implicitly released by the queue buffer in IoSend - r = nw->lockBuffer(nw, drv->wndBuffer); - if (r) { - rsc->setError(RS_ERROR_DRIVER, "Error locking next IO output buffer."); - return false; - } - // Must lock the whole surface GraphicBufferMapper &mapper = GraphicBufferMapper::get(); Rect bounds(drv->wndBuffer->width, drv->wndBuffer->height); @@ -443,7 +436,7 @@ ANativeWindow *old = alloc->mHal.state.wndSurface; GraphicBufferMapper &mapper = GraphicBufferMapper::get(); mapper.unlock(drv->wndBuffer->handle); - old->queueBuffer(old, drv->wndBuffer); + old->queueBuffer(old, drv->wndBuffer, -1); } if (nw != NULL) { @@ -492,7 +485,7 @@ if (alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_SCRIPT) { GraphicBufferMapper &mapper = GraphicBufferMapper::get(); mapper.unlock(drv->wndBuffer->handle); - int32_t r = nw->queueBuffer(nw, drv->wndBuffer); + int32_t r = nw->queueBuffer(nw, drv->wndBuffer, -1); if (r) { rsc->setError(RS_ERROR_DRIVER, "Error sending IO output buffer."); return;