diff --git a/graphic.cfg b/graphic.cfg index 1e3dd88151..1da993ec03 100644 --- a/graphic.cfg +++ b/graphic.cfg @@ -27,7 +27,7 @@ "critical" : [1, 5, 60], "importance" : -20, "uid" : "graphics", - "gid" : ["system", "tp_host", "data_reserve"], + "gid" : ["system", "tp_host", "data_reserve", "dev_dma_heap"], "writepid" : ["/dev/memcg/perf_sensitive/cgroup.procs"], "caps" : ["SYS_NICE"], "bootevents": [ diff --git a/rosen/modules/render_service/core/drawable/rs_display_render_node_drawable.cpp b/rosen/modules/render_service/core/drawable/rs_display_render_node_drawable.cpp index abf77a042b..b268175822 100644 --- a/rosen/modules/render_service/core/drawable/rs_display_render_node_drawable.cpp +++ b/rosen/modules/render_service/core/drawable/rs_display_render_node_drawable.cpp @@ -59,6 +59,8 @@ #include "drawable/dfx/rs_skp_capture_dfx.h" #include "platform/ohos/overdraw/rs_overdraw_controller.h" #include "utils/performanceCaculate.h" +// cpu boost +#include "c/ffrt_cpu_boost.h" namespace OHOS::Rosen::DrawableV2 { namespace { constexpr const char* CLEAR_GPU_CACHE = "ClearGpuCache"; @@ -793,7 +795,11 @@ void RSDisplayRenderNodeDrawable::OnDraw(Drawing::Canvas& canvas) } curCanvas_->SetHighContrast(RSUniRenderThread::Instance().IsHighContrastTextModeOn()); + // cpu boost feature start + ffrt_cpu_boost_start(CPUBOOST_START_POINT + 1); RSRenderNodeDrawable::OnDraw(*curCanvas_); + // cpu boost feature end + ffrt_cpu_boost_end(CPUBOOST_START_POINT + 1); DrawCurtainScreen(); if (needOffscreen) { if (canvasBackup_ != nullptr) { diff --git a/rosen/modules/render_service/core/pipeline/rs_main_thread.cpp b/rosen/modules/render_service/core/pipeline/rs_main_thread.cpp index f400becd42..701620075b 100644 --- a/rosen/modules/render_service/core/pipeline/rs_main_thread.cpp +++ b/rosen/modules/render_service/core/pipeline/rs_main_thread.cpp @@ -131,6 +131,9 @@ #include #endif +// cpu boost +#include "c/ffrt_cpu_boost.h" + using namespace FRAME_TRACE; static const std::string RS_INTERVAL_NAME = "renderservice"; @@ -450,8 +453,12 @@ void RSMainThread::Init() RSUifirstManager::Instance().PrepareCurrentFrameEvent(); ProcessHgmFrameRate(timestamp_); RS_PROFILER_ON_RENDER_BEGIN(); + // cpu boost feature start + ffrt_cpu_boost_start(CPUBOOST_START_POINT); // may mark rsnotrendering Render(); // now render is traverse tree to prepare + // cpu boost feature end + ffrt_cpu_boost_end(CPUBOOST_START_POINT); TraverseCanvasDrawingNodesNotOnTree(); RS_PROFILER_ON_RENDER_END(); OnUniRenderDraw();