diff options
author | Derek Sollenberger <djsollen@google.com> | 2021-06-16 15:11:27 -0400 |
---|---|---|
committer | Derek Sollenberger <djsollen@google.com> | 2021-07-01 16:12:51 -0400 |
commit | 1ec2fb56c51853898f64346adca218b7dd38a0fc (patch) | |
tree | 20b0ae9ba9d2fe2a16931fbb73124cdb39367367 /libs/renderengine/tests/RenderEngineThreadedTest.cpp | |
parent | 61cfde719b9dac7d718a0af72c3a8748d0f7ffe7 (diff) |
Enable RenderEngine context switching to be async.
Also in the case of a threaded RenderEngine we can avoid the
thread hop entirely by quickly returning if the GPU is already
in the correct state.
Bug: 192099706
Test: atest librenderengine_test
Change-Id: I316096ffd89960a1d3742edacdeb442626e9ee3e
Diffstat (limited to 'libs/renderengine/tests/RenderEngineThreadedTest.cpp')
-rw-r--r-- | libs/renderengine/tests/RenderEngineThreadedTest.cpp | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/libs/renderengine/tests/RenderEngineThreadedTest.cpp b/libs/renderengine/tests/RenderEngineThreadedTest.cpp index c65e731230..830f4630e5 100644 --- a/libs/renderengine/tests/RenderEngineThreadedTest.cpp +++ b/libs/renderengine/tests/RenderEngineThreadedTest.cpp @@ -118,16 +118,26 @@ TEST_F(RenderEngineThreadedTest, supportsProtectedContent_returnsTrue) { ASSERT_EQ(true, result); } -TEST_F(RenderEngineThreadedTest, useProtectedContext_returnsFalse) { - EXPECT_CALL(*mRenderEngine, useProtectedContext(false)).WillOnce(Return(false)); - status_t result = mThreadedRE->useProtectedContext(false); - ASSERT_EQ(false, result); +TEST_F(RenderEngineThreadedTest, useProtectedContext) { + EXPECT_CALL(*mRenderEngine, useProtectedContext(true)); + auto& ipExpect = EXPECT_CALL(*mRenderEngine, isProtected()).WillOnce(Return(false)); + EXPECT_CALL(*mRenderEngine, supportsProtectedContent()).WillOnce(Return(true)); + EXPECT_CALL(*mRenderEngine, isProtected()).After(ipExpect).WillOnce(Return(true)); + + mThreadedRE->useProtectedContext(true); + ASSERT_EQ(true, mThreadedRE->isProtected()); + + // call ANY synchronous function to ensure that useProtectedContext has completed. + mThreadedRE->getContextPriority(); + ASSERT_EQ(true, mThreadedRE->isProtected()); } -TEST_F(RenderEngineThreadedTest, useProtectedContext_returnsTrue) { - EXPECT_CALL(*mRenderEngine, useProtectedContext(false)).WillOnce(Return(true)); - status_t result = mThreadedRE->useProtectedContext(false); - ASSERT_EQ(true, result); +TEST_F(RenderEngineThreadedTest, useProtectedContext_quickReject) { + EXPECT_CALL(*mRenderEngine, useProtectedContext(false)).Times(0); + EXPECT_CALL(*mRenderEngine, isProtected()).WillOnce(Return(false)); + mThreadedRE->useProtectedContext(false); + // call ANY synchronous function to ensure that useProtectedContext has completed. + mThreadedRE->getContextPriority(); } TEST_F(RenderEngineThreadedTest, PostRenderCleanup_skipped) { |