estructura D3D11_FEATURE_DATA_D3D11_OPTIONS (d3d11.h)
Describe las opciones de características de Direct3D 11.1 en el controlador de gráficos actual.
Nota:
Esta estructura es compatible con el entorno de ejecución de Direct3D 11.1, que está disponible en sistemas operativos Windows 8 y versiones posteriores.
Sintaxis
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;
Miembros
OutputMergerLogicOp
Especifica si las operaciones lógicas están disponibles en estado de mezcla. El tiempo de ejecución establece este miembro en TRUE si las operaciones lógicas están disponibles en estado de mezcla y FALSE de lo contrario. Este miembro es FALSE para el nivel de característica 9.1, 9.2 y 9.3. Este miembro es opcional para el nivel de característica 10, 10.1 y 11. Este miembro es TRUE para el nivel de característica 11.1.
UAVOnlyRenderingForcedSampleCount
Especifica si el controlador puede representarse sin vistas de destino de representación (RTV) o vistas de galería de símbolos de profundidad (DSV) y solo vistas de acceso desordenadas (UAV) enlazadas. El tiempo de ejecución establece este miembro en TRUE si el controlador puede representarse sin RTV o DSV y solo UAV enlazados y FALSE de lo contrario. Si es TRUE, puede establecer el miembro ForcedSampleCount de D3D11_RASTERIZER_DESC1 en 1, 4 o 8 cuando se represente sin RTV ni DSV y solo uaVs enlazados. Para el nivel de característica 11.1, este miembro siempre es TRUE y también puede establecer ForcedSampleCount en 16 además de 1, 4 o 8. El valor predeterminado de ForcedSampleCount es 0, lo que significa lo mismo que si el valor se establece en 1. Siempre puede establecer ForcedSampleCount en 0 o 1 para la representación solo de UAV independientemente de cómo se establece este miembro.
DiscardAPIsSeenByDriver
Especifica si el controlador admite los métodos ID3D11DeviceContext1::D iscardView y ID3D11DeviceContext1::D iscardResource . El tiempo de ejecución establece este miembro en TRUE si el controlador admite estos métodos y FALSE de lo contrario. La forma en que se establece este miembro no indica si el controlador usa realmente estos métodos; es decir, el controlador puede omitir estos métodos si no son útiles para el hardware. Si es FALSE, el tiempo de ejecución no expone estos métodos al controlador porque el controlador no los admite. Puede supervisar este miembro durante el desarrollo para descartar controladores heredados en hardware en los que estos métodos podrían haber sido beneficiosos. No es necesario escribir rutas de acceso de código independientes en función de si este miembro es TRUE o FALSE; Puede llamar a estos métodos siempre que corresponda.
FlagsForUpdateAndCopySeenByDriver
Especifica si el controlador admite la semántica nueva para copiar y actualizar que exponen los métodos ID3D11DeviceContext1::CopySubresourceRegion1 e ID3D11DeviceContext1::UpdateSubresource1 . El tiempo de ejecución establece este miembro en TRUE si el controlador admite una nueva semántica para copiar y actualizar. El tiempo de ejecución establece este miembro en FALSE solo para controladores heredados. El runtime controla este miembro de forma similar al miembro DiscardAPIsSeenByDriver .
ClearView
Especifica si el controlador admite el método ID3D11DeviceContext1::ClearView . El tiempo de ejecución establece este miembro en TRUE si el controlador admite este método y FALSE de lo contrario. Si es FALSE, el tiempo de ejecución no expone este método al controlador porque el controlador no lo admite.
CopyWithOverlap
Especifica si puede llamar a ID3D11DeviceContext1::CopySubresourceRegion1 con rectángulos de origen y destino superpuestos. El tiempo de ejecución establece este miembro en TRUE si puede llamar a CopySubresourceRegion1 con rectángulos de origen y destino superpuestos y FALSE en caso contrario. Si es FALSE, el tiempo de ejecución no expone este método al controlador porque el controlador no lo admite.
ConstantBufferPartialUpdate
Especifica si el controlador admite actualizaciones parciales de búferes de constantes. El tiempo de ejecución establece este miembro en TRUE si el controlador admite actualizaciones parciales de búferes de constantes y FALSE de lo contrario. Si es FALSE, el entorno de ejecución no expone esta operación al controlador porque el controlador no lo admite.
ConstantBufferOffsetting
Especifica si el controlador admite una nueva semántica para establecer desplazamientos en búferes de constantes para un sombreador. El tiempo de ejecución establece este miembro en TRUE si el controlador permite especificar desplazamientos al llamar a nuevos métodos como el método ID3D11DeviceContext1::VSSetConstantBuffers1 y FALSE de lo contrario. Si es FALSE, el entorno de ejecución no expone esta operación al controlador porque el controlador no lo admite.
MapNoOverwriteOnDynamicConstantBuffer
Especifica si puede llamar a ID3D11DeviceContext::Map con D3D11_MAP_WRITE_NO_OVERWRITE en un búfer de constantes dinámicos (es decir, si el controlador admite esta operación). El tiempo de ejecución establece este miembro en TRUE si el controlador admite esta operación y FALSE de lo contrario. Si es FALSE, el tiempo de ejecución produce un error en este método porque el controlador no admite la operación.
MapNoOverwriteOnDynamicBufferSRV
Especifica si puede llamar a ID3D11DeviceContext::Map con D3D11_MAP_WRITE_NO_OVERWRITE en un SRV de búfer dinámico (es decir, si el controlador admite esta operación). El tiempo de ejecución establece este miembro en TRUE si el controlador admite esta operación y FALSE de lo contrario. Si es FALSE, el tiempo de ejecución produce un error en este método porque el controlador no admite la operación.
MultisampleRTVWithForcedSampleCountOne
Especifica si el controlador admite la representación multimuestra cuando se representa con RTV enlazados. Si es TRUE, puede establecer el miembro ForcedSampleCount de D3D11_RASTERIZER_DESC1 en 1 con un RTV de varios ejemplos enlazados. El controlador puede admitir esta opción en el nivel de característica 10 y superior. Si es FALSE, se producirá un error en la creación del estado del rasterizador porque el controlador es heredado o el nivel de característica es demasiado bajo.
SAD4ShaderInstructions
Especifica si el hardware y el controlador admiten la función intrínseca msad4 en sombreadores. El tiempo de ejecución establece este miembro en TRUE si el hardware y el controlador admiten llamadas a funciones intrínsecas msad4 en sombreadores. Si es FALSE, el controlador es heredado o el hardware no admite la opción; El tiempo de ejecución producirá un error en la creación del sombreador para los sombreadores que usan msad4.
ExtendedDoublesShaderInstructions
Especifica si el hardware y el controlador admiten la función intrínseca fma y otras instrucciones dobles extendidas (DDIV y DRCP) en sombreadores. La función intrínseca fma emite una instrucción DFMA extendida de doble. El tiempo de ejecución establece este miembro en TRUE si el hardware y el controlador admiten instrucciones dobles extendidas en sombreadores (modelo de sombreador 5 y versiones posteriores). La compatibilidad con esta opción implica también la compatibilidad con instrucciones básicas del sombreador de precisión doble. Puede usar el valor de D3D11_FEATURE_DOUBLES para consultar la compatibilidad con sombreadores de precisión doble. Si es FALSE, el hardware y el controlador no admiten la opción; El tiempo de ejecución producirá un error en la creación del sombreador para los sombreadores que usan instrucciones dobles extendidas.
ExtendedResourceSharing
Especifica si el hardware y el controlador tienen compatibilidad extendida con los tipos y formatos de recursos De Textura2D compartidos. El tiempo de ejecución establece este miembro en TRUE si el hardware y el controlador admiten el uso compartido extendido de recursos Texture2D.
Comentarios
Si un dispositivo Microsoft Direct3D admite el nivel de característica 11.1 (D3D_FEATURE_LEVEL_11_1), cuando se llama a ID3D11Device::CheckFeatureSupport con D3D11_FEATURE_D3D11_OPTIONS, CheckFeatureSupport devuelve un puntero a D3D11_FEATURE_DATA_D3D11_OPTIONS con todos los miembros establecidos en TRUE , excepto SAD4ShaderInstructions y ExtendedDoublesShaderInstructions . miembros, que opcionalmente son compatibles con el hardware y el controlador y, por lo tanto, pueden ser TRUE o FALSE.
El nivel de característica 11.1 proporciona las siguientes características adicionales:
- UAV en cada fase de sombreador con 64 ranuras de enlace UAV en lugar de 8.
- Rasterización independiente del destino, que permite establecer el miembro ForcedSampleCount de D3D11_RASTERIZER_DESC1 en 1, 4, 8 o 16 y representarlo en RTV con una sola muestra.
- Representación solo de UAV con el miembro ForcedSampleCount de D3D11_RASTERIZER_DESC1 configurado en hasta 16 (solo 8 para el nivel de característica 11).
- DiscardAPIsSeenByDriver y FlagsForUpdateAndCopySeenByDriver
- ClearView, CopyWithOverlap, ConstantBufferPartialUpdate, ConstantBufferOffsetting y MapNoOverwriteOnDynamicConstantBuffer
- MapNoOverwriteOnDynamicBufferSRV y MultisampleRTVWithForcedSampleCountOne
Requisitos
Cliente mínimo compatible | Actualización de windows 8 y plataforma para Windows 7 [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2012 y Actualización de plataforma para Windows Server 2008 R2 [aplicaciones de escritorio | Aplicaciones para UWP] |
Encabezado | d3d11.h |