mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
[Impeller] dont use concurrent runner to decode images on Android. (flutter/engine#42944)
Even with separate allocators and queues, I think that using the concurrent runner is just overloading the phone. On Android force it all onto the I/O thread. https://github.com/flutter/flutter/issues/128919
This commit is contained in:
parent
e0fb29293e
commit
93351f1448
@ -456,7 +456,11 @@ void ImageDecoderImpeller::Decode(fml::RefPtr<ImageDescriptor> descriptor,
|
||||
});
|
||||
};
|
||||
|
||||
#ifdef FML_OS_ANDROID
|
||||
runners_.GetIOTaskRunner()->PostTask(
|
||||
#else
|
||||
concurrent_task_runner_->PostTask(
|
||||
#endif
|
||||
[raw_descriptor, //
|
||||
context = context_.get(), //
|
||||
target_size = SkISize::Make(target_width, target_height), //
|
||||
@ -495,12 +499,16 @@ void ImageDecoderImpeller::Decode(fml::RefPtr<ImageDescriptor> descriptor,
|
||||
result(image, decode_error);
|
||||
}
|
||||
};
|
||||
// TODO(jonahwilliams):
|
||||
// https://github.com/flutter/flutter/issues/123058 Technically we
|
||||
// don't need to post tasks to the io runner, but without this
|
||||
// forced serialization we can end up overloading the GPU and/or
|
||||
// competing with raster workloads.
|
||||
// TODO(jonahwilliams):
|
||||
// https://github.com/flutter/flutter/issues/123058 Technically we
|
||||
// don't need to post tasks to the io runner, but without this
|
||||
// forced serialization we can end up overloading the GPU and/or
|
||||
// competing with raster workloads.
|
||||
#ifdef FML_OS_ANDROID
|
||||
upload_texture_and_invoke_result();
|
||||
#else
|
||||
io_runner->PostTask(upload_texture_and_invoke_result);
|
||||
#endif
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user