다음을 통해 공유


ld2dms(sm4.1 - asm)

2차원 다중 샘플 텍스처에서 개별 샘플을 읽습니다.

ld2dms[_aoffimmi(u,v)] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], sampleIndex
항목 설명
dest
진행 작업 결과의 주소입니다.
srcAddress
[in] 샘플을 수행하는 데 필요한 텍스처 좌표입니다.
srcResource
[in] 가져올 텍스처 또는 버퍼를 식별하는 선언이 있어야 하는 텍스처 레지스터(t#)
sampleIndex
[in] srcResource (스칼라 피연산자)에서 읽을 샘플을 Idendifs합니다.

설명

이 명령은 sample 명령에 대한 간단한 대안입니다. 제공된 정수 srcAddresssampleIndex를 사용하여 필터링(예: 포인트 샘플링) 없이 지정된 텍스처에서 데이터를 가져옵니다.

srcAddress는 샘플을 수행하는 데 필요한 텍스처 좌표 집합을 부호 없는 정수 형식으로 제공합니다. srcAddress가 범위[0...(차원 -1의 #texels)]를 벗어나면 ld2dms는 리소스 형식으로 존재하는 모든 성분에서 항상 0을 반환하고 누락된 성분에 대한 기본값(0,0,0,1.0f/0x00000001)입니다.

sampleIndex는 리터럴일 필요가 없습니다. 다중 샘플 수는 텍스처 리소스에 지정할 필요가 없으며 깊이 또는 스텐실 보기에서 작동합니다.

범위를 벗어난 주소 동작에 대한 보다 유연한 컨트롤을 원하는 애플리케이션은 대신 sample 명령을 사용해야 합니다. 샘플러 상태로 정의된 주소 래핑/미러/클램프/테두리 동작을 따르기 때문입니다.

srcAddress.b(post-swizzle)는 Texture2D에 대해 무시됩니다. 값이 사용 가능한 배열 인덱스 범위[0...(배열 크기-1)]를 벗어나는 경우 ld2dms는 리소스 형식으로 존재하는 모든 성분에서 항상 0을 반환하고 누락된 성분에 대한 기본값(0,0,0,1.0f/0x00000001)을 반환합니다.

Texture2D 배열의 경우 srcAddress.b(post-swizzle)가 배열 인덱스를 제공합니다. 그렇지 않으면 Texture2D와 동일한 동작을 합니다.

srcAddress.a(post-swizzle)는 항상 무시됩니다. HLSL 컴파일러는 아무 것도 출력하지 않습니다.

srcResource는 선언(22.3.11)해야 하는 텍스처 레지스터(t#)로, 가져올 텍스처를 식별합니다.

바인딩된 것이 없는 t#에서 가져오면 모든 성분에 대해 0이 반환됩니다.

주소 오프셋

선택적 [_aoffimmi(u,v,w)] 접미사(직접 정수로 오프셋된 주소)는 ld2dms의 텍스처 좌표가 제공된 바로 텍셀 공간 정수 상수 값 집합으로 오프셋됨을 나타냅니다. 리터럴 값은 정수 범위가 [-8,7]인 4비트 2의 보수 집합입니다.

오프셋은 텍셀 공간에서 텍스처 좌표에 추가됩니다.

주소 오프셋은 Texture1D/2D 배열의 배열 축을 따라 적용되지 않습니다.

_aoffimmi v,w 성분은 Texture1D에 대해 무시됩니다.

_aoffimmi w 성분은 Texture2D에 대해 무시됩니다.

ld2dms의 텍스처 좌표는 부호 없는 정수이므로 오프셋으로 인해 주소가 0 아래로 내려가면 큰 주소로 래핑되어 범위를 벗어난 액세스가 발생합니다. ld와 같이 리소스 형식으로 존재하는 모든 성분에서 0을 반환하고 누락된 성분에 대한 기본값(0,0,0,1.0f/0x00000001)을 반환합니다.

샘플 번호

ld2dms는 모든 리소스에서 사용할 수 있습니다. ld2dms는 추가(0 기반) sampleIndex 피연산자를 사용하여 리소스에서 읽을 샘플을 식별함으로써 2D 멀티샘플 리소스를 제외하고 ld와 동일하게 작동합니다.

리소스의 샘플 수를 초과하는 sampleIndex를 지정한 결과는 정의되지 않았지만 디바이스 컨텍스트의 주소 공간 외부에 있는 데이터를 반환할 수 없습니다.

반환 형식 제어

ld2dms에서 대상 레지스터로 반환되는 데이터 서식은 sample 명령에 대해 설명한 것과 동일한 방식으로 결정됩니다. srcResource 매개 변수(t#)에 바인딩된 형식을 기반으로 합니다.

sample 명령과 마찬가지로 ld2dms에 대해 반환된 값은 형식에 없는 성분에 대한 형식별 기본값이 있는 4-벡터입니다. srcResource의 swizzle은 텍스처 로드에서 반환되는 4개 성분 결과를 다시 구성하는 방법을 결정한 후 dest의 .mask가 dest의 어떤 성분이 업데이트되는지 결정합니다.

32비트 부동 소수점 값이 ld2dms에 의해 32비트 레지스터로 읽히면 비트는 그대로 유지됩니다. 즉, 비정규 값은 비정상으로 유지됩니다. 이는 sample 명령과 다릅니다.

기타 세부 정보

이 명령과 관련된 필터링이 없으므로 LOD 바이어스와 같은 개념이 적용되지 않습니다. 따라서 sampler s# 매개 변수가 없습니다.

제한

  • srcResource는 TextureCube, Texture1D 또는 Texture1DArray가 아닌 t# 레지스터여야 합니다. srcResource는 t# 레지스터에 바인딩할 수 없는 ConstantBuffer일 수 없습니다.
  • srcResource에 대한 상대 주소 지정은 허용되지 않습니다.
  • srcAddresssampleIndex는 임시(r#/x#), 상수(cb#) 또는 입력(v#) 레지스터여야 합니다.
  • dest는 임시(r#/x#) 또는 출력(o*#) 레지스터여야 합니다.

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

꼭짓점 셰이더 기하 도형 셰이더 픽셀 셰이더
x x x

최소 셰이더 모델

이 함수는 다음 셰이더 모델에서 지원됩니다.

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

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