Share via


atomic_or (sm5 - asm)

アトミック ビットごとの OR からメモリへ。

atomic_or dest, dstAddress[.swizzle], src0[.select_component]
Item 説明
Dest
[入力] src0 を使用して OR に対するコンポーネント。 この値は、順序指定されていないアクセス ビュー (UAV) (u#) である必要があります。 コンピューティング シェーダーでは、スレッド グループ共有メモリ (g#) にすることもできます。
dstAddress
[入力]メモリ アドレス。
src0
[入力]dest を使用して OR にコンポーネント を指定します

注釈

この命令は、オペランド src0 の 1 つのコンポーネント 32 ビットビットごとの OR を、コンポーネント アドレス dstAddress ごとに 32 ビットの dest に実行し、アトミックに実行します。

アドレスから取得されたコンポーネントの数は、 dest u# または g# の次元によって決まります。

dest が u# の場合は、生、型指定、または構造化として宣言できます。 型指定した場合は、バインドされたリソース形式をR32_UINT/_SINTする UINT/SINT として宣言する必要があります。

dest が g# の場合は、生または構造化として宣言する必要があります。

シェーダーには何も返されません。

シェーダーの呼び出しが非アクティブな場合 (たとえば、ピクセルが実行の早い段階で破棄された場合、またはピクセル/サンプル呼び出しが、派生物の実際のピクセル/サンプルへのヘルパーとしてのみ存在する場合)、この命令は dest メモリをまったく変更しません (サイレント)。

u# でアドレス指定する範囲外では、u# が構造化されていて、構造体 (アドレスの 2 番目のコンポーネント) へのバイト オフセットによって範囲外アクセスが発生する場合を除き、メモリに何も書き込まれず、UAV の内容全体が未定義になります。

g# での範囲外のアドレス指定 (すべての共有メモリではなく、その特定の g# の境界) により、すべての共有メモリの内容全体が未定義になります。

この命令は、次のシェーダー ステージに適用されます。

Vertex Hull Domain ジオメトリ ピクセル Compute
X X

UAV は Direct3D 11.1 のすべてのシェーダー ステージで使用できるため、この命令は Direct3D 11.1 ランタイムのすべてのシェーダー ステージに適用されます。これは、Windows 8 以降で使用できます。

Vertex Hull Domain ジオメトリ ピクセル Compute
X X X X X X

最小シェーダー モデル

この命令は、次のシェーダー モデルでサポートされています。

シェーダー モデル サポートされています
シェーダー モデル 5 はい
シェーダー モデル 4.1
シェーダー モデル 4
シェーダー モデル 3 (DirectX HLSL)
シェーダー モデル 2 (DirectX HLSL)
シェーダー モデル 1 (DirectX HLSL)

シェーダー モデル 5 アセンブリ (DirectX HLSL)