Urgent.News

What's breaking now, across thousands of outlets.

Tech

How Do You Tell Whether a Unity Stutter Is From GPU Shader Cost, Bandwidth, or Thread Blocking?

Cycles/Pixel, GPU bandwidth, and a thread timeline read the same frame drop from three angles — so you optimize the right subsystem instead of guessing. A dropped frame in a modern Unity game rarely has a single cause. Higher-fidelity art pushes Shader cost up, more textures increase GPU memory bandwidth, and heavier logic spreads work across threads. A stutter can come from any of these, and…

When troubleshooting a stutter in a Unity game, it is essential to determine whether the issue stems from GPU shader cost, GPU bandwidth, or thread blocking. Each of these factors requires a different optimization strategy. Unity's GOT Online features now include two diagnostic tools to help pinpoint the source of the stutter.

The first tool, Cycles/Pixel, measures the average GPU clock cycles per pixel. High values typically indicate overly complex shaders, which consume more GPU resources per pixel. However, if the Cycles/Pixel value is low but the frame still stutters, the issue may lie elsewhere. Therefore, Cycles/Pixel is primarily useful for identifying shader complexity as the primary cause of the stutter.

The second tool, GPU bandwidth, measures the per-frame read/write volume of data processed by the GPU. Sustained high read/write operations can cause battery drain and lead to stuttering, regardless of the shader complexity. If GPU bandwidth is high during a stutter, it suggests that the problem is related to memory traffic, such as excessive texture streaming or render-target copies, rather than shader calculations.

The third tool, the Timeline, provides a visual representation of thread activity during a frame. It displays up to five threads, including their parent-child relationships and the duration of each function. By analyzing the timeline, developers can identify whether thread blocking or inefficient execution is causing the stutter. This is particularly useful when Cycles/Pixel and GPU bandwidth values appear normal, but the frame still experiences dropped frames.

To determine which subsystem is causing the stutter, follow this order of investigation:

1. If Cycles/Pixel shows high values and bandwidth is low while the timeline appears clean, the primary cause is likely shader complexity. In this case, optimizing the shaders to reduce complexity is the recommended solution.

2. If GPU bandwidth is high, but Cycles/Pixel and the timeline appear normal, the issue is more likely related to memory traffic, such as texture streaming or render-target copies. Optimizing these aspects of the game's assets and processes can help alleviate the stutter.

3. If both Cycles/Pixel and GPU bandwidth are high, or the timeline shows significant idle/waiting threads, the stutter is likely caused by a combination of GPU and thread-related issues. In this scenario, addressing both areas of concern, starting with the subsystem that shows the larger headroom for improvement, is recommended.

It is important to note that a single stutter may not be caused by a single factor. The GOT Online diagnostic tools enable developers to analyze each subsystem independently, allowing for targeted optimizations and avoiding the mistake of optimizing the wrong subsystem. By using these tools, developers can ensure that they are addressing the root cause of the stutter, leading to an improved gaming experience for players.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

GBase Database(GBase 8c) Installation: The Four-Step Workflow from Trust to Deployment

Writing gbase.yml is only the beginning. Installing GBase Database(GBase 8c) requires four steps in a specific order: SSH trust setup, environment validation, environment repair, and cluster…

  • Establish SSH trust between nodes before installation
  • Perform 18 environment checks to validate target machines
  • Use ghactl install command to complete GBase Database deployment

Fixing vibecoded website's errors

Why AI-Generated Supabase Apps Leak User Data, and How to Audit Row-Level Security Before Launch fixier fixier fixier Follow Nov 6 Why AI-Generated Supabase Apps Leak User Data, and How to Audit…

I liked Nginx Proxy Manager, but I wanted a WAF in the same place

If you self-host anything, there is a good chance it sits behind Nginx Proxy Manager (NPM). Add a domain, pick a container, click Let's Encrypt, done. I used it for exactly that reason.

  • Corvus combines Nginx Proxy Manager with a WAF for enhanced security.
  • Written in OpenResty, Go, and React, Corvus is released under Apache-2.0 license.
  • Features include proxy hosting, Let's Encrypt support, and automatic IP bans.

A repair manual that has to know what is broken

A repair manual that has to know what is broken Most "how to fix X" content is a list of steps. It assumes you already know what the fault is.

  • Animated diagrams guide users through appliance repair processes
  • Diagnosis structured as decision tree with key questions
  • Available in English, Chinese, French, and Spanish

More from Friday 6 November →