SF: Pass the correct layer creation args when mirroring
Test: atest MirrorLayerTest#InitialMirrorState
Bug: 238781169
Fixes: 255343651
Change-Id: Ib560eb2c4b1be450f6b32c15ea6a0b83e32d264d
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 029dd9f..46cd031 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -4413,13 +4413,13 @@
sp<Layer> mirrorLayer;
sp<Layer> mirrorFrom;
+ LayerCreationArgs mirrorArgs(args);
{
Mutex::Autolock _l(mStateLock);
mirrorFrom = fromHandle(mirrorFromHandle).promote();
if (!mirrorFrom) {
return NAME_NOT_FOUND;
}
- LayerCreationArgs mirrorArgs(args);
mirrorArgs.flags |= ISurfaceComposerClient::eNoColorFill;
mirrorArgs.mirrorLayerHandle = mirrorFromHandle;
mirrorArgs.addToRoot = false;
@@ -4438,8 +4438,8 @@
mirrorLayer->sequence, args.name,
mirrorFrom->sequence);
}
- return addClientLayer(args, outResult.handle, mirrorLayer /* layer */, nullptr /* parent */,
- nullptr /* outTransformHint */);
+ return addClientLayer(mirrorArgs, outResult.handle, mirrorLayer /* layer */,
+ nullptr /* parent */, nullptr /* outTransformHint */);
}
status_t SurfaceFlinger::mirrorDisplay(DisplayId displayId, const LayerCreationArgs& args,
@@ -4470,7 +4470,7 @@
result = createEffectLayer(mirrorArgs, &outResult.handle, &rootMirrorLayer);
outResult.layerId = rootMirrorLayer->sequence;
outResult.layerName = String16(rootMirrorLayer->getDebugName());
- result |= addClientLayer(args, outResult.handle, rootMirrorLayer /* layer */,
+ result |= addClientLayer(mirrorArgs, outResult.handle, rootMirrorLayer /* layer */,
nullptr /* parent */, nullptr /* outTransformHint */);
}