New functions|New GPU performance optimization solution

GPU optimization ushered in a new milestone! We are well aware that the pursuit of high-quality graphics in mobile games is increasing day by day, so UWA has always focused on optimizing the GPU performance of mobile devices to ensure your gaming experience is perfect. However, performance differences between different GPU chips and possible GPU bottlenecks make optimization more challenging. In the newly upgraded UWA SDK version 2.4.8, we launched the UWA GOT Online GPU mode , bringing a new GPU performance optimization solution.

Now, let us introduce these important functions one by one.

  • Performance briefing : This page can quickly help developers control the GPU performance pressure of the project
  • GPU Analysis : Analyze GPU performance pressure from the perspectives of rendering and bandwidth
  • Rendering resource analysis : enable the texture and grid resource analysis function to locate the specific usage of these resources
  • Overdraw Snapshots : Easier to locate Overdraw stressors
  • GPU temperature : Quickly determine whether the main cause of device heating is from the GPU

performance briefing

As shown in the figure below, UWA lists the FPS and GPU Clocks data during the test, and marks the GPU Bound frame with a light red background. GPU Bound indicates the high-pressure range of GPU performance. At this time, the number of clock cycles consumed by GPU calculation is too high, which may not be able to support full frame operation.

At the same time, UWA also lists the parameters of the four modules of GPU performance, rendering statistics, texture resource analysis and grid resource analysis and the corresponding optimization task queue under the chart.

The purpose of the briefing is to help you quickly filter out high-priority optimization tasks among the vast number of performance indicators. If you need to do a deeper dive for some indicators, you can use the functions below for analysis.

GPU analysis

GPU rendering analysis

GPU Clocks is the main indicator to measure GPU performance. Combined with this curve, developers can quickly judge the GPU pressure in each scene.

At the same time, UWA also shows the average and performance trends of GPU Shaded, GPU Shader Cycles, and GPU Primitive indicators. When the GPU Clocks in a certain scene are high, developers can quickly determine which parameters are causing the GPU rendering calculation pressure through the recommended values ​​and performance curves of these indicators, and take corresponding optimization solutions.

GPU bandwidth analysis

Due to the high read and write bandwidth of the GPU will cause a lot of heat and power consumption, developers need to focus on it.

Among the related parameters, parameters such as GPU Texture Filter, GPU Stall, GPU Texture Cache Miss and GPU Primitive are also displayed. For example, when the GPU Stall is high, it means that the GPU waits for a long time when initiating external read and write requests, and there is a high bandwidth pressure.

It should be noted that since the parameters collected by UWA on GPU chips of different manufacturers are different at present, the indicators related to each interface may change due to different GPUs.

Rendering resource analysis

When there are more texture and grid resources involved in rendering and more samples are taken, the resource memory will increase, and the GPU bandwidth and GPU Clocks will also increase accordingly. In order to ensure that the resources involved in rendering calculations are fully utilized, developers can manually enable texture and grid resource analysis functions to locate the specific usage of these resources.

Texture Resource Analysis

On the texture resource analysis page, in addition to parameters such as the memory, quantity, and size of texture resources, we can also view data such as texture rendering utilization, whether Mipmap is enabled, and Mipmap sampling rate.

Through texture rendering utilization, developers can quickly locate texture resources that have always been in memory but never participated in rendering, so as to check whether there are invisible rendering objects in the scene, unreasonable packaging or loading strategies, etc. Such wasteful factors.

And by checking whether the sampling rate of Mipmap 0 layer is low (less than 20%), you can judge which texture resources are too large in size, and developers can reduce the resolution of these texture resources to relieve memory and GPU pressure without affecting visual effect.

Grid resource analysis

On the grid resource analysis page, in addition to the resource rendering utilization similar to texture resources, we can also view the maximum screen ratio and minimum rendering density data of the grid. Grid resources with a rendering utilization rate of 0 are similar to texture resource optimization methods, and the maximum screen ratio and minimum rendering density of the grid can be used to check whether the accuracy of the grid resource is reasonable.

When the maximum screen-to-body ratio of the grid is less than 0.02%, it means that the grid only occupies a small part of the mobile phone screen, and the visibility is low. If the complexity of the grid is high, it means that the precision of the grid is too high, and the developer can consider replacing it with a lower precision model.

Rendering density indicates the number of vertices in the grid per 10,000 pixels on average. If the value is greater than 1000, it means that we have drawn an overly complex grid in a small picture. Therefore, when the rendering density of this grid is the smallest, the value is still higher than 1000, then the number of vertices of this grid is likely to be too high, developers can consider reducing the surface of these grid resources, or use LOD Graded processing.

Overdraw snapshot

Overdraw indicates the multiple that the entire screen is filled in a single frame during the running of the project. During the running of the game, the overlap of translucent objects in the scene will cause the same pixel to be drawn multiple times in one frame, which will easily cause the Overdraw to be too high and cause the device to heat up.

In the Overdraw snapshot module, UWA converts Fragment Shaded (total number of rendered pixels) and device rendering resolution to obtain the Overdraw calculation value to help developers troubleshoot the Overdraw situation of the project.

When testing the GPU mode, the developer can manually dump the specific Overdraw situation in the scene.

In the Overdraw snapshot module, you can view the Overdraw situation of each camera in the Dump frame. Among them, the Overlay-UI (UWA) camera shows the Overdraw information of the Overlay part in UGUI, that is, all the Overdraw information that is not hung on the UI under any camera.

Below the histogram, you can also view the Overdraw heat map of the selected histogram. The brighter the color, the more times the pixel is filled in the current frame. The higher the Overdraw, the greater the pressure on the GPU.

Developers can combine report screenshots and Overdraw heat maps to more easily locate the Overdraw pressure source of the project.

GPU temperature

When the GPU pressure is high, it is easy to cause the device to heat up. UWA counts the device’s GPU, CPU, and battery temperatures so that developers can determine whether the device’s heating is mainly caused by the GPU.

If it is confirmed that the heat is caused by GPU pressure, you can further check the parameters related to the GPU temperature, such as FPS, GPU Clocks, GPU Bandwidth, etc. The power will interact with the GPU temperature, and it is also an important parameter to reflect energy consumption and heat generation.

Here is a special suggestion for everyone: due to the close location of the CPU and GPU chips, when the CPU is under high pressure and generates heat, it may also drive the GPU to heat up. Therefore, when optimizing the GPU heating problem, it is also necessary to properly combine the CPU pressure for investigation and analysis. In general, when the project has fast power consumption and high temperature, developers can start from GPU performance pressure, GPU bandwidth, CPU main thread, CPU sub-thread, etc. to optimize the heating problem.

More UWA SDK 2.4.8 new features

NEW

  • GOT Online-Overview mode supports sub-thread RBI analysis
  • Support controlling UWA SDK configuration items from POCO scripts
  • Added screenshot upload option

In this update, UWA further splits and refines the cause of the GPU pressure of the project, bringing you an unprecedented optimization experience. Our goal is to allow you to locate the source of GPU pressure for your project more conveniently and efficiently, bid farewell to blind guessing, and embrace precise optimization.

If you are interested in new features, please go to the UWA official website to download the latest version of UWA SDK 2.4.8:
UWA | Committed to providing project development solutions for game VR and AR applications | Simple optimization, simple optimization | Yuhu Technology

Guess you like

Origin blog.csdn.net/UWA4D/article/details/132166961
Recommended