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_DESC및D3DX10_IMAGE_LOAD_INFO 등의 여러 구조가 있습니다.
Direct3D 9와 Direct3D 10의 차이점: Direct3D 9에서는 리소스를 만들 때 리소스를 만들어야 하는 메모리 유형을 지정합니다(D3DPOOL 사용). 기능과 성능의 최상의 조합을 제공할 메모리 풀을 결정하는 것은 애플리케이션의 작업이었습니다. Direct3D 10에서 애플리케이션은 리소스를 만들 메모리 유형(풀)을 더 이상 지정하지 않습니다. 대신 리소스의 용도를 지정하고 런타임(드라이버 및 메모리 관리자와 함께)이 최상의 성능을 달성할 메모리 유형을 선택하도록 합니다. |
리소스 사용 제한
각 사용법은 기능과 성능 간의 절충을 나타냅니다. 일반적으로 리소스 액세스는 다음 API를 사용하여 수행됩니다.- CPU 액세스는 ID3D10Buffer::Map, ID3D10Texture1D::Map, ID3D10Texture2D::Map 또는 ID3D10Texture3D::Map을 사용하여 수행됩니다.
- GPU 액세스는 CopySubresourceRegion, CopyResource 또는 UpdateSubresource를 사용하여 수행됩니다.
Resource Usage | Default | 동적 | 변경할 수 없음 | 준비 |
---|---|---|---|---|
GPU-Read | 예 | yes 설정 | 예 | 예1, 2 |
GPU-Write | yes 설정 | 예1, 2 | ||
CPU-Read | 예1, 2 | |||
CPU-Write | 예 | 예1, 2 |
- 1 - CopySubresourceRegion, CopyResource 및 UpdateSubresource로 제한됩니다.
- 2 - 깊이 스텐실 버퍼 또는 다중 샘플링된 렌더링 대상이 될 수 없습니다.
리소스 바인딩 옵션
성능을 최대화하기 위해 모든 리소스 사용 옵션을 파이프라인에 대한 입력 또는 출력 리소스로 사용할 수 있는 것은 아닙니다. 이 표에서는 이러한 제한 사항을 식별합니다.리소스를 다음으로 바인딩할 수 있습니다. | Default | 동적 | 변경할 수 없음 | 준비 |
---|---|---|---|---|
스테이지에 대한 입력 | 예시드 | 예 | 예 | |
스테이지의 출력 | 예시드 |
- 3 - 다른 뷰를 사용하여 입력 및 출력으로 바인딩된 경우 각 보기는 서로 다른 하위 리소스를 사용해야 합니다.
- 4 - 리소스는 단일 하위 리소스로만 만들 수 있습니다. 리소스는 텍스처 배열일 수 없습니다. 리소스는 Mipmap 체인일 수 없습니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | d3d10.h |