다음을 통해 공유


D3D10_USAGE 열거형(d3d10.h)

렌더링 중에 예상되는 리소스 사용을 식별합니다. 사용량은 CPU 및/또는 GPU에서 리소스에 액세스할 수 있는지 여부를 직접 반영합니다.

Syntax

typedef enum D3D10_USAGE {
  D3D10_USAGE_DEFAULT = 0,
  D3D10_USAGE_IMMUTABLE = 1,
  D3D10_USAGE_DYNAMIC = 2,
  D3D10_USAGE_STAGING = 3
} ;

상수

 
D3D10_USAGE_DEFAULT
값: 0
GPU에서 읽기 및 쓰기 액세스가 필요한 리소스입니다. 이는 가장 일반적인 사용 선택일 수 있습니다.
D3D10_USAGE_IMMUTABLE
값: 1
GPU에서만 읽을 수 있는 리소스입니다. GPU에서 작성할 수 없으며 CPU에서 전혀 액세스할 수 없습니다. 이 유형의 리소스는 만든 후에 변경할 수 없으므로 만들 때 초기화해야 합니다.
D3D10_USAGE_DYNAMIC
값: 2
GPU와 CPU 모두에서 액세스할 수 있는 리소스입니다(쓰기 전용). 동적 리소스는 CPU에서 프레임당 한 번 이상 업데이트되는 리소스에 적합합니다. CPU의 동적 리소스에 쓰려면 Map 메서드를 사용합니다. CopyResource 또는 CopySubresourceRegion 사용하여 GPU의 동적 리소스에 쓸 수 있습니다.
D3D10_USAGE_STAGING
값: 3
GPU에서 CPU로의 데이터 전송(복사)을 지원하는 리소스입니다.

설명

애플리케이션은 리소스 설명에서 리소스가 사용되는 방식(사용량)을 식별합니다. 리소스를 만드는 데는 D3D10_TEXTURE1D_DESC, D3D10_TEXTURE2D_DESC, D3D10_TEXTURE3D_DESC, D3D10_BUFFER_DESCD3DX10_IMAGE_LOAD_INFO 등의 여러 구조가 있습니다.

Direct3D 9와 Direct3D 10의 차이점:

Direct3D 9에서는 리소스를 만들 때 리소스를 만들어야 하는 메모리 유형을 지정합니다(D3DPOOL 사용). 기능과 성능의 최상의 조합을 제공할 메모리 풀을 결정하는 것은 애플리케이션의 작업이었습니다.

Direct3D 10에서 애플리케이션은 리소스를 만들 메모리 유형(풀)을 더 이상 지정하지 않습니다. 대신 리소스의 용도를 지정하고 런타임(드라이버 및 메모리 관리자와 함께)이 최상의 성능을 달성할 메모리 유형을 선택하도록 합니다.

 

리소스 사용 제한

각 사용법은 기능과 성능 간의 절충을 나타냅니다. 일반적으로 리소스 액세스는 다음 API를 사용하여 수행됩니다. 다음 표를 사용하여 CPU 및/또는 GPU에서 리소스에 액세스하는 방법을 가장 잘 설명하는 사용량을 선택합니다. 물론 성능 절충이 있을 것입니다.
Resource Usage Default 동적 변경할 수 없음 준비
GPU-Read yes 설정 1, 2
GPU-Write yes 설정 1, 2
CPU-Read 1, 2
CPU-Write 1, 2
 

리소스 바인딩 옵션

성능을 최대화하기 위해 모든 리소스 사용 옵션을 파이프라인에 대한 입력 또는 출력 리소스로 사용할 수 있는 것은 아닙니다. 이 표에서는 이러한 제한 사항을 식별합니다.
리소스를 다음으로 바인딩할 수 있습니다. Default 동적 변경할 수 없음 준비
스테이지에 대한 입력 예시드
스테이지의 출력 예시드
 
  • 3 - 다른 뷰를 사용하여 입력 및 출력으로 바인딩된 경우 각 보기는 서로 다른 하위 리소스를 사용해야 합니다.
  • 4 - 리소스는 단일 하위 리소스로만 만들 수 있습니다. 리소스는 텍스처 배열일 수 없습니다. 리소스는 Mipmap 체인일 수 없습니다.

요구 사항

요구 사항
헤더 d3d10.h

추가 정보

리소스 열거형