리소스 제한(Direct3D 11)
이 주제에는 Direct3D 11에서 지원하는 리소스 목록이 포함되어 있습니다(특히 기능 수준 11 또는 9.x 하드웨어의 경우).
기능 수준 11 하드웨어에 대한 리소스 제한
이러한 모든 리소스 제한은 D3d11.h에서 상수로 정의됩니다.
자원 | 한계 |
---|---|
상수 버퍼의 요소 수 | D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT (4096) |
버퍼의 텍셀 수(구조체 크기와 무관) | D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP (2^7) 텍셀 |
Texture1D U 차원 | D3D11_REQ_TEXTURE1D_U_DIMENSION (16384) |
Texture1DArray 차원 | D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION(2048개의 배열 조각) |
Texture2D U/V 차원 | D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION (16384) |
Texture2DArray의 차원 | D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION(배열 조각 2048개) |
Texture3D의 U/V/W 차원 | D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (2048) |
텍스처 큐브의 차원 | D3D11_REQ_TEXTURECUBE_DIMENSION (16384) |
이전 리소스의 리소스 크기(MB) | min(max(128,0.25f * (dedicated VRAM의 양)), 2048) MB D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM (128) - 리소스 크기를 메가바이트 단위로 요구하는 표현식 A 용어 (128) D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM(0.25f) D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM (2048) |
이방성 필터링 maxanisotropy | D3D11_REQ_MAXANISOTROPY (16) |
하드웨어를 필터링하여 주소 지정 가능한 리소스 차원 | 차원당 D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION(16384) |
IA(입력 또는 꼭짓점 데이터) 또는 VS/GS/PS(지점 샘플)로 주소 지정 가능한 리소스 크기(MB) | max(128,0.25f * (전용 VRAM의 양)) MB D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM (128) D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM(0.25f) |
컨텍스트당 총 리소스 뷰 수(각 배열은 1로 계산됨)(모든 뷰 형식에는 공유 제한이 포함됨) | D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP (2) |
버퍼 구조 크기(다중 요소) | D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES(2048바이트) |
스트림 출력 크기 | 버퍼의 텍셀 수와 동일(앞의 참조) |
Draw 또는 DrawInstanced 꼭짓점 개수(인스턴싱 포함) | D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP (2) |
DrawIndexed[Instanced]() 꼭짓점 수(인스턴싱 포함) | D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (2) |
GS 호출 출력 데이터(구성 요소 * 꼭짓점) | D3D11_GS_인스턴스 전체에서 최대 출력 버텍스 수 (1024) |
컨텍스트당 샘플러 개체의 총 수 | D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE (장치당 샘플러 객체 수 4096) |
파이프라인당 총 뷰포트/가위 개체 수 | D3D11_VIEWPORT 및 SCISSORRECT 오브젝트 개수(각 파이프라인당 최대 16개) |
꼭짓점당 총 클립/컬 거리 수 | D3D11_CLIP_OR_CULL_DISTANCE_COUNT (8) |
컨텍스트당 총 혼합 개체 수 | D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE (4096) |
컨텍스트별 깊이/스텐실 객체 총 개수 | D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE (4,096) |
컨텍스트당 총 래스터라이저 상태 개체 수 | D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE (4096) |
다중 샘플링 중 픽셀당 최대 샘플 수 | D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT (최대 다중 샘플 수 32) |
셰이더 리소스 꼭짓점 요소 수(4개의 32비트 구성 요소) | D3D11_STANDARD_VERTEX_ELEMENT_COUNT (32) |
공통 셰이더 코어(4개의 32비트 구성 요소) 임시 레지스터 수(r# + 인덱싱 가능한 x#[n]) | D3D11_COMMONSHADER_TEMP_REGISTER_COUNT (4096) |
공통 셰이더 코어 상수 버퍼 슬롯 | D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT (15) (+1은 셰이더의 즉시 상수 버퍼를 위해 예약됨) |
공통 셰이더 코어 입력 리소스 슬롯 | D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT (128) |
셰이더 코어 공용 샘플러 슬롯 | D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT (16) |
공통 셰이더 코어 서브루틴 중첩 제한 | D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT (32) |
셰이더 공통 코어의 흐름 제어 중첩 제한 | D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT (64) - D3D11 공통 셰이더 흐름 제어 중첩 제한 (64) |
꼭짓점 셰이더 입력 레지스터 수(32비트 구성 요소 4개) | D3D11_VS_INPUT_REGISTER_COUNT (32) |
꼭짓점 셰이더 출력 레지스터 수(4개의 32비트 구성 요소) | D3D11_VS_OUTPUT_REGISTER_COUNT (32) |
기하 도형 셰이더 입력 레지스터 수(4개의 32비트 구성 요소) | D3D11_GS_INPUT_REGISTER_COUNT (32) |
기하 도형 셰이더 출력 레지스터 수(32비트 구성 요소 4개) | D3D11_GS_OUTPUT_REGISTER_COUNT (32) |
픽셀 셰이더 입력 레지스터 수(32비트 구성 요소 4개) | D3D11_PS_INPUT_REGISTER_COUNT (32) |
픽셀 셰이더 출력 슬롯 | 8 |
픽셀 셰이더 출력 깊이 레지스터 수(32비트 구성 요소 1개) | D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT (개수: 1) |
입력 어셈블러 인덱스 입력 리소스 슬롯 | D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT (1) |
입력 어셈블러 꼭짓점 입력 리소스 슬롯 | D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (32) 입력 리소스 슬롯 수 (32) |
헐 셰이더 제어점 입력 레지스터 수(32비트 구성 요소 4개) | D3D11_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT (32) |
헐 셰이더의 입력 제어점 수 | D3D11_HS_제어점 레지스터 구성 요소 비트 수 (32) |
헐 셰이더 제어점 출력 레지스터 수(32비트 구성 요소 4개) | D3D11_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT (32) |
출력 제어점의 헐 셰이더 수 | D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32) |
헐 쉐이더 패치 상수 출력 레지스터 수(32비트 구성 요소 4개) | D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT (32) |
도메인 셰이더 제어점 입력 레지스터 수(32비트 구성 요소 4개) | D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COUNT (32) |
입력 제어점의 도메인 셰이더 번호 | D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32) |
도메인 셰이더 패치 상수 입력 레지스터 수(4개의 32비트 구성 요소) | D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT (32) |
도메인 셰이더 꼭짓점 테셀레이션 출력 레지스터 수(32비트 구성 요소 4개) | D3D11_DS_OUTPUT_REGISTER_COUNT (32) |
UAV(순서가 지정되지 않은 액세스 뷰) 슬롯의 컴퓨팅 셰이더 | D3D11_PS_CS_UAV_REGISTER_COUNT (8)4 |
리소스 타일 크기(바이트) | D3D11_2_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 ) |
앱은 최대 리소스 크기가 지정하는 것보다 리소스에 더 많은 메모리를 할당하려고 할 수 있습니다. 즉, Direct3D 11 런타임은 하드웨어에서 지원할 수 있는 경우 이러한 메모리 할당 시도를 허용합니다. 그러나 Direct3D 11 런타임은 최대 리소스 크기 내의 할당이 모든 기능 수준 11 하드웨어에서 지원되도록 보장합니다. 앱이 최대 리소스 크기 내의 리소스에 대한 메모리를 할당하려고 하면 운영 체제에 리소스가 부족한 경우에만 런타임이 시도에 실패합니다. 앱이 최대 리소스 크기를 초과하는 리소스에 대한 메모리를 할당하려고 하면 운영 체제가 과도하게 확장되거나 하드웨어가 최대 리소스 크기 이상의 할당을 지원하지 않으므로 런타임이 시도에 실패할 수 있습니다. 디버그 계층은 D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM(128MB)만 확인합니다.
픽셀 셰이더 출력 슬롯은 픽셀 출력 레지스터(4개의 32비트 구성 요소)와 UAV 간에 공유됩니다.
모든 헐 셰이더의 도메인 셰이더 제어점에 대한 총 구성 요소 수는 3968개로 제한되며, 이는 최대 제어점 수에 최대 제어점 레지스터 수를 곱한 후 4개의 구성 요소를 곱한 값보다 128개 적습니다.
4 컴퓨팅 셰이더 프로필 CS_4_0 및 CS_4_1 사용할 수 있는 UAV는 1개뿐입니다. 셰이더 프로필에 대한 자세한 내용은 셰이더 모델 5참조하세요.
기능 수준 9.x 하드웨어에 대한 리소스 제한
이러한 모든 9.x 기능 수준 리소스 제한은 D3dcommon.h에서 상수로 정의됩니다.
자원 | 한계 |
---|---|
기능 수준 9_1 texture1D U 차원 | D3D_FL9_1_REQ_TEXTURE1D_U_DIMENSION(2048) (텍스처 1D U 차원 요구 사항) |
기능 수준 9_3 texture1D U 차원 | D3D_FL9_3_REQ_TEXTURE1D_U_DIMENSION (텍스처 1D의 U 차원 최대 크기: 4096) |
기능 수준 9_1 texture2D U/V 차원 | D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION (2048) |
기능 수준 9_3 texture2D U/V 차원 | D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION (4096) |
기능 수준 9_1 texture3D U/V/W 차원 | D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (256) |
기능 수준 9_1 텍스처 큐브 차원 | D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION (512) |
기능 수준 9_3 텍스처 큐브 차원 | D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION (4096) |
기능 수준 9_1 이방성 필터링 최대이방도 기본값 | D3D_FL9_1_DEFAULT_MAX_ANISOTROPY (2) |
기능 수준 9_1 최대 입력 어셈블러 기본 형식 | D3D_FL9_1_IA_PRIMITIVE_최대_개수 (65535) |
기능 수준 9_2 최대 입력 어셈블러 기본 형식 | D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT(1048575) |
기능 수준 9_1 동시 렌더링 대상 | D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT (1) |
기능 수준 9_3 동시 렌더링 대상 | D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT (4) |
기능 수준 9_1 최대 텍스처 반복 | D3D_FL9_1_MAX_TEXTURE_REPEAT (128) |
기능 수준 9_2 최대 텍스처 반복 | D3D_FL9_2 최대 텍스처 반복 횟수 (2048) |
기능 수준 9_3 최대 텍스처 반복 | D3D_FL9_3_MAX_TEXTURE_REPEAT (8192) |