GPU Usage Profiler 模块显示应用程序的 GPU 时间使用情况。只能在运行模式 (Playmode) 下使用 GPU Profiler 或者用于应用程序的构建。不能用于对 Editor 进行性能分析。
Note: If you have Graphics Jobs enabled in the Player Settings, GPU profiling isn’t supported. For more information, see the documentation on Player Settings. Additionally, on macOS, you can profile the GPU only on Mavericks 10.9 and later.
下表列出了 GPU Usage Profiler 模块支持的平台:
平台 | 图形 API | 状态 |
---|---|---|
Windows | DirectX 11、DirectX 12、OpenGL | 受支持 |
Vulkan | 不支持 | |
macOS | OpenGL | 支持。注意:Apple 已废弃对 OpenGL 的支持。 |
Metal | 不支持。改用 XCode 的 GPU 帧调试器 UI。 | |
Linux | OpenGL Core | 受支持 |
Vulkan | 不支持 | |
WebGL | 所有 WebGL | 不支持 |
Android | OpenGL | 在运行 NVIDIA 或 Intel GPU 的设备上受支持。 |
Vulkan | 不支持 | |
iOS、tvOS | Metal | 不支持。改用 XCode 的 GPU 帧调试器 UI。 |
Tizen | OpenGL | 不支持。 |
On Windows, Unity supports Playmode profiling in the Editor with Direct3D 11 and Direct3D 12 APIs only. This is convenient for quick profiling, because it means you don’t need to build the Player; however, the overhead of running the Unity Editor affects the Profiler, which might make the profiling results less accurate.
GPU Usage Profiler 模块的图表有几个不同的类别,可用于调查 GPU 的时间使用情况。要更改图表中类别的顺序,可以在图表的图例中拖放这些类别。还可以单击某个类别的有色图例以切换是否显示。
图表类别 | 描述 |
---|---|
Opaque | 内置渲染管线渲染不透明对象的时间。 |
Transparent | 内置渲染管线渲染透明对象的时间。 |
Shadows/Depth | 内置渲染管线渲染阴影贴图的时间。 |
Deferred Lighting | 内置延迟渲染管线处理光照的时间。 |
PostProcess | 内置渲染管线处理后期处理效果的时间。 |
Other | 处理可编程渲染管线等其他事务的渲染时间。 |
选择 GPU Usage 模块时,下面的详细信息面板将显示应用程序在选定帧内花费的时间的细分信息。可以将时间数据显示为层级表。要更改表视图,请使用详细信息面板中的左上方下拉选单(默认设置为 Hierarchy)。可用视图有:
视图 | 功能 |
---|---|
Hierarchy | 按时间数据的内部层级结构对这些数据分组。此选项以降序列表格式显示应用程序调用的元素,默认按花费的时间排序。还可以按 GPU 时间总量或调用次数对这些信息进行排序。要更改用于对表进行排序的列,请单击该表列的标题。 |
Raw Hierarchy | 以类似于发生计时的调用栈的层级结构显示时间数据。Unity 在此模式中单独列出每个调用栈,而不是像在 Hierarchy 视图中一样将它们合并。 |
选择 GPU Usage Profiler 模块后,此性能分析器的底部面板将显示选定帧的层级时间数据。从层级视图中选择一项即可在右侧面板中查看贡献的细分情况。请参阅有关 Profiler 窗口的文档以进一步了解 Profiler 窗口的功能。
表视图包含以下列:
列 | 功能 |
---|---|
Total | Unity 在特定函数上花费的总时间(以百分比表示)。 |
DrawCalls | 此帧中调用此函数的次数。 |
GPU ms | Unity 在特定函数上花费的总时间(以毫秒为单位)。 |