Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Enable shell_unittests on Fuchsia with Vulkan dependencies. #16376

Merged
merged 3 commits into from
Feb 6, 2020

Conversation

gw280
Copy link
Contributor

@gw280 gw280 commented Feb 4, 2020

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.

@gw280 gw280 force-pushed the gwright-vulkan branch 3 times, most recently from 190272f to 58b2b52 Compare February 6, 2020 19:25
@gw280 gw280 changed the title [WIP] Enable shell_unittests on Fuchsia with Vulkan dependencies. Enable shell_unittests on Fuchsia with Vulkan dependencies. Feb 6, 2020
Copy link
Member

@chinmaygarde chinmaygarde left a 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
Copy link
Member

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.

Copy link
Contributor Author

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.

George Wright added 3 commits February 6, 2020 13:55
This also adds a dependency on SwiftShader's Vulkan frontend.
@gw280 gw280 merged commit d2aab27 into flutter:master Feb 6, 2020
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Feb 7, 2020
dnfield pushed a commit to flutter/flutter that referenced this pull request Feb 7, 2020
* 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)
NoamDev pushed a commit to NoamDev/engine that referenced this pull request Feb 27, 2020
…16376)

This also adds a dependency on SwiftShader's Vulkan frontend.
NoamDev added a commit to NoamDev/engine that referenced this pull request Feb 27, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants