How Can Unity Developers Analyze GPU Geometry and Shader Complexity with GOT Online?
Since the launch of the Mali GPU Counter module, many projects have used GPU shading and bandwidth data to identify high-pressure scenes and performance bottlenecks. As the need for GPU optimization continues to grow, GameOptim GOT Online now provides additional GPU metrics in its latest reports, helping developers better understand and locate GPU pressure. In Overview mode, developers can analyze GPU geometry processing and GPU Shader Cycles through the Mali GPU Counter module.
GOT Online provides several metrics for investigating GPU pressure on supported Mali devices: GPU Geometry helps developers analyze how many primitives are submitted to the GPU and how many remain visible after GPU side culling. GPU Shader Cycles breaks shader processing into different categories to help identify potential sources of shader complexity. CPU, GPU, and battery temperatures provide additional information for investigating device heat. Timeline can now display thread names, making thread activity easier to identify. AssetBundle residency in Resource mode helps developers investigate memory that may remain resident during runtime. How Can GPU Geometry Help Identify Rendering Pressure? Rendering geometry is an important source of GPU pressure. In GOT Online Overview mode, the Triangle metric can be used to identify scenes with a high number of rendered triangles. https://uwa overseas public.oss us east 1.aliyuncs.com/uploads/markdown/422d9c9e b24d 4a58 8c62 4d0f2fdc8944.png A high number of rendering triangles can have different causes. One possibility is that the models themselves are too complex. Common techniques such as LOD and HLOD can simplify distant models and significantly reduce the number of rendered triangles without affecting visual quality. Another possibility is that large models, such as terrain or large buildings, have not been properly split. In this case, relatively few triangles may actually enter the view volume, while many triangles from large models are still submitted to the GPU. GOT Online's new GPU Geometry metrics can provide an initial way to investigate this situation. https://uwa overseas public.oss us east 1.aliyuncs.com/uploads/markdown/c5bb4062 fdce 4e12 92d6 d1261d6f4a8e.png What Do Total and Visible Primitives Mean? Total Primitives The total number of primitives submitted to the GPU. This value is generally equivalent to the total number of rendering triangles reported by the engine. Visible Primitives The triangles that remain for rendering on the GPU after various culling operations. Visible primitives do not include triangles that are: Culled because they are outside the view volume Culled because of their facing direction Therefore, in an ideal 3D scene, the number of visible primitives should generally be close to or above 50% . For many models, approximately half of the triangles are culled because of their facing direction. If the visible primitive ratio is very low from certain viewing angles, the scene may have the second type of problem described above. Developers can then inspect large models submitted to the GPU from those angles and optimize the scene accordingly. https://uwa overseas public.oss us east 1.aliyuncs.com/uploads/markdown/c5a4a77a 3e6b 41a4 8db0 6f22d7ba3f22.png Why Should Developers Reduce GPU Primitive Processing? Processing too many GPU primitives can have a significant impact on device bandwidth and power consumption. Where possible, unnecessary geometry should be culled on the application side, reducing the number of primitives sent to the GPU. Because Total Primitives is generally equivalent to the total number of rendering triangles reported by the engine, developers can also use this metric as an additional reference when evaluating whether the number of rendered triangles being processed is reasonable. How Can GPU Shader Cycles Reveal Shader Complexity? Excessive shader complexity is one of the major causes of GPU pressure. Areas such as post processing, large terrain, water, character models, and particle effects can all contain highly complex shaders. To help developers investigate shader complexity, GOT Online provides more detailed GPU Shader Cycles metrics in its reports. Shader Cycles represents the number of GPU cycles consumed by shader processing and provides an indication of shader complexity during testing. https://uwa overseas public.oss us east 1.aliyuncs.com/uploads/markdown/548b7b75 605a 4546 a0a3 4b32287e4fed.png In addition to the total Shader Cycles value, GPU Shader Cycles provides four additional metrics: Shader Arithmetic Cycles Shader Interpolator Cycles Shader LoadStore Cycles Shader Texture Cycles These metrics help developers identify which part of shader processing contributes to high shader complexity, including: Mathematical calculations Vertex to pixel interpolation Register read/write operations Texture processing By comparing these values in scenes with high shader complexity, developers can identify the relevant bottleneck and investigate shader complexity more precisely. What Other GPU and Performance Metrics Were Added? In addition to the Mali GPU Counter module, this update also refines several other data items in GOT Online. 1. How Can Temperature Data Help Locate Device Heat? The hardware information section in Overview mode now includes three temperature metrics: CPU Temperature GPU Temperature Battery Temperature These values provide additional information for investigating potential sources of device heat. https://uwa overseas public.oss us east 1.aliyuncs.com/uploads/markdown/89efa871 c1ba 492b baa8 b1a0eca3c788.png 2. Can Timeline Display Thread Names? Yes. Timeline now supports displaying thread names, such as the Main Thread and Render Thread . https://uwa overseas public.oss us east 1.aliyuncs.com/uploads/markdown/1ea8ea2e 33db 424c 9b71 23c62eafe24b.png This makes it easier to identify the specific threads associated with different activities during performance analysis. 3. How Can AssetBundle Residency Help with Unity Memory Analysis? The Resource mode in GOT Online Overview now provides AssetBundle residency information . When investigating memory issues, developers may find that total Unity memory usage is relatively high while major resources and Mono memory do not account for the increase. In this situation, other types of memory should also be considered, including memory retained by AssetBundles. https://uwa overseas public.oss us east 1.aliyuncs.com/uploads/markdown/d6bd6c56 e23d 421e 8c36 e116888f7adf.png In GOT Online Overview's Resource mode, developers can inspect resource residency during runtime. When resident memory is relatively high, developers can optimize their caching strategy to reduce the number of retained resources and consequently reduce Unity memory usage. How Can These Metrics Improve GPU and Memory Analysis? The latest GOT Online update provides more detailed data for several areas of performance analysis: | Area | Metric / Feature | What It Helps Analyze | | | | | | GPU Geometry | Total Primitives / Visible Primitives | Rendering geometry and GPU primitive processing | | GPU Shaders | Shader Cycles | Overall shader complexity | | GPU Shaders | Arithmetic / Interpolator / LoadStore / Texture Cycles | Different sources of shader processing cost | | Hardware | CPU / GPU / Battery Temperature | Potential sources of device heat | | Thread Analysis | Thread Names | Identifying thread activity in Timeline | | Memory | AssetBundle Residency | Resources retained in memory during runtime | These additional metrics provide more detailed data for developers investigating GPU pressure, shader complexity, thread activity, and memory usage. Key Takeaways Total Primitives shows the total number of primitives submitted to the GPU. Visible Primitives shows the triangles remaining after GPU side culling. A very low visible primitive ratio from certain viewing angles may indicate that large models are submitting unnecessary geometry to the GPU. Shader Cycles provides a way to investigate GPU shader processing complexity. Arithmetic, Interpolator, LoadStore, and Texture Cycles provide more detailed shader processing data. Overview hardware information now includes CPU, GPU, and battery temperatures. Timeline can display thread names to make thread activity easier to identify. Resource mode now provides AssetBundle residency information for additional memory analysis. FAQ What does Total Primitives measure? Total Primitives represents the total number of primitives submitted to the GPU. It is generally equivalent to the total number of rendering triangles reported by the engine. What does Visible Primitives measure? Visible Primitives represents the triangles that remain for rendering on the GPU after various culling operations. What does Shader Cycles measure? Shader Cycles represents the number of GPU cycles consumed during shader processing and is used to show shader complexity during testing. What are the four GPU Shader Cycles categories? GOT Online provides: Shader Arithmetic Cycles Shader Interpolator Cycles Shader LoadStore Cycles Shader Texture Cycles What temperature information is available in Overview mode? The hardware information section includes CPU Temperature, GPU Temperature, and Battery Temperature. What is AssetBundle residency? AssetBundle residency refers to AssetBundle memory that remains resident during runtime. GOT Online Resource mode can be used to inspect this residency and help developers investigate memory usage. New users can get 2 hours of free GOT Online testing time after completing registration. https://www.gameoptim.com/?fopt=blog About GameOptim GOT Online GOT Online is a cloud based performance analysis platform with online performance reports for deeper analysis and collaboration. Based on visualized data display, providing targeted analysis suggestions and performance parameter trends, facilitating efficient quality control execution. To meet a wide range of optimization needs, GOT Online provides four major analysis modes: • Overall Performance Analysis • Mono Heap Memory Analysis • Lua Performance Analysis • GPU Performance Analysis