Xcode에는 애플리케이션의 프레임을 캡처하고, 해당 프레임 동안 GPU가 실행하는 커맨드를 확인하고, GPU 메모리의 데이터를 검사하고, 셰이더의 병목 현상을 해결하기 위한 프레임 디버거 툴이 포함되어 있습니다. 이 툴을 사용하여 GPU 성능을 분석할 수 있습니다.
Unity는 다음 방식으로 Xcode 프레임 디버거와 통합합니다.
프레임 디버깅은 애플리케이션이 Xcode가 지원하는 플랫폼과 그래픽스 API에서 실행 중인 경우에만 작동합니다. Unity 2019.2부터 Xcode는 Metal 그래픽스를 탑재한 macOS만 지원합니다. Unity가 다른 API를 사용하는 경우 Xcode 통합은 지원되는 그래픽스 API를 선택할 때까지 비활성화됩니다.
Xcode 프레임 디버거를 사용하여 애플리케이션에서 프레임을 캡처하기 위해 다음 중 하나를 수행할 수 있습니다.
FrameCapture
API를 사용하여 프레임 캡처를 요청합니다. Xcode에서 프레임 캡처를 즉시 분석하거나, 디스크에 저장할 수 있습니다. 이 워크플로는 Metal을 사용하는 모든 플랫폼에서 지원됩니다.FrameCapture
API를 사용하여 프레임 캡처를 디스크에 저장합니다. 이 워크플로는 iOS에서 지원되지 않습니다.이 섹션에서는 Xcode UI 또는 FrameCapture
API를 사용하여 애플리케이션을 시작하고 프레임 캡처를 수행하는 방법을 설명합니다.
이 워크플로는 Metal을 사용하는 모든 플랫폼에서 지원됩니다.
XcScheme
API를 사용하여 Xcode 프로젝트 체계를 설정할 수도 있습니다. 이는 자동화된 빌드에 유용합니다. 자세한 내용은 XcScheme API 문서를 참조하십시오.FrameCapture
API를 사용하여 스크립트에서 프레임 캡처를 수행할 수도 있습니다. 자세한 내용은 FrameCapture API 문서를 참조하십시오.Xcode에서 프레임 캡처 데이터를 분석하는 방법에 대한 자세한 내용은 Xcode 프레임 디버거 문서를 참조하십시오.
이 섹션에서는 커맨드 라인에서 애플리케이션을 실행하고 FrameCapture
API를 사용하여 프레임 캡처를 수행하고 그 결과를 디스크에 저장하는 방법을 설명합니다.
이 워크플로는 iOS에서 지원되지 않습니다. iOS에서 프레임 캡처를 수행하려면 항상 Xcode에서 애플리케이션을 실행해야 합니다.
-enable-metal-capture
플래그를 사용하여 커맨드 라인에서 애플리케이션을 실행합니다. Xcode는 코드가 요청하면 프레임 캡처를 수행하고 그 결과를 디스크에 저장합니다.Xcode에서 이 데이터를 분석하는 방법에 대한 자세한 내용은 Xcode 프레임 디버거 문서를 참조하십시오.
macOS에서 Xcode 프레임 디버거를 사용하면 Unity 에디터에서 프레임을 분석할 수 있습니다. Xcode를 사용하여 Unity 에디터를 실행하면 Unity 에디터 UI에서 프레임 캡처를 요청할 수 있습니다.
이 섹션에서는 Xcode에서 Unity 에디터를 실행하고 Unity 에디터 UI, Xcode UI 또는 FrameCapture
API를 사용하여 프레임 캡처를 수행하는 방법을 설명합니다. 프레임 캡처를 즉시 분석하거나, 그 결과를 디스크에 저장할 수 있습니다.
이 워크플로는 macOS에서 지원됩니다.
FrameCapture
API를 사용하여 스크립트에서 프레임 캡처를 수행할 수도 있습니다. 자세한 내용은 FrameCapture API 문서를 참조하십시오.Xcode에서 프레임 캡처 데이터를 분석하는 방법에 대한 자세한 내용은 Xcode 프레임 디버거 문서를 참조하십시오.
이 워크플로에서는 커맨드 라인에서 Unity 에디터를 실행하고 FrameCapture
API를 사용하여 프레임 캡처를 수행하고 해당 프레임 캡처를 디스크에 저장하는 방법을 설명합니다.
이 워크플로는 macOS에서 지원됩니다.
-enable-metal-capture
플래그를 사용하여 커맨드 라인에서 Unity 에디터를 실행합니다. Xcode는 코드가 요청하면 프레임 캡처를 수행하고 그 결과를 디스크에 저장합니다.Xcode에서 이 데이터를 분석하는 방법에 대한 자세한 내용은 Xcode 프레임 디버거 문서를 참조하십시오.