Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
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
Tags
more
Archives
Today
Total
관리 메뉴

Visual Studio

DirectX 디버깅 도구 : Microsoft PIX (1) 본문

Graphics

DirectX 디버깅 도구 : Microsoft PIX (1)

emacser 2022. 6. 6. 05:56

DirectX 하면서 쉐이더랑 파이프라인 디버깅을 하고싶어서 visual studio안에서 그래픽 디버깅 기능을 썼더니,

deprecated 되었다면서 Microsoft PIX 라는 프로그램을 사용하라고 한다.

설치하고 실행하면 이런 화면이 뜨는데, 처음에는 사용법을 몰라서 약간 당황했다;

유니버셜 앱을 실행할 수도 있고, exe 파일을 실행할 수도 있고, 이미 실행중인 프로그램에 Attach 할수 있다. 분석을 시작하려면 디버깅할 프로그램에 연결한 뒤 "GPU Capture" 옆의 카메라 버튼을 누른다.

 

Capture가 완료되면 이렇게 캡쳐된 스냅샷이 보이는데, 클릭하면 분석 창이 뜬다.

우측 하단 탭의 "Click here"를 누르면 분석을 시작한다. 분석이 완료되면 "Click here to start analysis"가 

"Please select a GPU event in the events list"라는 문구로 바뀌는데,

CommandQueue 탭에서 명령어를 클릭하면 자세한 정보를 볼수 있다. 첫번째 DrawindexedInstanced를 클릭해보자.

왼쪽 하단에 이렇게 inspect 할 수 있는 아이템들이 나타나는데, IA의 Output을 클릭하면 해당 명령에 쓰인 버텍스들이

"무려 3차원으로 시각화된" 뷰어가 뜬다.

본인은 이걸 보고 진짜 서울 처음온 촌놈마냥 놀랬다. 그래픽스를 시작한지 얼마 안되었기 때문에 이쪽 지식이 별로 없었는데, 무료로 쓸수 있는 디버깅 툴 치고는 상당히 괜찮았다.

VB0, VB1, IB는 해당 instance를 렌더링할 때 사용된 vertex buffer, index buffer의 상태이다. 물론 버텍스 버퍼의 개수가 늘어나면 VB*도 그에 맞게 늘어난다.

클릭하면 아래 사진처럼 버퍼의 element들을 볼수 있다.

VS탭의 Output을 클릭하면 Vertex Shader의 Output을 볼 수 있다.

Vertex Shader 처리가 끝나고 Hull Shader로 넘겨지기 전의 버텍스들이다. 2차원으로 투영되긴 했지만

테셀레이션이나 래스터라이즈가 적용되지 않은 상태이다.

RTV는 Render Target View로, 클릭하면 실제 화면에 표시되는 Rendering Output을 볼수 있다.

노말 값을 보고싶어서 normal을 color output으로 바로 출력하도록 해놨었음. 초라한 예제지만 참아주면 감사하겠음...

Render Target이 늘어나면 마찬가지로 RTV1, RTV2, ... 등으로 개수가 늘어난다.

'Graphics' 카테고리의 다른 글

DirectX 11 Pipeline Stage  (0) 2022.06.07
Tessellation  (0) 2022.06.06
DirectX 디버깅 도구 : Microsoft PIX (2)  (0) 2022.06.06
LOD (Level Of Detail)  (0) 2022.04.27
[OpenGL] Phong Reflection Model에서의 Material Type Setting Table  (0) 2021.11.21