Xcode 프레임 디버거 툴을 사용하면 애플리케이션의 프레임을 캡처하여 해당 프레임 동안 GPU가 수행한 커맨드를 보고, GPU 메모리의 데이터를 검사하고, 셰이더의 병목 현상을 식별할 수 있습니다. 따라서 GPU 성능을 매우 세세하게 분석할 수 있습니다.
Unity는 다음과 같은 방식으로 Xcode 프레임 디버거와 통합됩니다.
프레임 디버깅은 애플리케이션이 Xcode가 지원하는 플랫폼 및 그래픽스 API에서 실행되는 경우에만 작동합니다. Xcode는 Metal 그래픽스를 사용하는 macOS만 지원합니다. Unity가 다른 API를 사용하는 경우 지원되는 그래픽스 API를 선택할 때까지 Xcode 통합이 비활성화됩니다.
Xcode 프레임 디버거를 사용하여 프레임을 캡처하려면 다음 중 하나를 수행하십시오.
이 섹션에서는 Xcode UI 또는 FrameCapture API를 사용하여 애플리케이션을 실행하고 프레임 캡처를 수행하는 방법을 설명합니다. 이 워크플로는 Metal을 사용하는 모든 플랫폼에서 지원됩니다.
1. Xcode 프로젝트를 만듭니다.
Unity 에디터에서 Xcode 프로젝트를 생성하거나, 다른 Xcode 프로젝트를 사용하여 macOS 애플리케이션을 실행할 수 있습니다.
Unity 에디터에서 Xcode 프로젝트를 빌드하려면 다음 단계를 따르십시오.
다른 Xcode 프로젝트를 사용하여 macOS 애플리케이션을 실행하려면 다음 단계를 따르십시오.
2. 프레임 캡처를 수행할 수 있도록 Xcode 프로젝트 체계를 편집합니다.
또는 Xcode GUI를 사용합니다. 이렇게 하려면 Xcode 문서의 프레임 캡처 활성화 가이드에 따라 프로젝트 체계의 GPU Frame Capture 설정을 Metal로 설정하십시오.
XcScheme API를 사용하여 자동화된 빌드에 유용한 Xcode 프로젝트 체계를 설정할 수도 있습니다. 자세한 내용은 XcScheme API 문서를 참조하십시오.
3. Xcode에서 프로젝트를 실행하고 프레임 캡처를 수행합니다.
Xcode에서 Frame Capture 버튼(카메라 아이콘)을 눌러 데이터의 다음 프레임을 캡처하십시오.
또는 FrameCapture API를 사용하여 스크립트에서 프레임 캡처를 수행할 수도 있습니다. Xcode에서 프레임 캡처 데이터를 분석하는 방법은 Xcode 프레임 디버거 문서를 참조하십시오.
이 섹션에서는 커맨드 라인에서 애플리케이션을 실행하고, FrameCapture API를 사용하여 프레임 캡처를 수행하고, 결과를 디스크에 저장하는 방법을 설명합니다. 중요: 이 워크플로는 iOS에서 지원되지 않습니다. iOS에서 프레임 캡처를 수행하려면 항상 Xcode에서 애플리케이션을 실행해야 합니다.
-enable-metal-capture
플래그를 사용하여 커맨드 라인에서 애플리케이션을 실행합니다. Xcode는 코드가 요청할 때 프레임 캡처를 수행하고 해당 결과를 디스크에 저장합니다.Xcode에서 이러한 데이터를 분석하는 방법은 Apple의 Xcode 프레임 디버거 문서를 참조하십시오.
macOS에서 Xcode 프레임 디버거를 사용하면 Unity 에디터에서 프레임을 분석할 수 있습니다. Xcode를 사용하여 Unity 에디터를 실행하면 Unity 에디터 UI에서 프레임 캡처를 요청할 수 있습니다.
이 섹션에서는 Xcode에서 Unity 에디터를 실행하고, Unity 에디터 UI, Xcode UI 또는 FrameCapture API를 사용하여 프레임 캡처를 수행하는 방법을 설명합니다. 프레임 캡처는 즉시 분석하거나, 해당 결과를 디스크에 저장할 수 있습니다. 이 워크플로는 macOS에서 지원됩니다.
FrameCapture
API를 사용합니다. 자세한 내용은 FrameCapture API 문서를 참조하십시오.Xcode에서 프레임 캡처 데이터를 분석하는 방법은 Apple의 Xcode 프레임 디버거 문서를 참조하십시오.
이 워크플로는 커맨드 라인에서 Unity 에디터를 실행하고, FrameCapture API를 사용하여 프레임 캡처를 수행하고, 프레임 캡처를 디스크에 저장하는 방법을 설명합니다. 이 워크플로는 macOS에서 지원됩니다.
-enable-metal-capture
플래그를 사용하여 커맨드 라인에서 Unity 에디터를 실행합니다. Xcode는 코드가 요청할 때 프레임 캡처를 수행하고 해당 결과를 디스크에 저장합니다.Xcode에서 이러한 데이터를 분석하는 방법은 Xcode 프레임 디버거 문서를 참조하십시오.