diff --git a/impeller/playground/backend/vulkan/playground_impl_vk.cc b/impeller/playground/backend/vulkan/playground_impl_vk.cc index 26ba03bbd2a32..82d8d0e25ffbc 100644 --- a/impeller/playground/backend/vulkan/playground_impl_vk.cc +++ b/impeller/playground/backend/vulkan/playground_impl_vk.cc @@ -93,6 +93,15 @@ PlaygroundImplVK::PlaygroundImplVK(PlaygroundSwitches switches) return; } + // Without this, the playground will timeout waiting for the presentation. + // It's better to have some Vulkan validation tests running on CI to catch + // regressions, but for now this is a workaround. + // + // TODO(matanlurey): https://github.com/flutter/flutter/issues/134852. + // + // (Note, if you're using MoltenVK, or Linux, you can comment out this line). + context_vk->SetSyncPresentation(true); + VkSurfaceKHR vk_surface; auto res = vk::Result{::glfwCreateWindowSurface( context_vk->GetInstance(), // instance diff --git a/testing/run_tests.py b/testing/run_tests.py index 4f75b6e549227..6a807c65021a6 100755 --- a/testing/run_tests.py +++ b/testing/run_tests.py @@ -516,14 +516,33 @@ def make_test(name, flags=None, extra_env=None): shuffle_flags + ['--enable_vulkan_validation'], coverage=coverage, extra_env=extra_env, - # TODO(117122): Remove this allowlist. - # https://github.com/flutter/flutter/issues/114872 + # TODO(https://github.com/flutter/flutter/issues/123733): Remove this allowlist. + # See also https://github.com/flutter/flutter/issues/114872. allowed_failure_output=[ '[MTLCompiler createVertexStageAndLinkPipelineWithFragment:', '[MTLCompiler pipelineStateWithVariant:', ] ) + # Run one interactive Vulkan test with validation enabled. + # + # TODO(matanlurey): https://github.com/flutter/flutter/issues/134852; enable + # more of the suite, and ideally we'd like to use Skia gold and take screen + # shots as well. + run_engine_executable( + build_dir, + 'impeller_unittests', + executable_filter, + shuffle_flags + [ + '--enable_vulkan_validation', + '--enable_playground', + '--playground_timeout_ms=4000', + '--gtest_filter="*ColorWheel/Vulkan"', + ], + coverage=coverage, + extra_env=extra_env, + ) + def run_engine_benchmarks(build_dir, executable_filter): logger.info('Running Engine Benchmarks.')