기록공간

[DirectX 12] 기본지식 - 기능 수준(Feature Level) 본문

DirectX/기초

[DirectX 12] 기본지식 - 기능 수준(Feature Level)

입코딩 2020. 2. 5. 14:52
반응형

기능 수준이라는 개념은 Direct3D 11에서 도입된 것으로, 코드에서는 D3D_FEATURE_LEVEL이라는 enum형으로 대표된다. 기능 수준들은 대략 버전 9에서 11까지의 여러 Direct3D 버전들에 대응된다. 

 

기능 수준들은 GPU가 지원하는 기능들의 엄격한 집합을 정의한다(각 기능들이 지원하는 구체적인 내용은 SDK를 참고). 예를들어 기능 수준 11을 지원하는 GPU는 반드시 Direct3D 11의 기능 집합 전체를 지원해야 한다. 

 

이러한 기능 수준은 응용 프로그램 개발을 편하게 해주는 요인이다. 현재 GPU의 기능 수준을 파악하기만 하면, 구체적으로 어떤 기능을 사용할 수 있는지를 확실히 알 수 있기 때문이다.

 

사용자의 하드웨어가 특정 기능 수준을 지원하지 않는 경우 응용 프로그램이 실행을 아예 포기하는 대신 더 낮은 기능 수준으로 후퇴하는 전략을 사용할 수도 있다

 

예를 들어 대상 사용자층을 넓히기 위해 Direct3D 12뿐만 아니라 Direct3D 11, 10, 9.3 수준 하드웨어까지 지원한다고 하자. 이 경우 응용 프로그램은 높은 수준에서 낮은 수준으로 기능 수준들을 점검한다. 즉, 응용 프로그램은 먼저 하드웨어가 Direct3D 12를 지원하는지 점검하고, 아니라면 Direct 11로(혹은 9.3까지도) 내려간다.

 

실제 응용 프로그램이라면 대상 사용자층을 최대화하기 위해 구현 하드웨어의 지원에도 신경을 써야 할 것이다.

반응형
Comments