DirectX 11과 DirectX 12: 차이점은 무엇이며 어떤 것을 사용해야 합니까?

DirectX 11과 DirectX 12: 차이점은 무엇이며 어떤 것을 사용해야 합니까?

DirectX 12는 2015년에 Windows 10과 함께 출시되었습니다. 출시와 함께 Microsoft의 DirectX 12는 게이머와 게임 개발자를 위한 새로운 시대를 열었습니다. GPU 성능을 향상시키면서 CPU 오버헤드를 줄일 수 있는 DirectX 12는 빠르게 명성을 얻었습니다.

그러나 DirectX 11에서 DirectX 12로 전환하는 것만큼 간단하게 성능을 향상시킬 수 있습니까? DirectX 11과 12의 차이점을 살펴보며 알아보겠습니다.

Microsoft의 DirectX는 무엇입니까?

코딩하는 남자 사진에 붙은 DirectX 로고

Microsoft DirectX 개요에서 설명했듯이 DirectX는 멀티미디어와 관련된 작업을 처리하는 데 사용되는 API 모음입니다. 여기에는 Windows 및 Xbox와 같은 Microsoft 기반 플랫폼의 게임 프로그래밍이 포함됩니다. 약간의 컨텍스트를 제공하기 위해 API에 대해 간단히 이야기해 보겠습니다.

애플리케이션 프로그래밍 인터페이스(API)는 두 개 이상의 컴퓨터 프로그램이 서로 통신할 수 있도록 하며 API 개요에서 논의합니다. 전화처럼 생각하십시오. 엄마가 식료품 목록이 포함된 문자를 보내면 휴대전화가 해당 데이터를 수신하여 표시합니다. 그것은 기본적으로 API입니다.

DirectX 11과 DirectX 12의 차이점은 무엇입니까?

그렇다면 DirectX 11과 DirectX 12의 차이점은 무엇입니까? 간단히 말해서 DirectX 12는 DirectX의 최신 버전입니다. 둘 사이의 가장 눈에 띄는 차이점 중 하나는 하드웨어와 상호 작용하는 방식입니다. DirectX 11로 개발된 대부분의 게임은 2~4개의 CPU 코어만 사용합니다. 이러한 코어 중 하나는 일반적으로 GPU에 수행할 작업을 지시하는 데 사용됩니다.

그런 다음 게임은 남은 코어를 사용하여 게임의 파티클이나 드로우 거리와 같은 다양한 CPU 집약적 설정을 처리합니다. 반면에 DirectX 12는 CPU의 작업 부하를 여러 코어에 분산시키고 모든 코어가 동시에 GPU와 통신할 수 있도록 합니다.

DirectX 12에는 멋진 종소리와 휘파람도 함께 제공됩니다. 여기에는 비동기 컴퓨팅 및 파이프라인 상태 개체(PSO)가 포함됩니다. 비동기식 컴퓨팅은 여러 워크로드가 병렬로 작동하도록 하여 GPU 활용도를 높입니다. 이것은 기본적으로 GPU의 잠재력을 최대한 활용합니다.

그래픽 렌더링 외에도 GPU는 기계 학습 알고리즘 실행과 같은 다양한 작업을 처리합니다. DirectX 11을 사용하면 GPU는 한 번에 특정 순서로 이러한 작업 중 하나만 수행할 수 있습니다. 이 경우 모든 GPU 리소스가 사용되지 않기 때문에 성능이 저하됩니다.

레스토랑의 웨이터처럼 생각하십시오. 웨이터가 처음 주문을 받으면 먼저 무엇을 마시고 싶은지 물어봅니다. 음료를 받으면 메인 코스로 무엇을 원하는지 물어봅니다. 귀하의 주문은 단계별로 이루어집니다. 웨이터는 메인 코스를 먹기 전에 디저트로 무엇을 원하는지 묻지 않을 것입니다. 이것은 효과적이지만 가능한 만큼 효율적이지는 않습니다.

컴퓨팅에서 웨이터의 각 작업은 서로 다른 GPU 리소스에 의해 처리됩니다. 음료를 받을 때까지 메인 코스 주문을 받는 데 필요한 GPU 리소스는 유휴 상태입니다. DirectX 12의 비동기식 컴퓨팅을 사용하면 웨이터가 패스트푸드 체인점처럼 한 번에 주문을 받을 수 있습니다. 이것은 GPU 사용을 최대화하고 게임 성능을 향상시킵니다.

DirectX 12는 또한 PSO를 도입했습니다. DirectX 11을 사용하면 게임의 지오메트리가 렌더링을 위해 GPU에 제출될 때 다양한 하드웨어 설정이 이 데이터를 해석하고 렌더링해야 합니다. 이것은 그래픽 파이프라인이라고 하며 GPU가 프레임을 렌더링할 때 발생하는 데이터 입력 및 출력의 흐름입니다. 그러나 DirectX 11의 그래픽 파이프라인은 완벽하지 않습니다.

이 파이프라인에는 다른 구성 요소 중에서 래스터화 상태, 혼합 상태 및 깊이 스텐실 상태를 비롯한 다양한 상태 모음이 포함되어 있습니다. DirectX 11에서는 이러한 서로 다른 상태 간에 종속성이 있습니다. 결과적으로 이전 상태가 정의될 ​​때까지 하나의 상태를 완료할 수 없습니다. 이렇게 하면 GPU 사용률이 감소하고 성능 비용으로 CPU 오버헤드가 증가합니다.

이 문제를 해결하기 위해 DirectX 12는 전체 그래픽 파이프라인의 상태를 설명하는 개체인 PSO를 도입했습니다. PSO는 이미지를 만드는 데 필요한 다양한 상태와 구성 요소가 들어 있는 병과 같습니다. 이를 통해 GPU는 현재 그래픽 파이프라인을 기반으로 상태를 계속해서 재계산할 필요 없이 모든 종속 상태를 전처리할 수 있습니다.

이는 DirectX 11에서 발견되는 CPU 오버헤드를 크게 줄이고 성능을 향상시킵니다. 그렇다면 이 차이는 실제로 어떤 모습일까요? Microsoft에 따르면 DirectX 12는 CPU 오버헤드를 최대 50%까지 줄이고 GPU 성능을 최대 20%까지 향상시킵니다. 이는 상당한 개선 사항이지만 동일한 결과가 표시된다는 의미는 아닙니다.

DirextX 11에서 DirectX 12로 전환하는 것이 간단하지 않은 이유

DirectX 11은 2009년 10월 27일에 Windows Vista용으로 처음 출시되었습니다. 따라서 2015년에 DirectX 12가 출시되면서 DirectX 11과 DirectX 12 사이에는 6년의 격차가 생겼습니다. 이 기간 동안 수천 개의 게임이 DirectX 11을 사용하여 개발되었습니다. 안타깝게도 DirectX 11에서 DirectX 12로 전환하는 것은 쉽지 않습니다.

DirectX 11은 상위 수준 API라고 합니다. 간단히 말해서 상위 수준 API는 개발자가 작업하기 더 쉽습니다. 그 결과 안정적이고 세련되며 플레이 가능한 게임이 탄생했습니다. 반면에 DirectX 12는 저수준 API이며 DirectX 11과는 다른 야수입니다. 개발자가 세분화된 수준에서 최적화를 미세 조정할 수 있지만 사용하려면 광범위한 지식이 필요합니다.

즉, DirectX 12에서 개발된 게임은 API에 대한 개발자의 지식에 따라 성능이 저하될 수 있습니다. DirectX 12와 함께 제공되는 개선 사항이 있지만 실제로는 개발자가 이를 얼마나 잘 구현할 수 있는지에 달려 있습니다. 이러한 이유로 많은 개발자가 DirectX 11과 같은 고급 API를 고수하기로 선택합니다.

DirectX 11 또는 DirectX 12를 선택해야 합니까?

대답은 실행하려는 게임과 같은 몇 가지 사항에 따라 다릅니다. 예를 들어, Guild Wars 2는 DirectX 11에서 실행됩니다. OS와 하드웨어가 DirectX 12를 사용하더라도 게임이 지원하지 않기 때문에 Guild Wars 2에서 DirectX 11을 선택할 수 있는 옵션이 없습니다. 이것은 전적으로 개발자인 ArenaNet의 결정입니다.

길드워2 인게임 이미지
이미지 제공: Martin Kerstein/ Guild Wars 2

믿거나 말거나, ArenaNet이 DirectX 9에서 DirectX 11로 전환하는 데 9년이 걸렸습니다. 하지만 DirectX 11과 DirectX 12를 모두 지원하는 게임이 있습니다. Fortnite(Fortnite 치트 시트 참조)가 그 예입니다. 게임 설정을 통해 사용자는 두 버전 간에 전환할 수 있습니다. 요약하자면, 모든 게임이 DirectX 11과 DirectX 12를 모두 지원하는 것은 아닙니다. 지원하는 경우 둘 사이를 전환하고 PC에서 어떤 것이 더 나은지 직접 결정하십시오.

DirectX 11과 DirectX 12 중에서 선택할 수 있는지 여부도 하드웨어에 따라 다릅니다. 거의 모든 최신 GPU가 DirectX 12를 지원하지만 Radeon HD 4870과 같은 구형 GPU에 대해서는 그렇지 않습니다. 2008년에 출시된 이 GPU는 DirectX 10까지만 지원합니다. DirectX 11 및 DirectX 12를 사용하여 실행되는 최신 게임.

DirectX 12가 올바른 선택입니까?

대체로 DirectX 11에서 DirectX 12로의 전환은 말처럼 흑백이 아닙니다. 하드웨어, 소프트웨어, 운영 체제 및 게임이 둘 다 지원하는지 여부와 같은 다양한 요인에 따라 달라집니다. 결정을 내리기 전에 이러한 모든 사항을 고려해야 하며 이는 차세대 DirectX에서도 마찬가지일 것입니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다