Fix wasm flickering.

Always execute the engine in non-threading (wasm) builds.
And stop rendering if any beginFrame call returns false.

PiperOrigin-RevId: 905000139
Change-Id: I0a6f06a07a8fc0ab0251a67be13a9d170d4a905d
This commit is contained in:
Haroon Qureshi
2026-04-24 06:41:48 -07:00
committed by Copybara-Service
parent a04cf1b2b3
commit a2ee85f477
@@ -118,6 +118,9 @@ FilamentContext::FrameHandle FilamentContext::Render(
if (!render_began) {
render_began = renderer_->beginFrame(window_swap_chain_);
}
if (!render_began) {
break;
}
if (render_began) {
SceneView::RenderRequest scene_view_request;
scene_view_request.draw_mode = request.draw_mode;
@@ -139,6 +142,9 @@ FilamentContext::FrameHandle FilamentContext::Render(
if (!render_began) {
render_began = renderer_->beginFrame(offscreen_swap_chain_);
}
if (!render_began) {
break;
}
if (render_began) {
SceneView::RenderRequest scene_view_request;
scene_view_request.draw_mode = request.draw_mode;
@@ -154,10 +160,9 @@ FilamentContext::FrameHandle FilamentContext::Render(
if (render_began) {
renderer_->endFrame();
render_began = false;
if constexpr (!UTILS_HAS_THREADING) {
engine_->execute();
}
}
if constexpr (!UTILS_HAS_THREADING) {
engine_->execute();
}
if (!read_requests.empty()) {