티스토리 뷰

DirectX12 프로그래밍을 하다 보면 디버깅이 필요한 시점이 있습니다.

Visual Studio로 디버깅을 해서 중단점이 잡히면 그나마 다행이지만, 화면이 그냥 까맣게 나오는 경우도 있습니다.

의심되는 코드를 수정해보거나 의심되는 데이터를 따로 뽑아서 출력해봄으로써 확인해 볼 수도 있습니다.

하지만 이렇게 파악한 데이터는 한정적이고, 문제가 생길 때마다 테스트 코드를 작성하면 매우 많은 시간이 소요될 것입니다.

대신 Microsoft에서 제공하는 디버깅 툴인 PIX를 활용하면 그래픽 관련 디버깅을 매우 간편하고 빠르게 할 수 있습니다.

 

툴은 이곳에서 다운 받을 수 있습니다.

https://devblogs.microsoft.com/pix/download/

 

다음으로는 PIX를 통해 DirectX12 프로그램을 디버깅하는 과정을 간략하게 살펴보겠습니다.

 

처음 PIX를 설치해서 실행하면 아래와 같은 화면이 나옵니다.

PIX 첫 실행시

로컬 컴퓨터에 있는 프로그램을 디버깅할 예정이므로 Connect to a Device를 클릭합니다.

Connect 화면

Localhost를 선택하고 Connect 버튼을 클릭합니다.

Lauch 화면

Launch Win32 버튼을 누른 뒤, Browse 버튼을 눌러서 디버깅하고자 하는 프로그램을 선택합니다.

그후 아래쪽에 Launch 버튼을 누르면 프로그램이 실행됩니다.

Capture 화면

프로그램이 실행되고 나면 아래 쪽에 Capture 버튼이 활성화됩니다.

Capture 버튼을 누르고 캡쳐된 이미지를 클릭하면 아래와 같은 분석 화면으로 넘어갑니다.

여기서 화면 상단의 Start Analysis 버튼을 누르면 분석을 시작할 수 있습니다.

분석 화면
분석 에러1

다만, 처음으로 PIX 프로그램을 사용하면 위와 같은 에러를 맞닥뜨릴 수 있습니다.

시스템에서 개발자 모드를 켜지 않았을 때 발생하는 에러로 개발자 설정에서 개발자 모드를 켜주면 해결이 됩니다.

개발자 설정

다시 PIX로 돌아와서 Start Analysis 버튼을 누르면 이번에는 아래와 같은 에러 메세지를 보게 됩니다.

분석 에러2

NVIDIA 개발자 모드 설정이 되지 않아서 발생하는 에러로 링크에 설명된 대로 NVIDIA 제어판에서 개발자 모드를 켜주면 해결이 됩니다.

NVIDIA 개발자 설정

모든 설정이 끝마치고 나면 PIX를 한 번 껐다 켜주어야 합니다.

그 후 똑같은 과정을 통해서 Start Analysis 버튼을 누르면 이번에는 잘 진행되는 것을 확인할 수 있습니다.

분석 화면

캡쳐된 이미지에서 Pipeline을 누르고, 특정 DrawCall을 선택하면 해당 DrawCall을 진행할 때 어떤 State인지를 확인할 수 있습니다. RootSignature, Descriptor들, VertexBuffer, IndexBuffer, Render Targets, Depth/Stencil Info 등 많은 정보를 한 눈에 확인할 수 있습니다.

이를 통해 해당 데이터가 의도한 상황이랑 같은지, 어떤 부분에서 문제가 생겼는지 매우 쉽고 확실하게 확인할 수 있습니다.

지금까지 PIX를 사용하는 방법을 간단하게 알아보았습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함