From 2ec1f7b970563ffd1651c36c52e9fc6831120915 Mon Sep 17 00:00:00 2001 From: Pablo Gamito Date: Tue, 1 Sep 2020 14:18:49 +0000 Subject: Provide layer id on surface creation Allows for the layer state to be dumped on the client side with the layer's id so that they can then be associated with the respective layer dumped on the server side Test: Check that the layer ID is provided on the client side when createSurface is called Change-Id: I7ea851942c43fc48326bb8558a605ba6877600da --- libs/gui/ISurfaceComposerClient.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'libs/gui/ISurfaceComposerClient.cpp') diff --git a/libs/gui/ISurfaceComposerClient.cpp b/libs/gui/ISurfaceComposerClient.cpp index 621cf5950b..a814362e3c 100644 --- a/libs/gui/ISurfaceComposerClient.cpp +++ b/libs/gui/ISurfaceComposerClient.cpp @@ -49,13 +49,13 @@ public: status_t createSurface(const String8& name, uint32_t width, uint32_t height, PixelFormat format, uint32_t flags, const sp& parent, LayerMetadata metadata, - sp* handle, sp* gbp, + sp* handle, sp* gbp, int32_t* outId, uint32_t* outTransformHint) override { return callRemote(Tag::CREATE_SURFACE, name, width, height, format, flags, parent, std::move(metadata), - handle, gbp, + handle, gbp, outId, outTransformHint); } @@ -63,14 +63,14 @@ public: PixelFormat format, uint32_t flags, const sp& parent, LayerMetadata metadata, sp* handle, - sp* gbp, + sp* gbp, int32_t* outId, uint32_t* outTransformHint) override { return callRemote(Tag::CREATE_WITH_SURFACE_PARENT, name, width, height, format, flags, parent, std::move(metadata), handle, gbp, - outTransformHint); + outId, outTransformHint); } status_t clearLayerFrameStats(const sp& handle) const override { @@ -85,10 +85,11 @@ public: outStats); } - status_t mirrorSurface(const sp& mirrorFromHandle, sp* outHandle) override { + status_t mirrorSurface(const sp& mirrorFromHandle, sp* outHandle, + int32_t* outId) override { return callRemote(Tag::MIRROR_SURFACE, mirrorFromHandle, - outHandle); + outHandle, outId); } }; -- cgit v1.2.3-59-g8ed1b From 9f0a4008b72138f6279a12f474b60e5e3caa13c3 Mon Sep 17 00:00:00 2001 From: Ady Abraham Date: Mon, 5 Oct 2020 15:47:26 -0700 Subject: SurfaceFLinger: rename outLayerId - Rename outId to outLayerId to reflect what the Id is. - Remove the default value and require it to be non-nullptr Test: SF tests Change-Id: Icdbbab4a84e9bd5982d274ee5bf522e36545855a --- libs/gui/ISurfaceComposerClient.cpp | 14 +++++++------- libs/gui/include/gui/ISurfaceComposerClient.h | 6 +++--- services/surfaceflinger/Client.cpp | 12 ++++++------ services/surfaceflinger/Client.h | 6 +++--- services/surfaceflinger/RefreshRateOverlay.cpp | 3 ++- services/surfaceflinger/SurfaceFlinger.cpp | 12 +++++------- services/surfaceflinger/SurfaceFlinger.h | 7 ++++--- 7 files changed, 30 insertions(+), 30 deletions(-) (limited to 'libs/gui/ISurfaceComposerClient.cpp') diff --git a/libs/gui/ISurfaceComposerClient.cpp b/libs/gui/ISurfaceComposerClient.cpp index a814362e3c..5e7a7ec67b 100644 --- a/libs/gui/ISurfaceComposerClient.cpp +++ b/libs/gui/ISurfaceComposerClient.cpp @@ -49,13 +49,13 @@ public: status_t createSurface(const String8& name, uint32_t width, uint32_t height, PixelFormat format, uint32_t flags, const sp& parent, LayerMetadata metadata, - sp* handle, sp* gbp, int32_t* outId, - uint32_t* outTransformHint) override { + sp* handle, sp* gbp, + int32_t* outLayerId, uint32_t* outTransformHint) override { return callRemote(Tag::CREATE_SURFACE, name, width, height, format, flags, parent, std::move(metadata), - handle, gbp, outId, + handle, gbp, outLayerId, outTransformHint); } @@ -63,14 +63,14 @@ public: PixelFormat format, uint32_t flags, const sp& parent, LayerMetadata metadata, sp* handle, - sp* gbp, int32_t* outId, + sp* gbp, int32_t* outLayerId, uint32_t* outTransformHint) override { return callRemote(Tag::CREATE_WITH_SURFACE_PARENT, name, width, height, format, flags, parent, std::move(metadata), handle, gbp, - outId, outTransformHint); + outLayerId, outTransformHint); } status_t clearLayerFrameStats(const sp& handle) const override { @@ -86,10 +86,10 @@ public: } status_t mirrorSurface(const sp& mirrorFromHandle, sp* outHandle, - int32_t* outId) override { + int32_t* outLayerId) override { return callRemote(Tag::MIRROR_SURFACE, mirrorFromHandle, - outHandle, outId); + outHandle, outLayerId); } }; diff --git a/libs/gui/include/gui/ISurfaceComposerClient.h b/libs/gui/include/gui/ISurfaceComposerClient.h index f3fcebecad..4a92f535a2 100644 --- a/libs/gui/include/gui/ISurfaceComposerClient.h +++ b/libs/gui/include/gui/ISurfaceComposerClient.h @@ -58,7 +58,7 @@ public: virtual status_t createSurface(const String8& name, uint32_t w, uint32_t h, PixelFormat format, uint32_t flags, const sp& parent, LayerMetadata metadata, sp* handle, - sp* gbp, int32_t* outId, + sp* gbp, int32_t* outLayerId, uint32_t* outTransformHint) = 0; /* @@ -68,7 +68,7 @@ public: PixelFormat format, uint32_t flags, const sp& parent, LayerMetadata metadata, sp* handle, - sp* gbp, int32_t* outId, + sp* gbp, int32_t* outLayerId, uint32_t* outTransformHint) = 0; /* @@ -82,7 +82,7 @@ public: virtual status_t getLayerFrameStats(const sp& handle, FrameStats* outStats) const = 0; virtual status_t mirrorSurface(const sp& mirrorFromHandle, sp* outHandle, - int32_t* outId) = 0; + int32_t* outLayerId) = 0; }; class BnSurfaceComposerClient : public SafeBnInterface { diff --git a/services/surfaceflinger/Client.cpp b/services/surfaceflinger/Client.cpp index 07817b5a7f..aac6c913cf 100644 --- a/services/surfaceflinger/Client.cpp +++ b/services/surfaceflinger/Client.cpp @@ -79,18 +79,18 @@ sp Client::getLayerUser(const sp& handle) const status_t Client::createSurface(const String8& name, uint32_t w, uint32_t h, PixelFormat format, uint32_t flags, const sp& parentHandle, LayerMetadata metadata, sp* handle, - sp* gbp, int32_t* outId, + sp* gbp, int32_t* outLayerId, uint32_t* outTransformHint) { // We rely on createLayer to check permissions. return mFlinger->createLayer(name, this, w, h, format, flags, std::move(metadata), handle, gbp, - parentHandle, nullptr, outId, outTransformHint); + parentHandle, outLayerId, nullptr, outTransformHint); } status_t Client::createWithSurfaceParent(const String8& name, uint32_t w, uint32_t h, PixelFormat format, uint32_t flags, const sp& parent, LayerMetadata metadata, sp* handle, - sp* gbp, int32_t* outId, + sp* gbp, int32_t* outLayerId, uint32_t* outTransformHint) { if (mFlinger->authenticateSurfaceTexture(parent) == false) { ALOGE("failed to authenticate surface texture"); @@ -104,12 +104,12 @@ status_t Client::createWithSurfaceParent(const String8& name, uint32_t w, uint32 } return mFlinger->createLayer(name, this, w, h, format, flags, std::move(metadata), handle, gbp, - nullptr, layer, outId, outTransformHint); + nullptr, outLayerId, layer, outTransformHint); } status_t Client::mirrorSurface(const sp& mirrorFromHandle, sp* outHandle, - int32_t* outId) { - return mFlinger->mirrorLayer(this, mirrorFromHandle, outHandle, outId); + int32_t* outLayerId) { + return mFlinger->mirrorLayer(this, mirrorFromHandle, outHandle, outLayerId); } status_t Client::clearLayerFrameStats(const sp& handle) const { diff --git a/services/surfaceflinger/Client.h b/services/surfaceflinger/Client.h index 9462f1a7a3..15cd763822 100644 --- a/services/surfaceflinger/Client.h +++ b/services/surfaceflinger/Client.h @@ -50,18 +50,18 @@ private: virtual status_t createSurface(const String8& name, uint32_t w, uint32_t h, PixelFormat format, uint32_t flags, const sp& parent, LayerMetadata metadata, sp* handle, - sp* gbp, int32_t* outId, + sp* gbp, int32_t* outLayerId, uint32_t* outTransformHint = nullptr); virtual status_t createWithSurfaceParent(const String8& name, uint32_t w, uint32_t h, PixelFormat format, uint32_t flags, const sp& parent, LayerMetadata metadata, sp* handle, - sp* gbp, int32_t* outId, + sp* gbp, int32_t* outLayerId, uint32_t* outTransformHint = nullptr); status_t mirrorSurface(const sp& mirrorFromHandle, sp* handle, - int32_t* outId); + int32_t* outLayerId); virtual status_t clearLayerFrameStats(const sp& handle) const; diff --git a/services/surfaceflinger/RefreshRateOverlay.cpp b/services/surfaceflinger/RefreshRateOverlay.cpp index 99d061daa3..f676d5b44b 100644 --- a/services/surfaceflinger/RefreshRateOverlay.cpp +++ b/services/surfaceflinger/RefreshRateOverlay.cpp @@ -176,12 +176,13 @@ RefreshRateOverlay::RefreshRateOverlay(SurfaceFlinger& flinger, bool showSpinner } bool RefreshRateOverlay::createLayer() { + int32_t layerId; const status_t ret = mFlinger.createLayer(String8("RefreshRateOverlay"), mClient, SevenSegmentDrawer::getWidth(), SevenSegmentDrawer::getHeight(), PIXEL_FORMAT_RGBA_8888, ISurfaceComposerClient::eFXSurfaceBufferState, LayerMetadata(), - &mIBinder, &mGbp, nullptr); + &mIBinder, &mGbp, nullptr, &layerId); if (ret) { ALOGE("failed to create buffer state layer"); return false; diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index bf33e5edef..498859ba28 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -3846,7 +3846,7 @@ uint32_t SurfaceFlinger::addInputWindowCommands(const InputWindowCommands& input } status_t SurfaceFlinger::mirrorLayer(const sp& client, const sp& mirrorFromHandle, - sp* outHandle, int32_t* outId) { + sp* outHandle, int32_t* outLayerId) { if (!mirrorFromHandle) { return NAME_NOT_FOUND; } @@ -3871,7 +3871,7 @@ status_t SurfaceFlinger::mirrorLayer(const sp& client, const sp mirrorLayer->mClonedChild = mirrorFrom->createClone(); } - *outId = mirrorLayer->sequence; + *outLayerId = mirrorLayer->sequence; return addClientLayer(client, *outHandle, nullptr, mirrorLayer, nullptr, nullptr, false, nullptr /* outTransformHint */); } @@ -3880,8 +3880,8 @@ status_t SurfaceFlinger::createLayer(const String8& name, const sp& clie uint32_t h, PixelFormat format, uint32_t flags, LayerMetadata metadata, sp* handle, sp* gbp, - const sp& parentHandle, const sp& parentLayer, - int32_t* outId, uint32_t* outTransformHint) { + const sp& parentHandle, int32_t* outLayerId, + const sp& parentLayer, uint32_t* outTransformHint) { if (int32_t(w|h) < 0) { ALOGE("createLayer() failed, w or h is negative (w=%d, h=%d)", int(w), int(h)); @@ -3947,9 +3947,7 @@ status_t SurfaceFlinger::createLayer(const String8& name, const sp& clie mInterceptor->saveSurfaceCreation(layer); setTransactionFlags(eTransactionNeeded); - if (outId) { - *outId = layer->sequence; - } + *outLayerId = layer->sequence; return result; } diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h index e50ecf0493..99d0232e59 100644 --- a/services/surfaceflinger/SurfaceFlinger.h +++ b/services/surfaceflinger/SurfaceFlinger.h @@ -752,8 +752,9 @@ private: status_t createLayer(const String8& name, const sp& client, uint32_t w, uint32_t h, PixelFormat format, uint32_t flags, LayerMetadata metadata, sp* handle, sp* gbp, - const sp& parentHandle, const sp& parentLayer = nullptr, - int32_t* outId = nullptr, uint32_t* outTransformHint = nullptr); + const sp& parentHandle, int32_t* outLayerId, + const sp& parentLayer = nullptr, + uint32_t* outTransformHint = nullptr); status_t createBufferQueueLayer(const sp& client, std::string name, uint32_t w, uint32_t h, uint32_t flags, LayerMetadata metadata, @@ -773,7 +774,7 @@ private: sp* outHandle, sp* outLayer); status_t mirrorLayer(const sp& client, const sp& mirrorFromHandle, - sp* outHandle, int32_t* outId); + sp* outHandle, int32_t* outLayerId); std::string getUniqueLayerName(const char* name); -- cgit v1.2.3-59-g8ed1b