mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
[fuchsia] fix broken flows when under high load (flutter/engine#16834)
This commit is contained in:
parent
729e6ffed2
commit
64beefcc3a
@ -95,14 +95,15 @@ void SessionConnection::Present(
|
||||
flutter::CompositorContext::ScopedFrame* frame) {
|
||||
TRACE_EVENT0("gfx", "SessionConnection::Present");
|
||||
|
||||
TRACE_FLOW_BEGIN("gfx", "SessionConnection::PresentSession",
|
||||
next_present_session_trace_id_);
|
||||
next_present_session_trace_id_++;
|
||||
|
||||
// Throttle frame submission to Scenic if we already have the maximum amount
|
||||
// of frames in flight. This allows the paint tasks for this frame to execute
|
||||
// in parallel with the presentation of previous frame but still provides
|
||||
// back-pressure to prevent us from enqueuing even more work.
|
||||
if (initialized_ && frames_in_flight_ < kMaxFramesInFlight) {
|
||||
TRACE_FLOW_BEGIN("gfx", "SessionConnection::PresentSession",
|
||||
next_present_session_trace_id_);
|
||||
next_present_session_trace_id_++;
|
||||
PresentSession();
|
||||
} else {
|
||||
// We should never exceed the max frames in flight.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user