インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

_GFX_wait

オフロードキューの最後のカーネルの完了を待機します。このトピックは、インテル® グラフィックス・テクノロジーをターゲットとする場合にのみ適用されます。

構文

int _GFX_wait(GfxTaskId task_id = 0, int wait_time_ms = -1);

パラメーター

task_id

事前に _GFX_offload で取得した、待機するタスクの ID。0 の場合、_GFX_wait は関数呼び出し時のキューの最も新しいタスクを待機します。

wait_time_ms

_GFX_wait で待機する時間 (ミリ秒)。-1 に設定すると、デフォルトのタイムアウト値が使用されます。デフォルトのタイムアウト値は、実装や環境設定に依存します。また、無限に設定されている場合もあります。

説明

この関数を使用して、キューの最後のカーネルの完了を待機します。インテル® グラフィックス・テクノロジー・ランタイムは、処理を容易にするため、1 つのデフォルトキューのみ保持します。

この関数は、内部オブジェクトの使用状況のチェックやクリーンアップ処理の実行など、リソースのクリーンアップ・ポイントとしての役割も果たします。

関数が正常に終了すると、関数に渡されたタスク ID は無効となり、対応するタスクはキューから削除されます。また、そのタスクよりも前にキューに追加されたすべてのタスクは完了済みであるため、それらのタスク ID も無効になります。

渡されたタスク ID が無効な場合、例えばそのタスクが完了済みでタスク・オブジェクトが破棄されている場合、関数は GFX_TASKID_NOT_FOUND エラーを返します。

この関数はスレッドセーフです。つまり、同期を追加することなく、異なるホストスレッドから利用できます。

_GFX_offload を使用して複数のスレッドがオフロードタスクを追加すると、_GFX_wait は、ほかのスレッドにより追加されたタスクも含め、呼び出し前にグローバルに追加されたすべてのタスクの完了を待機します。

戻り値

GFX_SUCCESS (0)

関数の実行に成功しました。

非ゼロのエラーコード

エラーが発生しました。_GFX_get_last_error() 関数を使用してエラーコードを取得してください。各種エラーステータス値は、gfx_rt.h で定義されています。