How can developers identify and reduce GPU fragment-stage bottlenecks in Unity mobile games?
In mobile GPU optimization, fragment-stage pressure is often the most expensive part of rendering. Unlike vertex-stage bottlenecks, fragment-stage cost scales directly with the total number of pixels processed and how many times those pixels are repeatedly shaded. This makes render resolution and overdraw the two most critical variables. In this article, we break down how GameOptim analyzes Fragment Shaded and Overdraw metrics, how GOT Online and Gears help locate fragment-heavy bottlenecks, and how developers can optimize rendering pipelines, particles, and UI for better GPU efficiency.
About GameOptim GameOptim helps Unity developers identify memory issues, rendering bottlenecks, and performance regressions through automated profiling and cloud based performance analysis. Explore more: 🌐 Website: www.gameoptim.com https://www.gameoptim.com/?fopt=blog 📘 Blog: www.gameoptim.com/blog/ https://www.gameoptim.com/blog/ 💼 LinkedIn: www.linkedin.com/company/gameoptim/ https://www.linkedin.com/company/gameoptim/ 🎥 YouTube: GO.PerformanceLab https://www.youtube.com/@GO.PerformanceLab 💬 Discord: GameOptim https://discord.gg/4Jh6hj9gRw ⭐ GitHub: GameOptim https://github.com/GameOptim/unity mobile performance guide 💻 Dev: GameOptim https://dev.to/gameoptim https://uwa overseas images.oss us east 1.aliyuncs.com/Blog/HeadImage/OptimizationGuide25%280%29.jpg Summary Fragment stage GPU pressure is primarily determined by: Render resolution pixel quantity Overdraw pixel repetition Key conclusions: Higher resolution increases fragment cost linearly. Overdraw multiplies fragment workload dramatically. Transparent objects like particles and UI are the main overdraw sources. Lowering render resolution and reducing transparent overlap are often the most effective fragment stage optimizations. Conclusion: If GPU Clocks remain high after triangle optimization, fragment stage pressure is usually the next bottleneck. GameOptim’s Fragment Shaded and Overdraw analysis provides the fastest path to identifying and reducing this pressure. Core Concepts 4.4 GPU Fragment Stage Computation Pressure 4.4.1 Render Resolution Like the vertex stage, fragment stage pressure also follows: Computation Amount = Quantity × Complexity In the fragment stage: Quantity = Total pixels rendered per frame This is directly reflected in the Fragment Shaded metric in GameOptim GPU Mode. Fragment Shaded represents: Total Fragment Shader invocations per frame This is approximately equal to the total number of rendered pixels. 85 https://uwa ducument img.oss cn beijing.aliyuncs.com/GameOptim/4.4GPU FragmentStage/85.png This metric is one of the most important GPU indicators in both GameOptim Gears and GOT Online. Why Render Resolution Matters Render resolution defines how many pixels are required for one full screen rendering pass. Higher resolution = more fragment computation. GameOptim’s real device analysis shows recommended tiering strategies: Low end devices: 0.7–0.8× native resolution Mid end devices: 0.8–0.9× native resolution High end devices: 1.0× native resolution For highly competitive games prioritizing fluidity: 0.5× resolution is also common This is one of the most widely used mobile device tier optimization strategies. Resolution Scaling Example Device: 1080×1920 Total pixels: ≈ 2.0 million If render scale becomes: 0.7× width × 0.7× height New total: 0.49× original ≈ 1.0 million pixels Result: Fragment stage workload is reduced by nearly 50% This often directly lowers GPU Clocks and thermal pressure. This relationship is frequently validated through GameOptim GPU reports. Why Fixed Scale Is Not Enough A common issue: Some low end devices still have extremely high native resolutions. Example: 1080×2360 Total pixels: ≈ 2.5 million Compared to 1080×1920: +25% fragment workload This means: A fixed scale factor may still overload low end GPUs. GameOptim recommends: Use a fixed pixel budget per device tier Instead of: Fixed percentage scaling This makes device tier optimization far more accurate. How to Reduce Resolution Without Blurring UI Directly lowering Render Scale also affects UI clarity. This is usually unacceptable. For URP projects, GameOptim recommends: Camera Stacking Render 3D scene into a Render Texture RT Display the RT using RawImage under the UI camera Benefits: Reduce 3D rendering resolution Keep UI at full native resolution This approach is commonly used in projects analyzed through GOT Online. 4.4.2 Overdraw Resolution defines pixel count per pass. But: Overdraw defines how many times each pixel is rendered. Formula in GameOptim GPU Mode: Total Overdraw simulated = Fragment Shaded ÷ 1080×1920 standard pixels This reflects overall overdraw pressure. 86 https://uwa ducument img.oss cn beijing.aliyuncs.com/GameOptim/4.4GPU FragmentStage/86.png GameOptim uses this metric to quickly identify fragment heavy scenes. Understanding Overdraw Sources Unity render order: RenderQueue < 2500 → Opaque front to back RenderQueue 2500 → Transparent back to front For opaque objects: Depth testing eliminates hidden pixels before fragment shading. This makes opaque overdraw relatively low. Ideal: Opaque Overdraw ≈ 1.0 This is the most efficient state. Main Source of High Overdraw In production, high overdraw is usually caused by: Particle systems UI layers Because: Transparent rendering cannot use early depth rejection effectively. This causes repeated fragment shading. GameOptim Gears uses Overdraw Snapshot to identify these hotspots. Overdraw Snapshot Analysis During testing: Click Dump GameOptim records: Overdraw per camera Captured frame Camera based Overdraw heatmap Heatmap rule: Brighter = higher Overdraw This helps identify: Which effects cause heavy overlap Which pixels are repeatedly wasted 87 https://uwa ducument img.oss cn beijing.aliyuncs.com/GameOptim/4.4GPU FragmentStage/87.png 88 https://uwa ducument img.oss cn beijing.aliyuncs.com/GameOptim/4.4GPU FragmentStage/88.png This is one of the most efficient GPU diagnosis workflows in GOT Online. Hidden Overdraw from Pipeline Passes Not all fragment cost comes from visible objects. Additional sources: Post processing Copy Color Copy Depth Blit operations These redraw the screen and increase fragment pressure. Signal: Total Overdraw Sum of camera Overdraw This usually indicates hidden pipeline overhead. GameOptim reports can detect this immediately. 4.4.2.1 Improper Render Order If distant opaque objects render before near objects: Hidden pixels are drawn unnecessarily. This creates overdraw. Common example: Terrain. Because terrain spans near and far areas, sorting may become inefficient. Solution: Adjust Render Queue: Render: Characters first Props second Terrain last This improves Early Z efficiency. Important: Most effective on low end GPUs without HSR. 4.4.2.2 Particle Systems Particles are one of the largest fragment stage pressure sources. GameOptim provides two detection methods: Method 1 Test particles in an isolated scene. Measure: GPU Clocks Fragment Shaded Overdraw Using Gears. Method 2 Use GameOptim local resource detection. It directly predicts: High overdraw particles. 89 https://uwa ducument img.oss cn beijing.aliyuncs.com/GameOptim/4.4GPU FragmentStage/89.png Particle Optimization Methods 1 Keep only critical layers Example: For fire: Keep: Core flame Remove: Smoke Sparks Haze This is standard device tier optimization. 2 Limit Max Particles Before: 90 https://uwa ducument img.oss cn beijing.aliyuncs.com/GameOptim/4.4GPU FragmentStage/90.png After Max Particles = 10: 91 https://uwa ducument img.oss cn beijing.aliyuncs.com/GameOptim/4.4GPU FragmentStage/91.png Huge fragment savings. 3 Reduce particle screen coverage Large particles create larger overlap. Wasteful cases: Large transparent borders Empty square textures Solution: Crop textures tightly. 4 Reduce lifetime Some particles continue consuming GPU after visual contribution ends. Shorten lifetime. Deactivate explicitly. 5 Animation Frame Baking Convert layered particle effects into flipbook animation. Result: 10 layers → 1 layer Huge Overdraw reduction. Widely used in large scale mobile games. 6 Offscreen Particle Rendering Render particles into lower resolution RT. Advantages: Particles tolerate blur well. Cost: Minor copy overhead. Benefit: Major fragment reduction. GameOptim commonly identifies these opportunities in particle heavy scenes. 4.4.2.3 UI UI is another major transparent overdraw source. 1 Disable hidden full screen UI When one UI covers another: Disable the hidden layer. Prevents unnecessary fragment cost. 2 Enable CullTransparent Mesh For UI elements with: Alpha = 0 Enable: CullTransparent Mesh Benefits: Keeps input events Skips rendering Reduces Overdraw. 3 Reduce Mask usage Masks increase: Overdraw DrawCalls Use: RectMask2D instead. 4 Optimize URP UI Pipeline Watch for: Copy Color Copy Depth If UI and scene share the same RendererPipelineAsset: This causes redundant rendering. GameOptim recommends: Separate RendererData for: Scene camera UI camera This reduces bandwidth waste. Best Practices Use device tier render resolution budgets Prefer fixed pixel budgets over fixed scale Use RT rendering to preserve UI clarity Track Fragment Shaded and Overdraw together Analyze particle systems separately Crop transparent textures aggressively Disable unnecessary UI layers Reduce pipeline Copy/Blit passes Validate fragment pressure using GOT Online and Gears Key Takeaways Fragment stage pressure usually dominates GPU cost in mobile games. Render resolution directly controls fragment workload. Overdraw multiplies fragment cost significantly. Particles and UI are the biggest transparent overdraw sources. Hidden pipeline passes can create invisible fragment overhead. GameOptim, GOT Online, and Gears provide an effective workflow for fragment stage diagnosis and optimization. FAQ Q1: What does Fragment Shaded mean? It represents total fragment shader invocations per frame. Q2: Is lowering resolution always the best GPU optimization? It is often the fastest, but must be balanced against image quality. Q3: What causes high Overdraw most often? Transparent particles and UI. Q4: Why is UI Overdraw expensive? Because transparent UI layers stack and bypass efficient depth rejection. Q5: How can I reduce particle Overdraw without losing visual quality? Use tiered particle layers, flipbook baking, and cropped textures. Continue reading the series 1. Why Do Mobile Games Crash, Lag, or Overheat? A Unified Framework for CPU, GPU, and Memory Optimization in Unity https://www.gameoptim.com/blog/post/OptimizationGuide1 2. How to Control Runtime Memory in Unity Mobile Games: PSS Standards, Memory Profiler Analysis, and Optimization Workflows https://www.gameoptim.com/blog/post/OptimizationGuide2 3. Common Resource Memory Issues in Unity Mobile Games https://www.gameoptim.com/blog/post/OptimizationGuide3 4. Why Is Texture Memory So High in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide4 5. How Do Vertex Count, Vertex Attributes, and Read/Write Settings Affect Mesh Performance in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide5 6. How Can You Reduce Animation Memory Usage and Runtime Overhead in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide6 7. How Can You Reduce Audio Memory Usage and Playback Overhead in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide7 8. How Can You Reduce Material Count and Avoid Material Related Performance Waste in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide8 9. How Can You Reduce Render Texture Memory Usage and Rendering Overhead in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide9 10. What Causes Excessive Shader Memory Usage and Variant Explosion in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide10 11. Why Do Font and Particle System Resources Consume Excessive Memory in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide11 12. Why Does Mono Heap Memory Keep Growing and Trigger GC Spikes in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide12 13. Why Is Memory Usage Still High After Optimizing Unity Resources? https://www.gameoptim.com/blog/post/OptimizationGuide13 14. What Defines a CPU Bottleneck in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide14 15. Unity Rendering CPU Optimization: Why Is Rendering Time So High? https://www.gameoptim.com/blog/post/OptimizationGuide15 16. What Causes UI Performance Bottlenecks in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide16 17. Is Unity Physics Wasting CPU Time on Mobile? How to Detect and Reduce Hidden Physics Overhead https://www.gameoptim.com/blog/post/OptimizationGuide17 18. Why Is Unity Animation Taking Too Much CPU on Mobile? https://www.gameoptim.com/blog/post/OptimizationGuide18 19. How to Reduce Particle System CPU Spikes and Runtime Overhead in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide19 20. How Can I Reduce Unity Loading Time and Avoid Runtime Stutters? https://www.gameoptim.com/blog/post/OptimizationGuide20 21. How Can I Optimize Unity Logic Code, Lua, and Hotfix Runtime Performance? https://www.gameoptim.com/blog/post/OptimizationGuide21 22. How Do I Identify GPU Bottlenecks in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide22 23. How can developers accurately determine whether a Unity mobile game is GPU Bound using GPU Clocks? https://www.gameoptim.com/blog/post/OptimizationGuide23 24. How can developers identify and optimize GPU vertex stage bottlenecks in Unity mobile games? https://www.gameoptim.com/blog/post/OptimizationGuide24 26. How to Reduce Shader Complexity in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide26 27. How to Optimize Post processing in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide27 28. How to Reduce GPU Bandwidth in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide28 29. Why Does My Unity Mobile Game Overheat, Drain Battery Fast, and Drop FPS After a While? https://www.gameoptim.com/blog/post/OptimizationGuide29