imm_atomic_or(sm5 - asm)
메모리에 대한 즉치 원자성 비트 OR입니다. OR 앞에 있는 메모리의 값을 반환합니다.
imm_atomic_or dst0[.single_component_mask], dst1, dstAddress[.swizzle], src0[.select_component] |
---|
항목 | 설명 |
---|---|
dst0 |
[in] OR 앞에 있는 dst1의 값을 포함합니다. |
dst1 |
[in] UAV(순서가 지정되지 않은 액세스 뷰)(u#)입니다. 컴퓨팅 셰이더에서 이는 스레드 그룹 공유 메모리(g#)일 수도 있습니다. |
dstAddress |
[in] 메모리 주소입니다. |
src0 |
dst1과의 OR 값입니다. |
설명
이 명령은 성분 주소 dstAddress당 32비트에서 피연산자 src0와 dst1의 단일 성분 32비트 비트 OR을 수행합니다.
dst1이 u#인 경우 원시, 형식 또는 구조화로 선언되었을 수 있습니다. 입력된 경우 바인딩된 리소스 형식이 R32_UINT/_SINT인 UINT/SINT로 선언되어야 합니다.
dst1이 g#이면 원시 또는 구조화로 선언해야 합니다.
OR 이전의 dst1 메모리에 있는 값이 dst0으로 반환됩니다.
전체 작업은 원자성으로 수행됩니다.
주소에서 가져온 성분의 수는 dst1에서 선언된 리소스의 차원에 따라 결정됩니다.
셰이더 호출이 비활성화된 경우(예: 픽셀이 실행 초기에 삭제되었거나 픽셀/샘플 호출이 도함수에 대한 실제 픽셀/샘플에 대한 도우미 역할만 하는 경우) 이 명령은 dst1 메모리이고 반환된 값은 정의되지 않습니다.
u#의 범위를 벗어나면 u#이 구조화되고 구조체(주소의 두 번째 성분)에 대한 바이트 오프셋으로 인해 범위를 벗어난 액세스가 발생하는 경우 UAV의 전체 내용이 정의되지 않는 경우를 제외하고는 메모리에 기록되지 않습니다.
u# 또는 g#에서 범위를 벗어난 주소 지정으로 인해 정의되지 않은 결과가 dst0의 셰이더로 반환됩니다.
이 명령은 다음 셰이더 단계에 적용됩니다.
꼭짓점 | Hull | 도메인 | 기하 도형 | 픽셀 | 컴퓨팅 |
---|---|---|---|---|---|
X | X |
UAV는 Direct3D 11.1의 모든 셰이더 단계에서 사용할 수 있으므로 이 명령은 Windows 8부터 사용할 수 있는 Direct3D 11.1 런타임의 모든 셰이더 단계에 적용됩니다.
꼭짓점 | Hull | 도메인 | 기하 도형 | 픽셀 | 컴퓨팅 |
---|---|---|---|---|---|
X | X | X | X | X | X |
최소 셰이더 모델
이 명령은 다음 셰이더 모델에서 지원됩니다.
셰이더 모델 | 지원됨 |
---|---|
셰이더 모델 5 | 예 |
셰이더 모델 4.1 | 아니요 |
셰이더 모델 4 | 아니요 |
셰이더 모델 3(DirectX HLSL) | 아니요 |
셰이더 모델 2(DirectX HLSL) | 아니요 |
셰이더 모델 1(DirectX HLSL) | 아니요 |