структура D3D11_FEATURE_DATA_D3D11_OPTIONS (d3d11.h)
Описание параметров функций Direct3D 11.1 в текущем графическом драйвере.
Примечание
Эта структура поддерживается средой выполнения Direct3D 11.1, которая доступна в Windows 8 и более поздних версиях операционных систем.
Синтаксис
typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS {
BOOL OutputMergerLogicOp;
BOOL UAVOnlyRenderingForcedSampleCount;
BOOL DiscardAPIsSeenByDriver;
BOOL FlagsForUpdateAndCopySeenByDriver;
BOOL ClearView;
BOOL CopyWithOverlap;
BOOL ConstantBufferPartialUpdate;
BOOL ConstantBufferOffsetting;
BOOL MapNoOverwriteOnDynamicConstantBuffer;
BOOL MapNoOverwriteOnDynamicBufferSRV;
BOOL MultisampleRTVWithForcedSampleCountOne;
BOOL SAD4ShaderInstructions;
BOOL ExtendedDoublesShaderInstructions;
BOOL ExtendedResourceSharing;
} D3D11_FEATURE_DATA_D3D11_OPTIONS;
Члены
OutputMergerLogicOp
Указывает, доступны ли логические операции в состоянии смешения. Среда выполнения присваивает этому члену значение TRUE , если логические операции доступны в состоянии смешения, в противном случае — FALSE . Этот элемент имеет значение FALSE для уровней компонентов 9.1, 9.2 и 9.3. Этот член является необязательным для уровней компонентов 10, 10.1 и 11. Этот член имеет значение TRUE для уровня компонентов 11.1.
UAVOnlyRenderingForcedSampleCount
Указывает, может ли драйвер выполнять отрисовку без целевых представлений отрисовки (RTV) или представлений элементов глубины (DSV), а также только с неупорядоченными представлениями доступа (БПЛА). Среда выполнения задает этому члену значение TRUE, если драйвер может выполнять отрисовку без RTV или DSV и только связанных БПЛА и false в противном случае. Если задано значение TRUE, при отрисовке для элемента ForcedSampleCountD3D11_RASTERIZER_DESC1 можно задать значение 1, 4 или 8 при отрисовке без rtv или DSV и только связанных БПЛА. Для уровня компонентов 11.1 этот элемент всегда имеет значение TRUE , и вы также можете задать для параметра ForcedSampleCount значение 16 в дополнение к 1, 4 или 8. Значение по умолчанию ForcedSampleCount равно 0, что означает то же самое, что и если задано значение 1. Вы всегда можете задать значение ForcedSampleCount равным 0 или 1 для отрисовки только для UAV независимо от того, как задан этот элемент.
DiscardAPIsSeenByDriver
Указывает, поддерживает ли драйвер методы ID3D11DeviceContext1::D iscardView и ID3D11DeviceContext1::D iscardResource . Среда выполнения устанавливает для этого члена значение TRUE , если драйвер поддерживает эти методы, и false в противном случае. Способ установки этого элемента не указывает, использует ли драйвер эти методы. то есть драйвер может игнорировать эти методы, если они не являются полезными для оборудования. Значение FALSE означает, что среда выполнения не предоставляет эти методы драйверу, так как драйвер не поддерживает их. Вы можете отслеживать этот элемент во время разработки, чтобы исключить устаревшие драйверы на оборудовании, где эти методы могли бы быть полезны в противном случае. Вы не обязаны писать отдельные пути кода в зависимости от того, имеет ли этот элемент значение TRUE или FALSE; Эти методы можно вызывать всякий раз, когда это применимо.
FlagsForUpdateAndCopySeenByDriver
Указывает, поддерживает ли драйвер новую семантику для копирования и обновления, предоставляемые методами ID3D11DeviceContext1::CopySubresourceRegion1 и ID3D11DeviceContext1::UpdateSubresource1 . Среда выполнения задает этому члену значение TRUE , если драйвер поддерживает новую семантику для копирования и обновления. Среда выполнения присваивает этому члену значение FALSE только для устаревших драйверов. Среда выполнения обрабатывает этот элемент аналогично участнику DiscardAPIsSeenByDriver .
ClearView
Указывает, поддерживает ли драйвер метод ID3D11DeviceContext1::ClearView . Среда выполнения устанавливает для этого члена значение TRUE , если драйвер поддерживает этот метод, и false в противном случае. Значение FALSE означает, что среда выполнения не предоставляет этот метод драйверу, так как драйвер не поддерживает его.
CopyWithOverlap
Указывает, можно ли вызывать ID3D11DeviceContext1::CopySubresourceRegion1 с перекрывающимися исходными и целевыми прямоугольниками. Среда выполнения присваивает этому члену значение TRUE , если можно вызвать CopySubresourceRegion1 с перекрывающимися исходными и целевыми прямоугольниками, а в противном случае — false . Значение FALSE означает, что среда выполнения не предоставляет этот метод драйверу, так как драйвер не поддерживает его.
ConstantBufferPartialUpdate
Указывает, поддерживает ли драйвер частичные обновления буферов констант. Среда выполнения задает этому члену значение TRUE , если драйвер поддерживает частичное обновление буферов констант и значение FALSE в противном случае. Значение FALSE означает, что среда выполнения не предоставляет эту операцию драйверу, так как драйвер не поддерживает ее.
ConstantBufferOffsetting
Указывает, поддерживает ли драйвер новую семантику для задания смещения в буферах констант для шейдера. Среда выполнения задает этому члену значение TRUE , если драйвер поддерживает возможность указания смещения при вызове новых методов, таких как метод ID3D11DeviceContext1::VSSetConstantBuffers1 , и false в противном случае. Значение FALSE означает, что среда выполнения не предоставляет эту операцию драйверу, так как драйвер не поддерживает ее.
MapNoOverwriteOnDynamicConstantBuffer
Указывает, можно ли вызывать ID3D11DeviceContext::Map с D3D11_MAP_WRITE_NO_OVERWRITE в динамическом буфере констант (то есть поддерживает ли драйвер эту операцию). Среда выполнения задает этому члену значение TRUE , если драйвер поддерживает эту операцию, и FALSE в противном случае. Если значение FALSE, среда выполнения завершается сбоем этого метода, так как драйвер не поддерживает операцию.
MapNoOverwriteOnDynamicBufferSRV
Указывает, можно ли вызывать ID3D11DeviceContext::Map с D3D11_MAP_WRITE_NO_OVERWRITE в динамическом буфере SRV (то есть поддерживает ли драйвер эту операцию). Среда выполнения задает этому члену значение TRUE , если драйвер поддерживает эту операцию, и FALSE в противном случае. Если значение FALSE, среда выполнения завершается сбоем этого метода, так как драйвер не поддерживает операцию.
MultisampleRTVWithForcedSampleCountOne
Указывает, поддерживает ли драйвер многопримерную отрисовку при отрисовке с привязкой RTV. Если задано значение TRUE, для элемента ForcedSampleCountD3D11_RASTERIZER_DESC1 можно задать значение 1 с привязкой RTV с несколькими выборками. Драйвер может поддерживать этот параметр на уровне компонентов 10 и выше. Если значение FALSE, создание состояния растеризатора завершится сбоем, так как драйвер является устаревшим или уровень функций слишком низок.
SAD4ShaderInstructions
Указывает, поддерживают ли оборудование и драйвер встроенную функцию msad4 в шейдерах. Среда выполнения задает этому члену значение TRUE , если оборудование и драйвер поддерживают вызовы встроенных функций msad4 в шейдерах. Значение FALSE означает, что драйвер является устаревшим или оборудование не поддерживает этот параметр; среда выполнения не сможет создать шейдер для шейдеров, использующих msad4.
ExtendedDoublesShaderInstructions
Указывает, поддерживает ли оборудование и драйвер встроенную функцию fma и другие расширенные инструкции doubles (DDIV и DRCP) в шейдерах. Встроенная функция fma выдает расширенную инструкцию DFMA doubles. Среда выполнения задает этому члену значение TRUE , если оборудование и драйвер поддерживают расширенные инструкции double в шейдерах (модель шейдера 5 и более поздних версий). Поддержка этого параметра подразумевает также поддержку базовых инструкций шейдера двойной точности. Значение D3D11_FEATURE_DOUBLES можно использовать для запроса поддержки шейдеров двойной точности. Если значение FALSE, оборудование и драйвер не поддерживают параметр ; среда выполнения не сможет создать шейдер для шейдеров, использующих расширенные инструкции doubles.
ExtendedResourceSharing
Указывает, имеет ли оборудование и драйвер расширенную поддержку общих типов ресурсов Texture2D и форматов. Среда выполнения задает этому члену значение TRUE , если оборудование и драйвер поддерживают расширенный общий доступ к ресурсам Texture2D.
Комментарии
Если устройство Microsoft Direct3D поддерживает уровень компонентов 11.1 (D3D_FEATURE_LEVEL_11_1), то при вызове ID3D11Device::CheckFeatureSupport с D3D11_FEATURE_D3D11_OPTIONSфункция CheckFeatureSupport возвращает указатель на D3D11_FEATURE_DATA_D3D11_OPTIONS со всеми элементами, равными TRUE , кроме SAD4ShaderInstructions и ExtendedDoublesShaderInstructions . члены, которые при необходимости поддерживаются оборудованием и драйвером и поэтому могут иметь значение TRUE или FALSE.
Уровень компонентов 11.1 предоставляет следующие дополнительные возможности:
- БПЛА на каждом этапе шейдера с 64 слотами привязки БПЛА вместо 8.
- Независимая от целевого объекта растеризация, которая позволяет задать для элемента ForcedSampleCountD3D11_RASTERIZER_DESC1 значение 1, 4, 8 или 16 и отрисовку в rtv с помощью одной выборки.
- Отрисовка только для UAV с элементом ForcedSampleCountD3D11_RASTERIZER_DESC1 до 16 (только до 8 для уровня компонентов 11).
- DiscardAPIsSeenByDriver и FlagsForUpdateAndCopySeenByDriver
- ClearView, CopyWithOverlap, ConstantBufferPartialUpdate, ConstantBufferOffsetting и MapNoOverwriteOnDynamicConstantBuffer
- MapNoOverwriteOnDynamicBufferSRV и MultisampleRTVWithForcedSampleCountOne
Требования
Минимальная версия клиента | Windows 8 и Обновление платформы для Windows 7 [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2012 и обновление платформы для Windows Server 2008 R2 [классические приложения | Приложения UWP] |
Верхняя часть | d3d11.h |