Delen via


Capaciteitsopvraging

Uw toepassing kan het ondersteuningsniveau voor resourcebinding (evenals het ondersteuningsniveau voor veel andere functies) detecteren, met een aanroep naar ID3D12Device::CheckFeatureSupport.

Hoe query's uit te voeren voor het resources-bindingsniveau

Dit eerste voorbeeld concentreert zich op resource binding. Elke resourcebindingslaag is een superset van lagere lagen in functionaliteit, dus code die op een bepaalde laag werkt, werkt ongewijzigd op een hogere laag.

De resource bindingniveaus zijn constanten in de enumeratie D3D12_RESOURCE_BINDING_TIER.

Als u een query wilt uitvoeren voor de resourcebindingslaag, gebruikt u code zoals deze. In dit codevoorbeeld ziet u het algemene patroon voor het uitvoeren van query's op een van de verschillende soorten functieondersteuning.

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;
}

Houd er rekening mee dat elke geïnventariseerd constante die u doorgeeft (D3D12_FEATURE_D3D12_OPTIONS, in dit geval) een bijbehorende gegevensstructuur heeft die informatie ontvangt over die functie of set functies (in dit gevalD3D12_FEATURE_DATA_D3D12_OPTIONS). Geef altijd een aanwijzer door aan de structuur die overeenkomt met de opgesomde constante die u doorgeeft.

Query's uitvoeren op elk functieniveau

Naast de resourcebindingslaag zijn er veel andere functies waarvan u op ondersteuningsniveau kunt zoeken met hetzelfde patroon dat in het bovenstaande codevoorbeeld wordt weergegeven. U geeft alleen een andere constante door dan de D3D12_FEATURE opsomming aan ID3D12Device::CheckFeatureSupport (om de API te vertellen over welke functie ondersteuningsinformatie moet worden aangevraagd) en geeft u een aanwijzer door naar een exemplaar van de overeenkomende structuur (waarin de aangevraagde gegevens moeten worden ontvangen).

Hardwareondersteuning voor DXGI-indelingen

Raadpleeg deze onderwerpen om tabellen met DXGI-indelingen en hardwarefuncties weer te geven.