iree/hal/local/task_queue.c
// Issues a set of command buffers without waiting for them to complete.
Issues a set of command buffers without waiting for them to complete.
Issues a set of command buffers without waiting for them to complete .
static iree_status_t iree_hal_task_queue_issue_cmd(
    uintptr_t user_context, iree_task_t* task,
    iree_task_submission_t* pending_submission) {
  iree_hal_task_queue_issue_cmd_t* cmd = (iree_hal_task_queue_issue_cmd_t*)task;
  IREE_TRACE_ZONE_BEGIN(z0);
  iree_status_t status = iree_ok_status();
  if (cmd->command_buffer_count > 0) {
    for (iree_host_size_t i = 0; i < cmd->command_buffer_count; ++i) {
      status = iree_hal_task_command_buffer_issue(
          cmd->command_buffers[i], &cmd->queue->state,
          cmd->task.header.completion_task, cmd->arena, pending_submission);
      if (IREE_UNLIKELY(!iree_status_is_ok(status))) break;
    }
  }
  IREE_TRACE_ZONE_END(z0);
  return status;
}
static iree_status_t iree_hal_task_queue_issue_cmd ( uintptr_t user_context , iree_task_t * task , iree_task_submission_t * pending_submission ) { iree_hal_task_queue_issue_cmd_t * cmd = ( iree_hal_task_queue_issue_cmd_t * ) task ; IREE_TRACE_ZONE_BEGIN ( z0 ) ; iree_status_t status = iree_ok_status ( ) ; if ( cmd -> command_buffer_count > 0 ) { for ( iree_host_size_t i = 0 ; i < cmd -> command_buffer_count ; ++ i ) { status = iree_hal_task_command_buffer_issue ( cmd -> command_buffers [ i ] , & cmd -> queue -> state , cmd -> task . header . completion_task , cmd -> arena , pending_submission ) ; if ( IREE_UNLIKELY ( ! iree_status_is_ok ( status ) ) ) break ; } } IREE_TRACE_ZONE_END ( z0 ) ; return status ; }
Issues a set of command buffers without waiting for them to complete.
Issues a set of command buffers without waiting for them to complete .
// NOTE: it's ok for there to be no command buffers - in that case the // submission was purely for synchronization.