Loading libs/dumputils/dump_utils.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ static const char* native_processes_to_dump[] = { "/system/bin/surfaceflinger", "/system/bin/vehicle_network_service", "/vendor/bin/hw/android.hardware.media.omx@1.0-service", // media.codec "/apex/com.android.media.swcodec/bin/mediaswcodec", // media.swcodec NULL, }; Loading @@ -50,6 +51,7 @@ static const char* hal_interfaces_to_dump[] { "android.hardware.graphics.allocator@2.0::IAllocator", "android.hardware.graphics.composer@2.1::IComposer", "android.hardware.health@2.0::IHealth", "android.hardware.media.c2@1.0::IComponentStore", "android.hardware.media.omx@1.0::IOmx", "android.hardware.media.omx@1.0::IOmxStore", "android.hardware.power.stats@1.0::IPowerStats", Loading libs/gui/include/gui/SurfaceControl.h +3 −6 Original line number Diff line number Diff line Loading @@ -84,6 +84,9 @@ public: explicit SurfaceControl(const sp<SurfaceControl>& other); SurfaceControl(const sp<SurfaceComposerClient>& client, const sp<IBinder>& handle, const sp<IGraphicBufferProducer>& gbp, bool owned); private: // can't be copied SurfaceControl& operator = (SurfaceControl& rhs); Loading @@ -92,12 +95,6 @@ private: friend class SurfaceComposerClient; friend class Surface; SurfaceControl( const sp<SurfaceComposerClient>& client, const sp<IBinder>& handle, const sp<IGraphicBufferProducer>& gbp, bool owned); ~SurfaceControl(); sp<Surface> generateSurfaceLocked() const; Loading services/inputflinger/InputDispatcher.cpp +19 −7 Original line number Diff line number Diff line Loading @@ -3214,17 +3214,29 @@ void InputDispatcher::setInputWindows(const std::vector<sp<InputWindowHandle>>& std::vector<sp<InputWindowHandle>> newHandles; for (const sp<InputWindowHandle>& handle : inputWindowHandles) { if (!handle->updateInfo() || (getInputChannelLocked(handle->getToken()) == nullptr && handle->getInfo()->portalToDisplayId == ADISPLAY_ID_NONE)) { if (!handle->updateInfo()) { // handle no longer valid continue; } const InputWindowInfo* info = handle->getInfo(); if ((getInputChannelLocked(handle->getToken()) == nullptr && info->portalToDisplayId == ADISPLAY_ID_NONE)) { const bool noInputChannel = info->inputFeatures & InputWindowInfo::INPUT_FEATURE_NO_INPUT_CHANNEL; const bool canReceiveInput = !(info->layoutParamsFlags & InputWindowInfo::FLAG_NOT_TOUCHABLE) || !(info->layoutParamsFlags & InputWindowInfo::FLAG_NOT_FOCUSABLE); if (canReceiveInput && !noInputChannel) { ALOGE("Window handle %s has no registered input channel", handle->getName().c_str()); } continue; } if (handle->getInfo()->displayId != displayId) { if (info->displayId != displayId) { ALOGE("Window %s updated by wrong display %d, should belong to display %d", handle->getName().c_str(), displayId, handle->getInfo()->displayId); handle->getName().c_str(), displayId, info->displayId); continue; } Loading services/surfaceflinger/BufferStateLayer.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -425,7 +425,7 @@ uint32_t BufferStateLayer::getDrawingScalingMode() const { } Region BufferStateLayer::getDrawingSurfaceDamage() const { return getDrawingState().surfaceDamageRegion; return Region::INVALID_REGION; } const HdrMetadata& BufferStateLayer::getDrawingHdrMetadata() const { Loading services/surfaceflinger/Client.cpp +3 −13 Original line number Diff line number Diff line Loading @@ -76,18 +76,9 @@ status_t Client::createSurface(const String8& name, uint32_t w, uint32_t h, Pixe uint32_t flags, const sp<IBinder>& parentHandle, LayerMetadata metadata, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp) { sp<Layer> parent = nullptr; if (parentHandle != nullptr) { auto layerHandle = reinterpret_cast<Layer::Handle*>(parentHandle.get()); parent = layerHandle->owner.promote(); if (parent == nullptr) { return NAME_NOT_FOUND; } } // We rely on createLayer to check permissions. return mFlinger->createLayer(name, this, w, h, format, flags, std::move(metadata), handle, gbp, &parent); parentHandle); } status_t Client::createWithSurfaceParent(const String8& name, uint32_t w, uint32_t h, Loading @@ -104,9 +95,8 @@ status_t Client::createWithSurfaceParent(const String8& name, uint32_t w, uint32 return BAD_VALUE; } sp<IBinder> parentHandle = layer->getHandle(); return createSurface(name, w, h, format, flags, parentHandle, std::move(metadata), handle, gbp); return mFlinger->createLayer(name, this, w, h, format, flags, std::move(metadata), handle, gbp, nullptr, layer); } status_t Client::clearLayerFrameStats(const sp<IBinder>& handle) const { Loading Loading
libs/dumputils/dump_utils.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ static const char* native_processes_to_dump[] = { "/system/bin/surfaceflinger", "/system/bin/vehicle_network_service", "/vendor/bin/hw/android.hardware.media.omx@1.0-service", // media.codec "/apex/com.android.media.swcodec/bin/mediaswcodec", // media.swcodec NULL, }; Loading @@ -50,6 +51,7 @@ static const char* hal_interfaces_to_dump[] { "android.hardware.graphics.allocator@2.0::IAllocator", "android.hardware.graphics.composer@2.1::IComposer", "android.hardware.health@2.0::IHealth", "android.hardware.media.c2@1.0::IComponentStore", "android.hardware.media.omx@1.0::IOmx", "android.hardware.media.omx@1.0::IOmxStore", "android.hardware.power.stats@1.0::IPowerStats", Loading
libs/gui/include/gui/SurfaceControl.h +3 −6 Original line number Diff line number Diff line Loading @@ -84,6 +84,9 @@ public: explicit SurfaceControl(const sp<SurfaceControl>& other); SurfaceControl(const sp<SurfaceComposerClient>& client, const sp<IBinder>& handle, const sp<IGraphicBufferProducer>& gbp, bool owned); private: // can't be copied SurfaceControl& operator = (SurfaceControl& rhs); Loading @@ -92,12 +95,6 @@ private: friend class SurfaceComposerClient; friend class Surface; SurfaceControl( const sp<SurfaceComposerClient>& client, const sp<IBinder>& handle, const sp<IGraphicBufferProducer>& gbp, bool owned); ~SurfaceControl(); sp<Surface> generateSurfaceLocked() const; Loading
services/inputflinger/InputDispatcher.cpp +19 −7 Original line number Diff line number Diff line Loading @@ -3214,17 +3214,29 @@ void InputDispatcher::setInputWindows(const std::vector<sp<InputWindowHandle>>& std::vector<sp<InputWindowHandle>> newHandles; for (const sp<InputWindowHandle>& handle : inputWindowHandles) { if (!handle->updateInfo() || (getInputChannelLocked(handle->getToken()) == nullptr && handle->getInfo()->portalToDisplayId == ADISPLAY_ID_NONE)) { if (!handle->updateInfo()) { // handle no longer valid continue; } const InputWindowInfo* info = handle->getInfo(); if ((getInputChannelLocked(handle->getToken()) == nullptr && info->portalToDisplayId == ADISPLAY_ID_NONE)) { const bool noInputChannel = info->inputFeatures & InputWindowInfo::INPUT_FEATURE_NO_INPUT_CHANNEL; const bool canReceiveInput = !(info->layoutParamsFlags & InputWindowInfo::FLAG_NOT_TOUCHABLE) || !(info->layoutParamsFlags & InputWindowInfo::FLAG_NOT_FOCUSABLE); if (canReceiveInput && !noInputChannel) { ALOGE("Window handle %s has no registered input channel", handle->getName().c_str()); } continue; } if (handle->getInfo()->displayId != displayId) { if (info->displayId != displayId) { ALOGE("Window %s updated by wrong display %d, should belong to display %d", handle->getName().c_str(), displayId, handle->getInfo()->displayId); handle->getName().c_str(), displayId, info->displayId); continue; } Loading
services/surfaceflinger/BufferStateLayer.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -425,7 +425,7 @@ uint32_t BufferStateLayer::getDrawingScalingMode() const { } Region BufferStateLayer::getDrawingSurfaceDamage() const { return getDrawingState().surfaceDamageRegion; return Region::INVALID_REGION; } const HdrMetadata& BufferStateLayer::getDrawingHdrMetadata() const { Loading
services/surfaceflinger/Client.cpp +3 −13 Original line number Diff line number Diff line Loading @@ -76,18 +76,9 @@ status_t Client::createSurface(const String8& name, uint32_t w, uint32_t h, Pixe uint32_t flags, const sp<IBinder>& parentHandle, LayerMetadata metadata, sp<IBinder>* handle, sp<IGraphicBufferProducer>* gbp) { sp<Layer> parent = nullptr; if (parentHandle != nullptr) { auto layerHandle = reinterpret_cast<Layer::Handle*>(parentHandle.get()); parent = layerHandle->owner.promote(); if (parent == nullptr) { return NAME_NOT_FOUND; } } // We rely on createLayer to check permissions. return mFlinger->createLayer(name, this, w, h, format, flags, std::move(metadata), handle, gbp, &parent); parentHandle); } status_t Client::createWithSurfaceParent(const String8& name, uint32_t w, uint32_t h, Loading @@ -104,9 +95,8 @@ status_t Client::createWithSurfaceParent(const String8& name, uint32_t w, uint32 return BAD_VALUE; } sp<IBinder> parentHandle = layer->getHandle(); return createSurface(name, w, h, format, flags, parentHandle, std::move(metadata), handle, gbp); return mFlinger->createLayer(name, this, w, h, format, flags, std::move(metadata), handle, gbp, nullptr, layer); } status_t Client::clearLayerFrameStats(const sp<IBinder>& handle) const { Loading