diff --git a/dmserver/src/abstract_screen.cpp b/dmserver/src/abstract_screen.cpp index 75e399a8..f5ef4cae 100644 --- a/dmserver/src/abstract_screen.cpp +++ b/dmserver/src/abstract_screen.cpp @@ -84,6 +84,10 @@ void AbstractScreen::InitRSDisplayNode(RSDisplayNodeConfig& config) } rsDisplayNode_ = rsDisplayNode; rSDisplayNodeConfig_ = config; + auto transactionProxy = RSTransactionProxy::GetInstance(); + if (transactionProxy != nullptr) { + transactionProxy->FlushImplicitTransaction(); + } } DMError AbstractScreen::GetScreenSupportedColorGamuts(std::vector& colorGamuts) diff --git a/dmserver/src/display_manager_service.cpp b/dmserver/src/display_manager_service.cpp index c4e5ad24..e349da00 100644 --- a/dmserver/src/display_manager_service.cpp +++ b/dmserver/src/display_manager_service.cpp @@ -380,6 +380,10 @@ std::shared_ptr DisplayManagerService::GetRSDisplayNodeByDisplayI void DisplayManagerService::SetShotScreen(ScreenId mainScreenId, std::vector shotScreenIds) { WLOGFI("SetShotScreen. mainScreenId: %{public}" PRIu64"", mainScreenId); + if (shotScreenIds.empty()) { + WLOGFI("shotScreenIds is empty"); + return; + } std::shared_ptr displayNode = abstractScreenController_->GetRSDisplayNodeByScreenId(mainScreenId); if (displayNode == nullptr) { WLOGFE("SetShotScreen error, cannot get DisplayNode");