resinfo (sm4 - asm)

지정된 입력 리소스의 차원을 쿼리합니다.

resinfo[_uint|_rcpFloat] dest[.mask], srcMipLevel.select_component, srcResource[.swizzle]
항목 설명
dest
[in] 연산 결과의 주소입니다.
srcMipLevel
[in] Mip 수준입니다.
srcResource
[in] 쿼리 중인 차원에 대한 t# 또는 u# 입력 텍스처입니다.

설명

srcMipLevel은 부호 없는 정수 스칼라로 읽히므로 스칼라 즉석 값이 아닌 경우 원본 레지스터에 단일 구성 요소 선택기가 필요합니다.

dest는 쓰기 마스크에서 선택한 [너비, 높이, 깊이 또는 배열 크기, 총 Mip 수]를 받습니다.

반환된 너비, 높이 및 깊이 값은 srcMipLevel 매개 변수에서 선택한 mip 수준에 대한 값이며 텍셀 데이터 크기와 관계없이 텍셀 수입니다. 다중 샘플 리소스(texture2D[Array]MS#)의 경우 너비와 높이도 샘플이 아닌 텍셀로 반환됩니다.

dest.w에서 반환된 총 Mip 수는 srcMipLevel 매개 변수의 영향을 받지 않습니다.

UAV(u#)의 경우 Mip 수준 수는 항상 1입니다.

이 명령의 모든 측면은 기본 리소스가 아니라 t#/u#에서 바인딩된 리소스 뷰의 특성을 기반으로 합니다.

반환된 값은 _uint 한정자가 사용되지 않는 한 모두 부동 소수점이며, 이 한정자가 사용되는 경우 반환되는 값은 정수입니다. _rcpFloat 한정자가 사용되는 경우 반환된 모든 값은 부동 소수점이고 너비, 높이 및 깊이는 역수(1.0f/width, 1.0f/height, 1.0f/depth)로 반환됩니다. 너비/높이/깊이가 srcMipLevel 동작의 범위를 벗어나 0인 경우에는 INF를 포함합니다. _rcpFloat 한정자는 너비, 높이 및 깊이 반환 값에만 적용되며 0으로 설정되어 반환되지 않은 값에는 적용되지 않으며, 배열 크기 반환에도 적용되지 않습니다.

srcResource에 스위즐을 사용하면 반환된 값이 대상에 기록되기 전에 임의로 스위즐할 수 있습니다.

srcResource가 Texture1D이면 너비는 dest.x에서 반환되고 dest.yz가 0으로 설정됩니다.

srcResource가 Texture1DArray이면 너비는 dest.x에서, 배열 크기는 dest.y에서 반환되고 dest.z는 0으로 설정됩니다.

srcResource가 Texture2D이면 너비와 높이가 dest.xy에서 반환되고 dest.z가 0으로 설정됩니다.

srcResource가 Texture2DArray이면 너비와 높이는 dest.xy에서 반환되고 배열 크기는 dest.z에서 반환됩니다.

srcResource가 Texture3D이면 너비, 높이 및 깊이가 dest.xyz에서 반환됩니다.

srcResource가 TextureCube이면 개별 큐브 면 크기의 너비 및 높이는 dest.xy에서 반환되고 dest.z는 0으로 설정됩니다.

srcResource가 TextureCubeArray이면 개별 큐브 면 크기의 너비 및 높이는 dest.xy에서 반환되고, dest.z는 정의되지 않은 값으로 설정됩니다.

리소스당 MIP 클램프가 srcResource에 지정된 경우 resinfo는 클램프에 관계없이 MIP 수에 대한 뷰에서 총 Mipmap 수를 항상 반환합니다. 그러나 지정된 miplevel의 차원이 resinfo에 의해 요청되고 miplevel이 해제된 경우(예: 클램프 2.2는 Mip 0과 1이 해제되었음을 의미함) 반환되는 차원은 정의되지 않습니다. miplevel이 범위를 벗어나면 일부 구현은 resinfo에 대해 지정된 범위를 벗어난 동작을 반환합니다. 다른 구현은 마치 Mip이 고정되지 않은 것처럼 Mip의 차원을 반환합니다.

제한

  • srcResource는 버퍼가 아니라 Texture*인 t# 또는 u# 레지스터여야 합니다.
  • srcResource의 상대 주소 지정은 허용되지 않습니다.
  • srcMipLevel은 스칼라 즉치 값이 아닌 경우 단일 구성 요소 선택기를 사용해야 합니다.
  • 바인딩된 항목이 없는 t# 또는 u#에서 페치하면 너비, 높이, 깊이 또는 배열 크기 및 총 Mip 수에 대해 0을 반환합니다. 이 경우 _rcpFloat 한정자가 계속 적용되므로 해당 반환 값에 대해 INF를 반환합니다.
  • srcMipLevel이 리소스에서 사용 가능한 miplevel 수의 범위를 벗어난 경우 크기 반환(dest.xyz)에 대한 동작은 바인딩되지 않은 t# 또는 u# 리소스의 동작과 동일합니다. 이 경우 총 Mip 수는 계속해서 dest.w에서 반환됩니다.

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

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

최소 셰이더 모델

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

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

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