Skip to content

Commit 82d5708

Browse files
committed
Use client composition for dGPU rendered layers
Optimize performance in multi-plane mode when use dGPU rendering and iGPU display: use client composition to avoid blitting multiple layers to shadow buffers. Tracked-On: OAM-132617 Signed-off-by: Weifeng Liu <weifeng.liu@intel.com>
1 parent ee61189 commit 82d5708

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

backend/Backend.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,14 @@ bool Backend::IsClientLayer(HwcDisplay *display, HwcLayer *layer) {
123123
!layer->IsLayerUsableAsDevice() ||
124124
display->color_transform_hint() != HAL_COLOR_TRANSFORM_IDENTITY ||
125125
(layer->GetLayerData().pi.RequireScalingOrPhasing() &&
126-
display->GetHwc2()->GetResMan().ForcedScalingWithGpu()) ||
126+
display->GetHwc2()->GetResMan().ForcedScalingWithGpu()) ||
127+
// Optimize performance in multi-plane mode when use dGPU rendering
128+
// and iGPU display: use client composition to avoid blitting multiple
129+
// layers to shadow buffers.
130+
(intel_dgpu_fd() >= 0 &&
131+
!display->GetPipe().crtc->Get()->GetAllowP2P() &&
132+
display->GetPipe().GetUsablePlanes().size() > 1 &&
133+
!IsVideoLayer(layer)) ||
127134
(!display->IsInHeadlessMode() && display->GetPipe().device->IsIvshmDev());
128135
}
129136

0 commit comments

Comments
 (0)