Ограничения ресурсов (Direct3D 11)
Этот раздел содержит список ресурсов, поддерживаемых Direct3D 11 (в частности , оборудование уровня компонентов 11 или 9.x).
- Ограничения ресурсов для оборудования уровня компонентов 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) |