From 700079e817a076f8e6d9c9b0257dc2d5525eefb1 Mon Sep 17 00:00:00 2001 From: John Reck Date: Tue, 19 Feb 2019 10:38:50 -0800 Subject: [PATCH] Fix RenderThread setForLooper RenderThread doesn't use ThreadBase::threadLoop so it also needs to explicitly Looper::setForLooper Fixes: 124467483 Test: hwuiunit Change-Id: I3703b5d3dbbbaa68e88fc23756dfccacfce863cb --- libs/hwui/Android.bp | 1 + libs/hwui/renderthread/RenderThread.cpp | 1 + libs/hwui/tests/unit/RenderThreadTests.cpp | 29 ++++++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 libs/hwui/tests/unit/RenderThreadTests.cpp diff --git a/libs/hwui/Android.bp b/libs/hwui/Android.bp index 0335a7c6bd7d9..793dd8d39376e 100644 --- a/libs/hwui/Android.bp +++ b/libs/hwui/Android.bp @@ -318,6 +318,7 @@ cc_test { "tests/unit/RenderNodeDrawableTests.cpp", "tests/unit/RenderNodeTests.cpp", "tests/unit/RenderPropertiesTests.cpp", + "tests/unit/RenderThreadTests.cpp", "tests/unit/ShaderCacheTests.cpp", "tests/unit/SkiaBehaviorTests.cpp", "tests/unit/SkiaDisplayListTests.cpp", diff --git a/libs/hwui/renderthread/RenderThread.cpp b/libs/hwui/renderthread/RenderThread.cpp index fc63819120d6e..bfae80f4698a7 100644 --- a/libs/hwui/renderthread/RenderThread.cpp +++ b/libs/hwui/renderthread/RenderThread.cpp @@ -346,6 +346,7 @@ void RenderThread::requestVsync() { bool RenderThread::threadLoop() { setpriority(PRIO_PROCESS, 0, PRIORITY_DISPLAY); + Looper::setForThread(mLooper); if (gOnStartHook) { gOnStartHook("RenderThread"); } diff --git a/libs/hwui/tests/unit/RenderThreadTests.cpp b/libs/hwui/tests/unit/RenderThreadTests.cpp new file mode 100644 index 0000000000000..af8ae7841af2f --- /dev/null +++ b/libs/hwui/tests/unit/RenderThreadTests.cpp @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include "tests/common/TestUtils.h" +#include + +using namespace android; +using namespace android::uirenderer; +using namespace android::uirenderer::renderthread; + +RENDERTHREAD_TEST(RenderThread, isLooper) { + ASSERT_TRUE(Looper::getForThread() != nullptr); +} +