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

_GFX_share/_GFX_unshare

共有メモリー領域のセットへホストメモリー領域を追加するか、共有メモリー領域のセットからホストメモリー領域を削除します。このトピックは、インテル® グラフィックス・テクノロジーをターゲットとする場合にのみ適用されます。

構文

int _GFX_share(const void * data_ptr, size_t data_size);

int _GFX_unshare(const void * data_ptr);

パラメーター

data_ptr

共有される、または共有解除されるデータへのポインター。_GFX_unshare のポインター値は、以前に _GFX_share へ渡されたポインター値と一致していなければなりません。そうでない場合、エラーコードが返されます。

data_size

共有される、または共有解除されるデータのサイズ

説明

共有メモリー領域のセットへホストメモリー領域を追加するか、共有メモリー領域のセットからホストメモリー領域を削除します。すべての共有領域を含む内部バッファー・オブジェクトの割り当ては、遅れて実行することができます。例えば、共有データのターゲットビューが実際に必要になる、後続の _GFX_offload の呼び出しで実行できます。

以前に _GFX_share で共有した各領域に対して _GFX_unshare を呼び出してください。そうしないと、システムが内部バッファーを解放しなかったり、メモリーの共有を停止するほかの操作を実行するため、システムのパフォーマンスが低下して、ほかのリソースが制限される恐れがあります。

ランタイムは、内部バッファー・オブジェクトの数と共有バッファーが再作成される回数を最小限に抑えます。多くの場合、1 つの内部バッファー・オブジェクトは _GFX_share で定義される多くの領域に対応できます。ただし、オーバーラップしない複数の共有領域を同じ共有バッファーに割り当てることにはシステムの制限が伴うため、複数のオブジェクトを含む大きな共有領域のようなオーバーラップしない共有領域の数は最小限に抑えるべきです。

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

共有領域のセットは、スレッド全体でグローバルです。

戻り値

GFX_SUCCESS (0)

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

非ゼロのエラーコード

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