-
Notifications
You must be signed in to change notification settings - Fork 26.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Engine tree closed on Linux host_debug_impeller_vulkan #138028
Comments
Reproduced it with a local engine build and captured a core dump and a stack trace:
|
@jonahwilliams speculatively reverted flutter/engine#47678 |
The tree is open |
This test suite was failing because of a resource leak in libcxx that happens each time the test process loads and unloads SwiftShader. Each time an Impeller Vulkan playground test case runs, it creates an The SwiftShader library will be loaded on demand when the first Vulkan instance in the process is created. If the test destroys the Vulkan instance and no other instances exist, then the SwiftShader library will be unloaded. The SwiftShader library contains a static instance of So a TLS key is being leaked each time a test case runs and does an load/unload cycle of SwiftShader. If enough test cases run within the suite, then the process will reach the |
…vent SwiftShader from being unloaded after a test completes Libcxx is leaking a thread-local storage key each time SwiftShader is loaded and unloaded. If a test's Vulkan instance is the only one in the process, then SwiftShader will be unloaded after the test ends. If many Vulkan playground tests run in a suite, then eventually the leak will cause the process to exceed its limit of TLS keys and the suite will fail. The process can ensure that SwiftShader remains loaded by holding another Vulkan instance that persists across all tests in the suite. Fixes flutter/flutter#138028
…vent SwiftShader from being unloaded after a test completes Libcxx is leaking a thread-local storage key each time SwiftShader is loaded and unloaded. If a test's Vulkan instance is the only one in the process, then SwiftShader will be unloaded after the test ends. If many Vulkan playground tests run in a suite, then eventually the leak will cause the process to exceed its limit of TLS keys and the suite will fail. The process can ensure that SwiftShader remains loaded by holding another Vulkan instance that persists across all tests in the suite. Fixes flutter/flutter#138028
…vent SwiftShader from being unloaded after a test completes (#47781) Libcxx is leaking a thread-local storage key each time SwiftShader is loaded and unloaded. If a test's Vulkan instance is the only one in the process, then SwiftShader will be unloaded after the test ends. If many Vulkan playground tests run in a suite, then eventually the leak will cause the process to exceed its limit of TLS keys and the suite will fail. The process can ensure that SwiftShader remains loaded by holding another Vulkan instance that persists across all tests in the suite. Fixes flutter/flutter#138028
Reland of #47432 Also includes: #47617 #47637 Fixes the performance on iOS by removing blocking on compilation of shaders. From local testing this has identical before/after numbers. Additional, ensures that we don't unecessarily specialize vertex shaders and notes this restriction in the documentation. Adds support for Specialization constants to Impeller for our usage in the engine. A motivating example has been added in the impeller markdown docs. Fixes flutter/flutter#136210 Fixes flutter/flutter#119357 Investigating: flutter/flutter#138028
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of |
Starting with flutter/engine#47678, all post submit CI runs for Linux host_debug_impeller_vulkan are failing.
Runs fail consistently somewhere between 8.5m to 10m during seemingly random Vulkan playgrounds. gtest always exits with -6. No additional output indicating a problem.
Sample:
https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8765060191207742689/+/u/test:_Host_Tests_for_host_debug_impeller_vulkan/stdout
https://ci.chromium.org/ui/p/flutter/builders/prod/Linux%20Production%20Engine%20Drone/455462/overview
The text was updated successfully, but these errors were encountered: