インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
オフロードキューの最後のカーネルの完了を待機します。このトピックは、インテル® グラフィックス・テクノロジーをターゲットとする場合にのみ適用されます。
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 で定義されています。 |