다음을 통해 공유


기능 조회

애플리케이션은 ID3D12Device::CheckFeatureSupport호출하여 리소스 바인딩에 대한 지원 수준과 다른 많은 기능에 대한 지원 수준을 검색할 수 있습니다.

리소스 바인딩 계층을 쿼리하는 방법

이 첫 번째 예제에서는 리소스 바인딩에 중점을 둡니다. 각 리소스 바인딩 계층은 기능에서 하위 계층의 상위 집합이므로 지정된 계층에서 작동하는 코드는 상위 계층에서 변경되지 않고 작동합니다.

리소스 바인딩 계층은 D3D12_RESOURCE_BINDING_TIER 열거형의 상수입니다.

리소스 바인딩 계층을 쿼리하려면 다음과 같은 코드를 사용합니다. 이 코드 예제에서는 다양한 종류의 기능 지원을 쿼리하는 일반적인 패턴을 보여 줍니다.

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

전달한 열거 상수(이 경우D3D12_FEATURE_D3D12_OPTIONS)에는 해당 기능 또는 기능 집합(이 경우D3D12_FEATURE_DATA_D3D12_OPTIONS)에 대한 정보를 수신하는 해당 데이터 구조가 있습니다. 항상 전달하는 열거형 상수와 일치하는 구조체에 포인터를 전달합니다.

기능 수준을 쿼리하는 방법

리소스 바인딩 계층뿐만 아니라 위의 코드 예제에 표시된 것과 동일한 패턴을 사용하여 쿼리할 수 있는 지원 수준이 있는 다른 많은 기능이 있습니다. D3D12_FEATURE 열거형과 다른 상수를 ID3D12Device::CheckFeatureSupport 전달하면 됩니다(지원 정보를 요청하는 기능을 API에 알리기 위해) 일치하는 구조의 인스턴스에 포인터를 전달합니다(요청된 정보를 받을 수 있음).

DXGI 형식에 대한 하드웨어 지원

DXGI 형식 및 하드웨어 기능의 테이블을 보려면 다음 항목을 참조하세요.