Поделиться через


структура D3D12_FEATURE_DATA_D3D12_OPTIONS (d3d12.h)

Описывает параметры функций Direct3D 12 в текущем графическом драйвере.

Синтаксис

typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS {
  BOOL                                  DoublePrecisionFloatShaderOps;
  BOOL                                  OutputMergerLogicOp;
  D3D12_SHADER_MIN_PRECISION_SUPPORT    MinPrecisionSupport;
  D3D12_TILED_RESOURCES_TIER            TiledResourcesTier;
  D3D12_RESOURCE_BINDING_TIER           ResourceBindingTier;
  BOOL                                  PSSpecifiedStencilRefSupported;
  BOOL                                  TypedUAVLoadAdditionalFormats;
  BOOL                                  ROVsSupported;
  D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
  UINT                                  MaxGPUVirtualAddressBitsPerResource;
  BOOL                                  StandardSwizzle64KBSupported;
  D3D12_CROSS_NODE_SHARING_TIER         CrossNodeSharingTier;
  BOOL                                  CrossAdapterRowMajorTextureSupported;
  BOOL                                  VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
  D3D12_RESOURCE_HEAP_TIER              ResourceHeapTier;
} D3D12_FEATURE_DATA_D3D12_OPTIONS;

Члены

DoublePrecisionFloatShaderOps

Указывает, разрешены ли двойные типы для операций шейдера. Если задано значение TRUE, допускаются двойные типы; в противном случае — FALSE. Поддерживаемые операции эквивалентны члену ExtendedDoublesShaderInstructions Direct3D 11 структуры D3D11_FEATURE_DATA_D3D11_OPTIONS .

Чтобы использовать любой шейдер HLSL, скомпилированный с типом double , среда выполнения должна присвоить doublePrecisionFloatShaderOps значение TRUE.

OutputMergerLogicOp

Указывает, доступны ли логические операции в состоянии смешения. Среда выполнения задает этому члену значение TRUE , если логические операции доступны в состоянии смешения, и false в противном случае. Этот элемент имеет значение FALSE для уровней компонентов 9.1, 9.2 и 9.3. Этот член является необязательным для уровней компонентов 10, 10.1 и 11. Этот элемент имеет значение TRUE для уровней компонентов 11.1 и 12.

MinPrecisionSupport

Сочетание D3D12_SHADER_MIN_PRECISION_SUPPORT типизированных значений, объединенных с помощью побитовой операции ИЛИ. Полученное значение задает минимальные уровни точности, поддерживаемые драйвером для этапов шейдера. Нулевое значение указывает, что драйвер поддерживает только полную 32-разрядную точность для всех этапов шейдера.

TiledResourcesTier

Указывает, поддерживают ли оборудование и драйвер ресурсы с плитками. Среда выполнения задает этому члену D3D12_TILED_RESOURCES_TIER типизированное значение, указывающее, поддерживает ли оборудование и драйвер мозаичные ресурсы и на каком уровне.

ResourceBindingTier

Указывает уровень, на котором оборудование и драйвер поддерживают привязку ресурсов. Среда выполнения задает этому элементу D3D12_RESOURCE_BINDING_TIER типизированное значение, указывающее уровень уровня.

PSSpecifiedStencilRefSupported

Указывает, поддерживается ли ссылка на трафарет шейдера пикселей. Если задано значение TRUE, это поддерживается; в противном случае — FALSE.

TypedUAVLoadAdditionalFormats

Указывает, поддерживается ли загрузка дополнительных форматов для типизированных представлений без упорядоченного доступа (БЛА). Если задано значение TRUE, это поддерживается; в противном случае — FALSE.

ROVsSupported

Указывает, поддерживаются ли представления порядка растеризатора (ROV). Если задано значение TRUE, они поддерживаются; в противном случае — FALSE.

ConservativeRasterizationTier

Указывает уровень, на котором оборудование и драйвер поддерживают консервативную растеризацию. Среда выполнения задает этому члену D3D12_CONSERVATIVE_RASTERIZATION_TIER типизированное значение, указывающее уровень уровня.

MaxGPUVirtualAddressBitsPerResource

Не используйте это поле; Вместо этого используйте запрос D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT (структура с элементом MaxGPUVirtualAddressBitsPerResource ), который является более точным.

StandardSwizzle64KBSupported

Значение TRUE, если оборудование поддерживает текстуры со стандартным шаблоном поворота размером 64 КБ. Поддержка этого шаблона позволяет оптимизировать текстуру с нулевым копированием, обеспечивая при этом почти равностороннюю локализацию для каждого измерения в текстуре. Параметры и ограничения текстуры см. в разделе D3D12_TEXTURE_LAYOUT.

CrossNodeSharingTier

Константу перечисления D3D12_CROSS_NODE_SHARING_TIER , указывающую уровень совместного использования между узлами адаптера с несколькими узлами, такими как эмулированный уровень 1, уровень 1 или уровень 2.

CrossAdapterRowMajorTextureSupported

Значение FALSE означает, что устройство поддерживает операции копирования только в текстуры строк с перекрестным адаптером и из нее. Значение TRUE означает, что устройство поддерживает представления ресурсов шейдера, неупорядоченные представления доступа и отрисовки целевых представлений текстур с основными строками между адаптерами. "Кросс-адаптер" означает между несколькими адаптерами (даже из разных IHV).

VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation

Поддерживаются ли индексы массива окна просмотра (VP) и целевого объекта отрисовки (RT) любого шейдера, подавающего растеризатор, без эмуляции геометрического шейдера. Сравните элемент VPAndRTArrayIndexFromAnyShaderFeedingRasterizer структуры D3D11_FEATURE_DATA_D3D11_OPTIONS3 . В ID3D12ShaderReflection::GetRequiresFlags см. #define D3D_SHADER_REQUIRES_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER.

ResourceHeapTier

Указывает уровень, на котором оборудование и драйвер требуют присвоения кучи, связанного с типом ресурса. Среда выполнения задает этому элементу константу перечисления D3D12_RESOURCE_HEAP_TIER .

Комментарии

См . D3D12_FEATURE.

Требования

Требование Значение
Заголовок d3d12.h

См. также раздел

Консервативная растеризация

Основные структуры

D3D12_FEATURE

Упорядоченные представления средства программной прорисовки