다음을 통해 공유


store_raw(sm5 - asm)

1-4 32비트 성분을 무형식 메모리에 임의로 기록합니다.

store_raw dest[.write_mask], dstByteOffset[.select_component], src0[.swizzle]
항목 설명
dest
[in] 메모리 주소입니다.
dstByteOffset
[in] 오프셋입니다.
src0
[in] 작성할 구성 요소입니다.

설명

이 명령은 dstByteOffset의 오프셋에서 src0에서 dest로 작성된 1-4 구성 요소 *32비트 구성 요소를 수행합니다. 형식 변환은 없습니다.

dest 는 UAV(u#)이거나 컴퓨팅 셰이더에서 스레드 그룹 공유 메모리(g#)일 수도 있습니다.

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

기록된 데이터의 위치는 주소, 버퍼 콘텐츠에 대한 포인터 및 선형으로 저장된 데이터를 보여 주는 다음 의사 코드와 동등합니다.

                    BYTE *BufferContents;          // from src0
                    UINT dstByteOffset;            // source register
                    BYTE *WriteLocation;           // value to calculate

                    // calculate writing location
                    WriteLocation = BufferContents 
                                + dstByteOffset;

                    // calculate the number of components to write
                    switch (dstWriteMask)
                    {
                        x:    WriteComponents = 1; break;
                        xy:   WriteComponents = 2; break;
                        xyz:  WriteComponents = 3; break;
                        xyzw: WriteComponents = 4; break;
                        default:  // only these masks are valid                              
                    }

                    // copy the data from the source register with
                    //    the swizzle applied
                    memcpy(WriteLocation, swizzle(src0, src0.swizzle), 
                             WriteComponents * sizeof(UINT32));

이 의사 코드는 작동 함수를 보여 주지만 실제 데이터는 선형으로 저장될 필요가 없습니다. dest 에는 .x, .xy, .xyz, .xyzw 중 하나인 쓰기 마스크만 있을 수 있습니다. 쓰기 마스크는 간격 없이 쓸 32비트 성분의 수를 결정합니다.

u#의 범위를 벗어난 주소 지정은 범위를 벗어난 메모리에 아무 것도 기록되지 않음을 의미합니다. 범위 내에 있는 모든 부분이 올바르게 기록됩니다.

지정된 32비트 성분에 대해 g#(모든 공유 메모리가 아닌 특정 g#의 범위)에 대한 주소 지정 범위를 벗어나면 모든 공유 메모리의 전체 콘텐츠가 정의되지 않습니다.

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

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

꼭짓점 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) 아니요

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