Ограничения ресурсов (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 срезов массива)
Измерение U/V Texture2D D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION (16384)
Измерение Texture2DArray D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION (2048 срезов массива)
Измерение U/V/W Texture3D D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (2048)
Измерение TextureCube D3D11_REQ_TEXTURECUBE_DIMENSION (16384)
Размер ресурса (в МБ) для любого из предыдущих ресурсов min(max(128;0.25f * (объем выделенной виртуальной памяти)), 2048 МБ
D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM (128)
D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM (0,25f)
D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM (2048)
Анизотропная фильтрация максанизотропия D3D11_REQ_MAXANISOTROPY (16)
Измерение ресурсов, адресуемое путем фильтрации оборудования D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION (16384) на измерение
Размер ресурса (в МБ), адресуемый IA (входные данные или данные вершин) или VS/GS/PS (выборка точки) max(128,0.25f * (объем выделенной виртуальной памяти)) МБ
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_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES (1024)
Общее количество объектов выборки в контексте D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE (4096)
Общее количество объектов окна просмотра и ножниц в конвейере D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE (16)
Общее количество расстояний клипа/отсечения на вершину D3D11_CLIP_OR_CULL_DISTANCE_COUNT (8)
Общее количество объектов blend в контексте D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE (4096)
Общее количество объектов глубины или набора элементов в контексте D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE (4096)
Общее количество объектов состояния растеризатора в контексте D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE (4096)
Максимальное количество выборок в пикселях во время множественной выборки D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT (32)
Количество вершинных элементов ресурса шейдера (четыре 32-разрядных компонента) D3D11_STANDARD_VERTEX_ELEMENT_COUNT (32)
Общее ядро шейдера (четыре 32-разрядных компонента) временного регистра (r# + индексируемый x#[n]) D3D11_COMMONSHADER_TEMP_REGISTER_COUNT (4096)
Слоты буфера констант для ядра common-shader D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT (15) (+1 выделен для немедленного буфера констант в шейдерах)
Основные слоты входных ресурсов шейдера common-shader D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT (128)
Слоты выборки ядра common-shader D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT (16)
Ограничение вложенности подпрограмм на основе общих шейдеров D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT (32)
Ограничение вложенного элемента управления потоком общего шейдера D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT (64)
Число входных регистров шейдера вершин (четыре 32-разрядных компонента) D3D11_VS_INPUT_REGISTER_COUNT (32)
Число выходных регистров шейдера вершин (четыре 32-разрядных компонента) D3D11_VS_OUTPUT_REGISTER_COUNT (32)
Число входных регистров шейдера geometry (четыре 32-разрядных компонента) D3D11_GS_INPUT_REGISTER_COUNT (32)
Число выходных регистров шейдера geometry (четыре 32-разрядных компонента) D3D11_GS_OUTPUT_REGISTER_COUNT (32)
Число входных регистров шейдера пикселей (четыре 32-разрядных компонента) D3D11_PS_INPUT_REGISTER_COUNT (32)
Слоты вывода шейдера пикселей 8
Число регистров глубины вывода пиксельного шейдера (один 32-разрядный компонент) D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT (1)
Слоты входных ресурсов для индексов сборщика входных данных D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT (1)
Слоты входных входных ресурсов для ассемблеров D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (32)
Счетчик входных регистров точек управления шейдером оболочки (четыре 32-разрядных компонента) D3D11_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT (32)
Количество входных контрольных точек шейдера корпуса D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32)
Число выходных регистров точек управления шейдера оболочки (четыре 32-разрядных компонента) D3D11_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT (32)
Количество контрольных точек вывода шейдера оболочки D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32)
Число константных регистров выходных данных шейдера оболочки (четыре 32-разрядных компонента) D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT (32)
Количество входных регистров точек управления шейдером домена (четыре 32-разрядных компонента) D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COUNT (32)
Количество входных контрольных точек шейдера домена D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32)
Число входных регистров исправлений шейдера домена (четыре 32-разрядных компонента) D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT (32)
Число выходных регистров вершин шейдера домена (четыре 32-разрядных компонента) 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 (128) МБ.

Слоты вывода шейдера пикселей совместно используются между регистрами вывода пикселей (четыре 32-разрядных компонента) и БПЛА.

Общее число компонентов для всех контрольных точек шейдера оболочки до контрольных точек шейдера предметной области ограничено 3968, что на 128 меньше, чем максимальное количество контрольных точек, регистрирующих четыре компонента.

4Профили вычислительных шейдеров CS_4_0 и CS_4_1 доступно только 1 БПЛА. Дополнительные сведения о профилях шейдеров см. в разделе Модель шейдера 5.

Ограничения ресурсов для оборудования уровня компонентов 9.x

Все эти ограничения ресурсов уровня компонентов 9.x определяются как константы в D3dcommon.h.

Ресурс Ограничение
Измерение текстуры1D U уровня компонентов 9_1 D3D_FL9_1_REQ_TEXTURE1D_U_DIMENSION (2048)
Измерение текстуры1D U уровня компонентов 9_3 D3D_FL9_3_REQ_TEXTURE1D_U_DIMENSION (4096)
Измерение U/V уровня компонентов 9_1 texture2D D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION (2048)
Измерение U/V уровня компонентов 9_3 texture2D D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION (4096)
Измерение U/V/W уровня компонентов 9_1 texture3D 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_MAX_COUNT (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_MAX_TEXTURE_REPEAT (2048)
Максимальное повторение текстуры уровня компонентов 9_3 D3D_FL9_3_MAX_TEXTURE_REPEAT (8192)

Ресурсы