-
Notifications
You must be signed in to change notification settings - Fork 6k
Enable shell_unittests on Fuchsia with Vulkan dependencies. #16376
Conversation
190272f
to
58b2b52
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with the comment that the ifdef soup can probably be removed for a unified Vulkan/OPenGL test harness on all platforms.
@@ -3,7 +3,13 @@ | |||
// found in the LICENSE file. | |||
|
|||
#include "flutter/shell/common/shell_test_platform_view.h" | |||
|
|||
#ifdef SHELL_ENABLE_GL |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Even when using Vulkan, we never have to link with libVulkan.so. So we will never get into a situation where where the test harness fails to link if Vulkan is not used. The exact same logic applies for OpenGL as well. As written, we will need two variants of the test runner for OpenGL and Vulkan. I suggest we have just one which is both OpenGL and Vulkan capable. At runtime, if the test or fixture asks use to initialize an unsupported client rendering API, we can skip the test or trip an assertion.
This way, all platforms will be Vulkan capable and their ability to actually exercise the Vulkan backend will depend on whether that platform can provide a libVulkan.so for proc resolution.
While we will always use the libVulkan.so from SwiftShader, this scheme should give us the flexibility to run with an alternative Vulkan implemenation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Spoke offline about this - tried this but due to compilation issues this can't be done easily right now, and it's not worth blocking enabling these tests for this. Filed flutter/flutter#50298 detailing the problems.
This also adds a dependency on SwiftShader's Vulkan frontend.
* 71ec0a1 Relax timing restrictions on WakeUpTimersAreSingletons. (flutter/engine#16446) * 3ac1e6d Disable unit tests using --gtest-filter instead of at compile time (flutter/engine#16472) * 80be2c4 Fix RasterCache LRU logic, opportunistic simplifications. (flutter/engine#16434) * ca40f11 Roll src/third_party/skia 7f36405ea3ec..c0360582d211 (6 commits) (flutter/engine#16476) * c9e7713 Fix analyzer warnings for frontend_server change (flutter/engine#16470) * 9ada1b0 Fix elf_loader.cc on Fuchsia, add a TODO for proper fix * 0517627 Enable runtime_unittests on Fuchsia * 03f639e Add noexcept annotations to EnableValue moves (flutter/engine#16478) * 00904dd Various fixes in CanvasKit (flutter/engine#16433) * de7022b Roll src/third_party/skia c0360582d211..121750c2efff (7 commits) (flutter/engine#16479) * d2aab27 Enable shell_unittests on Fuchsia with Vulkan dependencies. (flutter/engine#16376) * eec73e3 Roll src/third_party/dart b3396cbdcae1..49850e6919f7 (45 commits) (flutter/engine#16480) * 557f3a2 Run Flutter framework tests against the web engine in Cirrus (flutter/engine#16343) * 477527b Roll src/third_party/skia 121750c2efff..046f9893b953 (4 commits) (flutter/engine#16482) * eb8691f Code cleanup on destructors (flutter/engine#16481) * 7397817 Roll fuchsia/sdk/core/linux-amd64 from A9STP... to g2s3c... (flutter/engine#16484) * 313527d Roll src/third_party/dart 49850e6919f7..16782e6c171f (16 commits) (flutter/engine#16485) * 83feaf4 Roll src/third_party/skia 046f9893b953..97bf6578796c (1 commits) (flutter/engine#16486) * 9184058 Roll src/third_party/skia 97bf6578796c..f3560b680e35 (1 commits) (flutter/engine#16487) * 0db017d Roll src/third_party/dart 16782e6c171f..d765d237460d (1 commits) (flutter/engine#16488) * f9ed07c Roll fuchsia/sdk/core/linux-amd64 from g2s3c... to LvSlH... (flutter/engine#16489) * a1b91da Roll src/third_party/skia f3560b680e35..77fdf66946d2 (1 commits) (flutter/engine#16490) * 7edb803 Roll src/third_party/dart d765d237460d..514a8d4c8417 (7 commits) (flutter/engine#16491) * 580503c Roll src/third_party/skia 77fdf66946d2..87e3bef6f82f (2 commits) (flutter/engine#16492)
…16376) This also adds a dependency on SwiftShader's Vulkan frontend.
…lutter#16376)" This reverts commit 9d60825.
I've added TODO for the final piece of the runtime configurable ShellTestPlatformView implementation. All the plumbing code exists and is wired up, this would just be to figure out how/what we want to test for each backend type.
Currently most of the ShellTests pass, but a few do not. I need to modify fuchsia_ctl to accept command line arguments, but a manual invocation with the parameters "--gtest_filter=-ShellTest.HandlesActualIphoneXsInputEvents:ShellTest.CacheSkSLWorks:ShellTest.SetResourceCacheSize*:ShellTest.Screenshot" results in a passing test run on my test device.
This likely won't work in AOT builds. I'm leaning towards only enabling the shell_tests target in JIT builds for now, and figure out AOT later.