Graphics Programming

OpenGL 프로파일러에 대한 고민 본문

Season 2

OpenGL 프로파일러에 대한 고민

minseoklee 2022. 9. 25. 00:45

토이 프로젝트를 DX12/Vulkan으로 갈아타지 않고 OpenGL로 계속 하는 이유는 여러 가지가 있었다.

  • 여러 렌더링 피처를 직접 구현해보는 것이 가장 큰 목적인데 DX12/Vulkan API에 맞춰 렌더링 엔진의 기반을 다시 추상화하려면 오래 걸린다.
  • OpenGL 프로젝트의 코드베이스가 너무 방대해졌다. 렌더링 코드 외에도 여러 시스템이 있는데 모두 포팅하기에는 양이 너무 많다.

그런데 다름 아닌 개발 도구 때문에 그래픽스 API를 갈아타야 하나 고민 중이다. RDNA2 iGPU 달린 노트북에서 OpenGL 프로젝트를 프로파일링해보려고 했는데 AMD용 OpenGL 프로파일러가 없다... 엥? -_-; 기존의 OpenGL 프로파일러들은 전부 개발이 중단되었고 현재의 Radeon RGP는 DX12/Vulkan만 지원한다. 조금 검색해보다 2017년의 이슈를 발견했는데 최소 이때부터 OpenGL 프로파일러가 없었다는 말이다.

 

RenderDoc은 OpenGL 프레임 디버거로서 아주 잘 써먹고 있지만 GPU Trace 기능은 없고, (Timing 보여주는 컬럼은 실제 GPU time이 아니다. 뭐에 대해 시간을 재는 것인지도 모르겠다) 그나마 데스크탑에는 엔비디아 그래픽카드를 장착했는데, 엔비디아의 NSight Graphics가 OpenGL을 지원한다. 하지만 PIX, NSight Graphics 등에서 DX12 프로파일링하던 때와 달리 OpenGL 프로파일링은 그 결과가 정확하고 상세하게 나오지 않는다. 엔비디아 그래픽카드 달린 데스크탑에서 프로파일링하고 최적화한 다음 노트북에서 결과만 측정해보는 것도 웃기는 워크플로우다.

 

렌더링 피처들 구현하고 나중에 최적화나 해보려고 했는데 제대로 돌아가는 프로파일링 툴이 없으니;; OpenGL 프로젝트는 렌더링 피처만 구현하고 묵혀뒀던 DX12/Vulkan으로 전부 포팅해야 할 판이다. 그런데 이제와서 다시 렌더링 아키텍처부터 세우기는 귀찮고, 그렇다고 OpenGL 프로젝트에 커밋이 쌓일 수록 나중에 포팅해야 하는 코드만 늘어나고... 딜레마에 빠졌다.

Comments