ld_raw(sm5 - asm)

원시 버퍼에서 1-4개의 32비트 성분을 임의 액세스하여 읽습니다.

ld_raw dest[.mask], srcByteOffset[.select_component], src0[.swizzle]
항목 설명
dest
[in] 작업 결과의 주소입니다.
srcByteOffset
[in] 읽을 오프셋을 지정합니다.
src0
[in] 읽을 성분입니다.

설명

src0은 다음과 같아야 합니다.

  • 모든 셰이더 단계: SRV(t#)ld st
  • 컴퓨팅 셰이더 또는 픽셀 셰이더: UAV(u#)
  • 컴퓨팅 셰이더: 스레드 그룹 공유 메모리(g#)

srcByteOffset은 다른 매개 변수의 혼합 및 마스크에 따라 데이터를 읽을 수 있는 4개의 순차적 32비트 값 창에 대한 메모리의 기본 32비트 값을 지정합니다.

원시 버퍼에서 읽은 데이터는 다음 의사 코드와 동등합니다. 오프셋, 주소, 버퍼 콘텐츠에 대한 포인터, 원본의 스트라이드 및 선형으로 저장된 데이터가 있습니다.

                    BYTE *BufferContents;         // from src0
                    UINT srcByteOffset;           // from srcByteOffset
                    BYTE *ReadLocation;           // value to calculate
                    ReadLocation = BufferContents 
                                + srcByteOffset;

                    UINT32 Temp[4];  // used to make code shorter

                    // apply the source resource swizzle on source data
                    Temp = read_and_swizzle(ReadLocation, srcSwizzle);

                    // write the components to the output based on mask
                    ApplyWriteMask(dstRegister, dstWriteMask, Temp);

지정된 32비트 성분의 u#/t#에 대한 범위를 벗어난 주소 지정은 해당 성분에 대해 0을 반환합니다.

지정된 32비트 성분에 대해 g#(모든 공유 메모리와 반대되는 특정 g#의 범위)에 대한 범위를 벗어난 주소 지정은 정의되지 않은 결과를 반환합니다.

cs_4_0 및 cs_4_1은 UAV 및 SRV에 대해 이 명령을 지원합니다.

이 명령은 다음 셰이더 단계에 적용됩니다.

꼭짓점 Hull 도메인 기하 도형 픽셀 컴퓨팅
X X X X X X

UAV는 Direct3D 11.1의 모든 셰이더 단계에서 사용할 수 있으므로 이 명령은 Windows 8부터 사용할 수 있는 Direct3D 11.1 런타임용 UAV의 모든 셰이더 단계에 적용됩니다.

꼭짓점 Hull 도메인 기하 도형 픽셀 컴퓨팅
X X X X X X

최소 셰이더 모델

이 명령은 다음 셰이더 모델에서 지원됩니다.

셰이더 모델 지원됨
셰이더 모델 5
셰이더 모델 4.1 아니요
셰이더 모델 4 아니요
셰이더 모델 3(DirectX HLSL) 아니요
셰이더 모델 2(DirectX HLSL) 아니요
셰이더 모델 1(DirectX HLSL) 아니요

cs_4_0 및 cs_4_1은 UAV 및 SRV에 대해 이 명령을 지원합니다.

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