imm _ atomic _ and (sm5-asm)imm_atomic_and (sm5 - asm)

메모리에 대 한 즉각적인 원자성 비트 AND입니다.Immediate atomic bitwise AND to memory. 및 앞에 메모리의 값을 반환 합니다.Returns the value in memory before the AND.

imm _ 원자성 _ 및 dst0 [ _ 구성 요소 _ 마스크 ] , dst1, dstaddress [ . swizzle ] , src0 [ . _ 구성 요소 선택]imm_atomic_and dst0[.single_component_mask], dst1, dstAddress[.swizzle], src0[.select_component]
항목Item DescriptionDescription
dst0dst0
[의 ] 는 및 이전의 dst1 값을 포함 합니다.[in] Contains value from dst1 before the AND.
dst1dst1
[]UAV (순서가 지정 되지 않은 액세스 뷰) (u # )[in] An unordered access view (UAV) (u#). 계산 셰이더에는 스레드 그룹 공유 메모리 (g) 일 수도 있습니다 # .In the compute shader this can also be thread group shared memory (g#).
dstAddressdstAddress
[]대상 메모리에 있습니다.[in] The destination memory.
src0src0
Dst 를 사용 하는 및에 대 한 값입니다.The value to AND with dst.

설명Remarks

이 명령은 dst1 32에서 32 비트의 단일 구성 요소 비트 and를 수행 합니다.This instruction performs a single component 32-bit bitwise AND of operand src0 with dst1 at 32-bit per component address dstAddress.

Dst1 가 u 이면 # 원시 형식 또는 구조화 된 형식으로 선언 되었을 수 있습니다.If dst1 is a u#, it may have been declared as raw, typed or structured. 형식화 된 경우 R32 uint/되는 바인딩된 리소스 형식을 사용 하 여 UINT/로 선언 해야 합니다 _ _ .If typed, it must be declared as UINT/SINT with the bound resource format being R32_UINT/_SINT.

Dst1 가 g 이면 # raw 또는 구조적으로 선언 해야 합니다.If dst1 is g#, it must be declared as raw or structured.

Dst1 메모리의 값은 dst0 로 반환 됩니다.The value in dst1 memory before the AND is returned to dst0.

전체 작업은 원자적으로 수행 됩니다.The entire operation is performed atomically.

주소에서 가져온 구성 요소 수는 dst1 에서 선언 된 리소스의 차원에 따라 결정 됩니다.The number of components taken from the address is determined by the dimensionality of the resource declared at dst1.

셰이더 호출이 비활성화 된 경우, 예를 들어 픽셀이 실행에서 이전에 삭제 되었거나 파생의 실제 픽셀/샘플에 대 한 도우미 역할을 하는 픽셀/샘플 호출만 존재 하는 경우이 명령은 dst1 메모리를 전혀 변경 하지 않고 반환 된 값이 정의 되지 않습니다.If the shader invocation is inactive, for example if the pixel has been discarded earlier in its execution, or a pixel/sample invocation only exists to serve as a helper to a real pixel/sample for derivatives, this instruction does not alter the dst1 memory at all, and the returned value is undefined.

U # # 가 구조화 되 고, 구조체 (주소의 두 번째 구성 요소)에 대 한 바이트 오프셋이 범위를 벗어난 액세스를 야기 하는 경우를 제외 하 고 uav의 전체 콘텐츠가 정의 되어 있지 않은 경우를 제외 하 고 u에 대 한 주소를 지정 하면 메모리에 쓸 수 없습니다.Out of bounds addressing on u# causes nothing to be written to memory, except if the u# is structured, and byte offset into the struct (second component of the address) is causing the out of bounds access, then the entire contents of the UAV become undefined.

U 또는 g에서 범위를 벗어난 주소를 지정 # # 하면 정의 되지 않은 결과가 dst0 에서 셰이더에 반환 됩니다.Out of bounds addressing on u# or g# causes an undefined result to be returned to the shader in dst0.

이 명령은 다음 셰이더 단계에 적용 됩니다.This instruction applies to the following shader stages:

꼭짓점Vertex Hull 도메인Domain 기하 도형Geometry 픽셀Pixel ComputeCompute
XX XX

UAVs는 Direct3D 11.1에 대 한 모든 셰이더 단계에서 사용할 수 있으므로이 명령은 Windows 8부터 사용 가능한 Direct3D 11.1 런타임의 모든 셰이더 단계에 적용 됩니다.Because UAVs are available at all shader stages for Direct3D 11.1, this instruction applies to all shader stages for the Direct3D 11.1 runtime, which is available starting with Windows 8.

꼭짓점Vertex Hull 도메인Domain 기하 도형Geometry 픽셀Pixel ComputeCompute
XX XX XX XX XX XX

최소 셰이더 모델Minimum Shader Model

이 명령은 다음 셰이더 모델에서 지원 됩니다.This instruction is supported in the following shader models:

셰이더 모델Shader Model 지원됨Supported
셰이더 모델 5Shader Model 5 yes
셰이더 모델 4.1Shader Model 4.1 nono
셰이더 모델 4Shader Model 4 nono
셰이더 모델 3 (DirectX HLSL)Shader Model 3 (DirectX HLSL) nono
셰이더 모델 2 (DirectX HLSL)Shader Model 2 (DirectX HLSL) nono
셰이더 모델 1 (DirectX HLSL)Shader Model 1 (DirectX HLSL) nono

셰이더 모델 5 어셈블리 (DirectX HLSL)Shader Model 5 Assembly (DirectX HLSL)