submitAndWait function

Future<bool> submitAndWait(
  1. CommandBuffer commandBuffer, {
  2. Duration timeout = const Duration(seconds: 5),
})

Submits commandBuffer and completes once the GPU has finished it.

Reading an image back straight after submit() can return stale or empty pixels (seen on the OpenGL ES backend). Waiting for completion first makes readback reliable. Completes with false if the GPU reports a failure, and throws a TimeoutException after timeout.

Implementation

Future<bool> submitAndWait(
  gpu.CommandBuffer commandBuffer, {
  Duration timeout = const Duration(seconds: 5),
}) {
  final done = Completer<bool>();
  commandBuffer.submit(completionCallback: done.complete);
  return done.future.timeout(timeout);
}