Loading libs/gui/BufferQueueProducer.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -381,7 +381,6 @@ status_t BufferQueueProducer::dequeueBuffer(int* outSlot, sp<android::Fence>* ou { // Autolock scope Mutex::Autolock lock(mCore->mMutex); mCore->waitWhileAllocatingLocked(); if (format == 0) { format = mCore->mDefaultBufferFormat; Loading Loading @@ -1345,7 +1344,9 @@ void BufferQueueProducer::allocateBuffers(uint32_t width, uint32_t height, return; } newBufferCount = mCore->mFreeSlots.size(); // Only allocate one buffer at a time to reduce risks of overlapping an allocation from // both allocateBuffers and dequeueBuffer. newBufferCount = mCore->mFreeSlots.empty() ? 0 : 1; if (newBufferCount == 0) { return; } Loading libs/gui/IGraphicBufferProducer.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -355,7 +355,7 @@ public: data.writeUint32(height); data.writeInt32(static_cast<int32_t>(format)); data.writeUint64(usage); status_t result = remote()->transact(ALLOCATE_BUFFERS, data, &reply); status_t result = remote()->transact(ALLOCATE_BUFFERS, data, &reply, TF_ONE_WAY); if (result != NO_ERROR) { ALOGE("allocateBuffers failed to transact: %d", result); } Loading libs/gui/Surface.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -464,8 +464,12 @@ int Surface::setSwapInterval(int interval) { if (interval > maxSwapInterval) interval = maxSwapInterval; const bool wasSwapIntervalZero = mSwapIntervalZero; mSwapIntervalZero = (interval == 0); if (mSwapIntervalZero != wasSwapIntervalZero) { mGraphicBufferProducer->setAsyncMode(mSwapIntervalZero); } return NO_ERROR; } Loading services/surfaceflinger/Android.bp +3 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ cc_defaults { "android.hardware.graphics.composer@2.1", "android.hardware.graphics.composer@2.2", "android.hardware.power@1.0", "android.hardware.power@1.3", "libbase", "libbinder", "libbufferhubqueue", Loading Loading @@ -69,6 +70,7 @@ cc_defaults { "android.hardware.graphics.allocator@2.0", "android.hardware.graphics.composer@2.1", "android.hardware.graphics.composer@2.2", "android.hardware.power@1.3", "libhidlbase", "libhidltransport", "libhwbinder", Loading Loading @@ -96,6 +98,7 @@ filegroup { "DisplayHardware/HWC2.cpp", "DisplayHardware/HWComposer.cpp", "DisplayHardware/HWComposerBufferCache.cpp", "DisplayHardware/PowerAdvisor.cpp", "DisplayHardware/VirtualDisplaySurface.cpp", "DispSync.cpp", "Effects/Daltonizer.cpp", Loading services/surfaceflinger/BufferLayer.cpp +7 −3 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ BufferLayer::BufferLayer(SurfaceFlinger* flinger, const sp<Client>& client, cons mRefreshPending(false) { ALOGV("Creating Layer %s", name.string()); mFlinger->getRenderEngine().genTextures(1, &mTextureName); mTextureName = mFlinger->getNewTexture(); mTexture.init(Texture::TEXTURE_EXTERNAL, mTextureName); if (flags & ISurfaceComposerClient::eNonPremultiplied) mPremultipliedAlpha = false; Loading Loading @@ -709,8 +709,12 @@ void BufferLayer::onFirstRef() { sp<IGraphicBufferConsumer> consumer; BufferQueue::createBufferQueue(&producer, &consumer, true); mProducer = new MonitoredProducer(producer, mFlinger, this); mConsumer = new BufferLayerConsumer(consumer, mFlinger->getRenderEngine(), mTextureName, this); { // Grab the SF state lock during this since it's the only safe way to access RenderEngine Mutex::Autolock lock(mFlinger->mStateLock); mConsumer = new BufferLayerConsumer(consumer, mFlinger->getRenderEngine(), mTextureName, this); } mConsumer->setConsumerUsageBits(getEffectiveUsage(0)); mConsumer->setContentsChangedListener(this); mConsumer->setName(mName); Loading Loading
libs/gui/BufferQueueProducer.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -381,7 +381,6 @@ status_t BufferQueueProducer::dequeueBuffer(int* outSlot, sp<android::Fence>* ou { // Autolock scope Mutex::Autolock lock(mCore->mMutex); mCore->waitWhileAllocatingLocked(); if (format == 0) { format = mCore->mDefaultBufferFormat; Loading Loading @@ -1345,7 +1344,9 @@ void BufferQueueProducer::allocateBuffers(uint32_t width, uint32_t height, return; } newBufferCount = mCore->mFreeSlots.size(); // Only allocate one buffer at a time to reduce risks of overlapping an allocation from // both allocateBuffers and dequeueBuffer. newBufferCount = mCore->mFreeSlots.empty() ? 0 : 1; if (newBufferCount == 0) { return; } Loading
libs/gui/IGraphicBufferProducer.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -355,7 +355,7 @@ public: data.writeUint32(height); data.writeInt32(static_cast<int32_t>(format)); data.writeUint64(usage); status_t result = remote()->transact(ALLOCATE_BUFFERS, data, &reply); status_t result = remote()->transact(ALLOCATE_BUFFERS, data, &reply, TF_ONE_WAY); if (result != NO_ERROR) { ALOGE("allocateBuffers failed to transact: %d", result); } Loading
libs/gui/Surface.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -464,8 +464,12 @@ int Surface::setSwapInterval(int interval) { if (interval > maxSwapInterval) interval = maxSwapInterval; const bool wasSwapIntervalZero = mSwapIntervalZero; mSwapIntervalZero = (interval == 0); if (mSwapIntervalZero != wasSwapIntervalZero) { mGraphicBufferProducer->setAsyncMode(mSwapIntervalZero); } return NO_ERROR; } Loading
services/surfaceflinger/Android.bp +3 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ cc_defaults { "android.hardware.graphics.composer@2.1", "android.hardware.graphics.composer@2.2", "android.hardware.power@1.0", "android.hardware.power@1.3", "libbase", "libbinder", "libbufferhubqueue", Loading Loading @@ -69,6 +70,7 @@ cc_defaults { "android.hardware.graphics.allocator@2.0", "android.hardware.graphics.composer@2.1", "android.hardware.graphics.composer@2.2", "android.hardware.power@1.3", "libhidlbase", "libhidltransport", "libhwbinder", Loading Loading @@ -96,6 +98,7 @@ filegroup { "DisplayHardware/HWC2.cpp", "DisplayHardware/HWComposer.cpp", "DisplayHardware/HWComposerBufferCache.cpp", "DisplayHardware/PowerAdvisor.cpp", "DisplayHardware/VirtualDisplaySurface.cpp", "DispSync.cpp", "Effects/Daltonizer.cpp", Loading
services/surfaceflinger/BufferLayer.cpp +7 −3 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ BufferLayer::BufferLayer(SurfaceFlinger* flinger, const sp<Client>& client, cons mRefreshPending(false) { ALOGV("Creating Layer %s", name.string()); mFlinger->getRenderEngine().genTextures(1, &mTextureName); mTextureName = mFlinger->getNewTexture(); mTexture.init(Texture::TEXTURE_EXTERNAL, mTextureName); if (flags & ISurfaceComposerClient::eNonPremultiplied) mPremultipliedAlpha = false; Loading Loading @@ -709,8 +709,12 @@ void BufferLayer::onFirstRef() { sp<IGraphicBufferConsumer> consumer; BufferQueue::createBufferQueue(&producer, &consumer, true); mProducer = new MonitoredProducer(producer, mFlinger, this); mConsumer = new BufferLayerConsumer(consumer, mFlinger->getRenderEngine(), mTextureName, this); { // Grab the SF state lock during this since it's the only safe way to access RenderEngine Mutex::Autolock lock(mFlinger->mStateLock); mConsumer = new BufferLayerConsumer(consumer, mFlinger->getRenderEngine(), mTextureName, this); } mConsumer->setConsumerUsageBits(getEffectiveUsage(0)); mConsumer->setContentsChangedListener(this); mConsumer->setName(mName); Loading