Consulta de funcionalidades
La aplicación puede detectar el nivel de compatibilidad con el enlace de recursos (así como el nivel de compatibilidad con muchas otras características), con una llamada a ID3D12Device::CheckFeatureSupport.
Consulta del nivel de enlace de recursos
Este primer ejemplo se centra en el enlace de recursos. Cada nivel de enlace de recursos es un superconjunto de niveles inferiores en la funcionalidad, por lo que el código que funciona en un nivel determinado funciona sin cambios en cualquier nivel superior.
Los niveles de enlace de recursos son constantes en la enumeración D3D12_RESOURCE_BINDING_TIER .
Para consultar el nivel de enlace de recursos, use código como este. En este ejemplo de código se muestra el patrón general para consultar cualquiera de los distintos tipos de compatibilidad con características.
D3D12_RESOURCE_BINDING_TIER get_resource_binding_tier(::ID3D12Device* pIDevice)
{
D3D12_FEATURE_DATA_D3D12_OPTIONS featureSupport{};
winrt::check_hresult(
pIDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS, &featureSupport, sizeof(featureSupport))
);
switch (featureSupport.ResourceBindingTier)
{
case D3D12_RESOURCE_BINDING_TIER_1:
// Tier 1 is supported.
break;
case D3D12_RESOURCE_BINDING_TIER_2:
// Tiers 1 and 2 are supported.
break;
case D3D12_RESOURCE_BINDING_TIER_3:
// Tiers 1, 2, and 3 are supported.
break;
}
return featureSupport.ResourceBindingTier;
}
Tenga en cuenta que cualquier constante enumerada que pase (D3D12_FEATURE_D3D12_OPTIONS, en este caso) tiene una estructura de datos correspondiente que recibe información sobre esa característica o conjunto de características (D3D12_FEATURE_DATA_D3D12_OPTIONS, en este caso). Pase siempre un puntero a la estructura que coincida con la constante enumerada que se pasa.
Consulta de cualquier nivel de característica
Además del nivel de enlace de recursos, hay muchas otras características cuyo nivel de compatibilidad puede consultar con el mismo patrón que se muestra en el ejemplo de código anterior. Simplemente pasa una constante diferente de la enumeración D3D12_FEATURE a ID3D12Device::CheckFeatureSupport (para indicar a la API qué característica solicitar información de soporte técnico) y pasa un puntero a una instancia de la estructura coincidente (en la que se va a recibir la información solicitada).
- Pase D3D12_FEATURE_ARCHITECTURE y D3D12_FEATURE_DATA_ARCHITECTURE.
- Pase D3D12_FEATURE_ARCHITECTURE1 y D3D12_FEATURE_DATA_ARCHITECTURE1.
- Pase D3D12_FEATURE_COMMAND_QUEUE_PRIORITY y D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY.
- Pase D3D12_FEATURE_CROSS_NODE y D3D12_FEATURE_DATA_CROSS_NODE.
- Pase D3D12_FEATURE_D3D12_OPTIONS y D3D12_FEATURE_DATA_D3D12_OPTIONS.
- Pase D3D12_FEATURE_D3D12_OPTIONS1 y D3D12_FEATURE_DATA_D3D12_OPTIONS1.
- Pase D3D12_FEATURE_D3D12_OPTIONS2 y D3D12_FEATURE_DATA_D3D12_OPTIONS2.
- Pase D3D12_FEATURE_D3D12_OPTIONS3 y D3D12_FEATURE_DATA_D3D12_OPTIONS3.
- Pase D3D12_FEATURE_D3D12_OPTIONS4 y D3D12_FEATURE_DATA_D3D12_OPTIONS4.
- Pase D3D12_FEATURE_D3D12_OPTIONS5 y D3D12_FEATURE_DATA_D3D12_OPTIONS5.
- Pase D3D12_FEATURE_EXISTING_HEAPS y D3D12_FEATURE_DATA_EXISTING_HEAPS.
- Pase D3D12_FEATURE_FEATURE_LEVELS y D3D12_FEATURE_DATA_FEATURE_LEVELS.
- Pase D3D12_FEATURE_FORMAT_INFO y D3D12_FEATURE_DATA_FORMAT_INFO.
- Pase D3D12_FEATURE_FORMAT_SUPPORT y D3D12_FEATURE_DATA_FORMAT_SUPPORT.
- Pase D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT y D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT.
- Pase D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS y D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS.
- Pase D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT y D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT.
- Pase D3D12_FEATURE_ROOT_SIGNATURE y D3D12_FEATURE_DATA_ROOT_SIGNATURE.
- Pase D3D12_FEATURE_SERIALIZATION y D3D12_FEATURE_DATA_SERIALIZATION.
- Pase D3D12_FEATURE_SHADER_CACHE y D3D12_FEATURE_DATA_SHADER_CACHE.
- Pase D3D12_FEATURE_SHADER_MODEL y D3D12_FEATURE_DATA_SHADER_MODEL.
Compatibilidad de hardware con formatos DXGI
Para ver tablas de formatos DXGI y características de hardware, consulte estos temas.
- Compatibilidad con formato DXGI para hardware de nivel de característica 12.1 de Direct3D
- Compatibilidad con formato DXGI para hardware de nivel de característica de Direct3D 12.0
- Compatibilidad con formato DXGI para hardware de nivel 11.1 de características de Direct3D
- Compatibilidad con formato DXGI para hardware de nivel 11.0 de características de Direct3D
- Compatibilidad de hardware con formatos Direct3D 10Level9
- Compatibilidad de hardware con formatos direct3D 10.1
- Compatibilidad de hardware con formatos direct3D 10