기능 조회
애플리케이션은 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에 알리기 위해) 일치하는 구조의 인스턴스에 포인터를 전달합니다(요청된 정보를 받을 수 있음).
- D3D12_FEATURE_ARCHITECTURE 전달하고 D3D12_FEATURE_DATA_ARCHITECTURE.
- D3D12_FEATURE_ARCHITECTURE1을 전달하고, 은 D3D12_FEATURE_DATA_ARCHITECTURE1입니다.
- D3D12_FEATURE_COMMAND_QUEUE_PRIORITY을 전달하고, 에 D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY을 전달하십시오.
- D3D12_FEATURE_CROSS_NODE을(를) 제출하고 D3D12_FEATURE_DATA_CROSS_NODE을(를) 제출하세요.
- D3D12_FEATURE_D3D12_OPTIONS을(를) 전달하고, D3D12_FEATURE_DATA_D3D12_OPTIONS을(를) 전달하십시오.
- D3D12_FEATURE_D3D12_OPTIONS1를 전달하고, D3D12_FEATURE_DATA_D3D12_OPTIONS1.
- D3D12_FEATURE_D3D12_OPTIONS2을(를) 전달하고, D3D12_FEATURE_DATA_D3D12_OPTIONS2를 제출하세요.
- D3D12_FEATURE_D3D12_OPTIONS3를에 전달하고, D3D12_FEATURE_DATA_D3D12_OPTIONS3을로 처리합니다.
- D3D12_FEATURE_D3D12_OPTIONS4 및을 전달하고, D3D12_FEATURE_DATA_D3D12_OPTIONS4.
- D3D12_FEATURE_D3D12_OPTIONS5을(를) 전달하고, 그리고 D3D12_FEATURE_DATA_D3D12_OPTIONS5.
- 의 D3D12_FEATURE_EXISTING_HEAPS를에 전달하고, 의은 D3D12_FEATURE_DATA_EXISTING_HEAPS입니다.
- D3D12_FEATURE_FEATURE_LEVELS을 전달하고, D3D12_FEATURE_DATA_FEATURE_LEVELS.
- D3D12_FEATURE_FORMAT_INFO 전달하고 D3D12_FEATURE_DATA_FORMAT_INFO.
- D3D12_FEATURE_FORMAT_SUPPORT을 및D3D12_FEATURE_DATA_FORMAT_SUPPORT및로 전달합니다.
- D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT을 전달하고, D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT.
- D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS을 전달하고 D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS을 전달합니다.
- D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT을 전달하며 D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT.
- D3D12_FEATURE_ROOT_SIGNATURE 전달하고 D3D12_FEATURE_DATA_ROOT_SIGNATURE.
- D3D12_FEATURE_SERIALIZATION을(를) 전달하고, D3D12_FEATURE_DATA_SERIALIZATION.
- D3D12_FEATURE_SHADER_CACHE을 전달하고, D3D12_FEATURE_DATA_SHADER_CACHE을 전달합니다.
- D3D12_FEATURE_SHADER_MODEL을 전달하고, D3D12_FEATURE_DATA_SHADER_MODEL를 전달합니다.
DXGI 형식에 대한 하드웨어 지원
DXGI 형식 및 하드웨어 기능의 테이블을 보려면 다음 항목을 참조하세요.
- Direct3D 기능 수준 12.1 하드웨어에 대한 DXGI 형식 지원
- Direct3D 기능 수준 12.0 하드웨어 대한 DXGI 형식 지원
- Direct3D 기능 수준 11.1 하드웨어 대한 DXGI 형식 지원
- Direct3D 기능 수준 11.0 하드웨어에 대한 DXGI 형식 지원
- Direct3D 10Level9 형식에 대한 하드웨어 지원
- Direct3D 10.1 형식에 대한 하드웨어 지원
- Direct3D 10 형식 에 대한 하드웨어 지원