Loading libs/hwui/renderthread/CanvasContext.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -180,8 +180,6 @@ void CanvasContext::setSurface(ANativeWindow* window, bool enableTimeout) { ATRACE_CALL(); if (window) { // Ensure the hint session is running here, away from any critical paths mHintSessionWrapper.init(); mNativeSurface = std::make_unique<ReliableSurface>(window); mNativeSurface->init(); if (enableTimeout) { Loading Loading @@ -1050,6 +1048,10 @@ void CanvasContext::setSyncDelayDuration(nsecs_t duration) { mSyncDelayDuration = duration; } void CanvasContext::startHintSession() { mHintSessionWrapper.init(); } } /* namespace renderthread */ } /* namespace uirenderer */ } /* namespace android */ libs/hwui/renderthread/CanvasContext.h +2 −0 Original line number Diff line number Diff line Loading @@ -224,6 +224,8 @@ public: void setSyncDelayDuration(nsecs_t duration); void startHintSession(); private: CanvasContext(RenderThread& thread, bool translucent, RenderNode* rootRenderNode, IContextFactory* contextFactory, std::unique_ptr<IRenderPipeline> renderPipeline, Loading libs/hwui/renderthread/RenderProxy.cpp +6 −2 Original line number Diff line number Diff line Loading @@ -45,8 +45,12 @@ RenderProxy::RenderProxy(bool translucent, RenderNode* rootRenderNode, pid_t uiThreadId = pthread_gettid_np(pthread_self()); pid_t renderThreadId = getRenderThreadTid(); mContext = mRenderThread.queue().runSync([=, this]() -> CanvasContext* { return CanvasContext::create(mRenderThread, translucent, rootRenderNode, contextFactory, uiThreadId, renderThreadId); CanvasContext* context = CanvasContext::create(mRenderThread, translucent, rootRenderNode, contextFactory, uiThreadId, renderThreadId); if (context != nullptr) { mRenderThread.queue().post([=] { context->startHintSession(); }); } return context; }); mDrawFrameTask.setContext(&mRenderThread, mContext, rootRenderNode); } Loading Loading
libs/hwui/renderthread/CanvasContext.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -180,8 +180,6 @@ void CanvasContext::setSurface(ANativeWindow* window, bool enableTimeout) { ATRACE_CALL(); if (window) { // Ensure the hint session is running here, away from any critical paths mHintSessionWrapper.init(); mNativeSurface = std::make_unique<ReliableSurface>(window); mNativeSurface->init(); if (enableTimeout) { Loading Loading @@ -1050,6 +1048,10 @@ void CanvasContext::setSyncDelayDuration(nsecs_t duration) { mSyncDelayDuration = duration; } void CanvasContext::startHintSession() { mHintSessionWrapper.init(); } } /* namespace renderthread */ } /* namespace uirenderer */ } /* namespace android */
libs/hwui/renderthread/CanvasContext.h +2 −0 Original line number Diff line number Diff line Loading @@ -224,6 +224,8 @@ public: void setSyncDelayDuration(nsecs_t duration); void startHintSession(); private: CanvasContext(RenderThread& thread, bool translucent, RenderNode* rootRenderNode, IContextFactory* contextFactory, std::unique_ptr<IRenderPipeline> renderPipeline, Loading
libs/hwui/renderthread/RenderProxy.cpp +6 −2 Original line number Diff line number Diff line Loading @@ -45,8 +45,12 @@ RenderProxy::RenderProxy(bool translucent, RenderNode* rootRenderNode, pid_t uiThreadId = pthread_gettid_np(pthread_self()); pid_t renderThreadId = getRenderThreadTid(); mContext = mRenderThread.queue().runSync([=, this]() -> CanvasContext* { return CanvasContext::create(mRenderThread, translucent, rootRenderNode, contextFactory, uiThreadId, renderThreadId); CanvasContext* context = CanvasContext::create(mRenderThread, translucent, rootRenderNode, contextFactory, uiThreadId, renderThreadId); if (context != nullptr) { mRenderThread.queue().post([=] { context->startHintSession(); }); } return context; }); mDrawFrameTask.setContext(&mRenderThread, mContext, rootRenderNode); } Loading