Quick Reference
Frame Debugger는 렌더링 의심 시 clear·draw·shader pass의 실제 순서를 추적하며, overdraw 보기와 Editor 측정치는 성능 판단을 대신하지 않습니다.
- 기준 버전은 Unity 6.5 (6000.5)입니다. Frame Debugger는 한 프레임에 GPU로 제출한 render target, clear, draw event, shader pass의 순서와 결과를 살펴보는 Editor 분석 도구입니다.
- frame time이 높다는 사실은 Profiler로 먼저 잡고, rendering이 의심될 때 Frame Debugger로 “무엇이 몇 번·어떤 순서로 그려졌는가”를 확인합니다.
- Scene View의 overdraw 보기와 Frame Debugger는 대체 관계가 아닙니다. 전자는 픽셀 겹침을 빠르게 보는 시각화이고, 후자는 실제 render event와 target 전환을 추적합니다.
Frame Debugger 설정
- Enable을 켜면 선택한 frame의 렌더링 이벤트 목록을 탐색할 수 있습니다. 분석 중에는 편집기와 player의 타이밍이 평소와 달라질 수 있으므로, Enable 상태의 fps를 성능 결과로 기록하지 않습니다.
- event 목록은 clear, render target 변경, draw, blit, post-processing pass처럼 프레임을 이루는 단계입니다. 특정 event를 클릭해 그 직후의 Game View 결과와 shader, mesh, material, render target을 연결해서 봅니다.
- remote player를 대상으로 분석할 때는 target graphics API와 연결 상태에 따라 세부 정보가 다를 수 있습니다. 최종 GPU 비용 판단은 해당 플랫폼에서 Profiler GPU timing 및 실제 device capture로 보완합니다.
- UI Canvas, 투명 particle, full-screen effect처럼 화면을 여러 번 덮는 구간은 event 순서를 따라가며 확인합니다. 이름만 비슷한 draw를 개수로 세기보다, 실제 target에 어떤 결과가 누적되는지 봅니다.
이벤트 읽기
text
Camera Clear
Opaque geometry
Shadow / depth pass
Transparent geometry
Canvas draw events
Full-screen post process
Display- 같은 mesh가 여러 번 등장한다고 바로 버그는 아닙니다. depth, shadow, color, motion vector처럼 렌더링 목적이 다른 pass일 수 있습니다. pass 이름과 shader stage를 확인한 뒤 불필요한 중복인지 판단합니다.
- SetPass 또는 material 변화가 자주 보이면 material instance, shader keyword, render queue, canvas 분리를 확인합니다. 같은 shader를 쓰는 것처럼 보여도 keyword나 render state가 달라 batch가 끊길 수 있습니다.
- 투명 UI와 particle은 뒤에서 앞 순서로 여러 픽셀을 다시 그릴 수 있습니다. Frame Debugger는 어느 요소가 먼저/나중에 그려졌는지는 보여 주지만, 실제 픽셀 fill rate 병목 여부는 resolution 또는 render scale 대조 실험과 함께 봅니다.
- 가려진 UI는 alpha 0인지, Canvas.enabled인지, GameObject가 inactive인지에 따라 render event가 달라집니다. 숨김 전략의 정상 여부는 draw event에서 확인하되, 입력 차단은 GraphicRaycaster와 CanvasGroup 카드에서 따로 확인합니다.
함께 보는 도구
- Rendering Profiler 모듈은 frame별 batch, SetPass, triangle, vertex 같은 흐름을 수치로 보는 데 적합합니다. Frame Debugger는 그 수치를 만든 한 프레임의 구조를 확인할 때 씁니다.
- CPU Usage Profiler는 script, physics, UI layout, render submission 병목을 찾습니다. Frame Debugger로 CPU script 비용을 설명할 수는 없습니다.
- Scene View overdraw 보기나 Render Pipeline Debugger는 겹침과 pipeline 상태를 빠르게 가설화할 때 좋습니다. 최종적으로 실제 draw event가 필요한 경우에 Frame Debugger를 엽니다.
자주 틀리는 부분
Frame Debugger의 이벤트 수를 GPU ms로 읽지 마세요. draw가 적어도 고해상도 full-screen pass 하나가 무거울 수 있고, draw가 많아도 매우 단순한 geometry일 수 있습니다. event 구조는 원인 후보를 좁히는 증거이고, 시간은 target device GPU 측정으로 확인합니다.
UI draw event가 보인다고 모두 제거 대상은 아닙니다. Popup 뒤의 HUD가 실제로 보이지 않아도 그려지는지, 그 Canvas가 매 프레임 바뀌는지, 입력과 lifecycle에서 어떤 의도가 있는지를 먼저 확인해야 합니다. Canvas를 무조건 나누거나 끄는 방식은 다른 문제를 만들 수 있습니다.
참고 링크
2 sources