Fix the gfxstream tests for windows.
This sets up swiftshader for the unit tests and
fixes an assert that was firing in the tests in debug. We
were destroying the renderer too quickly, causing
an assert to trigger on the mLoaderRenderThread
destructor.
BUG: 224794781
Test: android/rebuild.cmd --gfxstream (on windows).
Change-Id: Iec27ea4bcb0b01183b5975599321e8e03b8da7ce
diff --git a/stream-servers/CMakeLists.txt b/stream-servers/CMakeLists.txt
index bbc1b1f..63d0063 100644
--- a/stream-servers/CMakeLists.txt
+++ b/stream-servers/CMakeLists.txt
@@ -207,7 +207,14 @@
OpenglRender_unittests
PRIVATE x11_testing_support)
endif()
- gtest_discover_tests(OpenglRender_unittests)
+ if (WIN32)
+ gtest_discover_tests(
+ OpenglRender_unittests
+ PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_append:${CMAKE_BINARY_DIR}/lib64/gles_swiftshader"
+ )
+ else()
+ gtest_discover_tests(OpenglRender_unittests)
+ endif()
# Snapshot tests################################################################
add_executable(
@@ -235,7 +242,14 @@
aemu-base-testing-support
gfxstream_backend_static
gtest_main)
- gtest_discover_tests(OpenglRender_snapshot_unittests)
+ if (WIN32)
+ gtest_discover_tests(
+ OpenglRender_snapshot_unittests
+ PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_append:${CMAKE_BINARY_DIR}/lib64/gles_swiftshader"
+ )
+ else()
+ gtest_discover_tests(OpenglRender_snapshot_unittests)
+ endif()
# Vulkan tests##################################################################
add_executable(
diff --git a/stream-servers/RendererImpl.cpp b/stream-servers/RendererImpl.cpp
index ad40d7f..e84377b 100644
--- a/stream-servers/RendererImpl.cpp
+++ b/stream-servers/RendererImpl.cpp
@@ -111,6 +111,11 @@
RendererImpl::~RendererImpl() {
stop(true);
+ // We can't finish until the loader render thread has
+ // completed else can get a crash at the end of the destructor.
+ if (mLoaderRenderThread) {
+ mLoaderRenderThread->wait();
+ }
mRenderWindow.reset();
}