Skip to content

micro ms

killown edited this page Mar 16, 2026 · 1 revision

Metric: micro total ms (True Hardware Occupancy)


Executive Summary

micro total ms provides a granular breakdown of the GPU workload. While gpu_time_ms tracks the main render pass, micro total ms captures the entire hardware lifecycle, including driver handshakes and final buffer resolves.

  • Formula: micro_driver_ms + gpu_time_ms + micro_resolve_ms
  • Purpose: Identifies hidden "leakage" in the graphics pipeline that aggregate metrics miss.

The Micro Breakdown

1. micro_driver_ms (Submission Overhead)

This measures the "Driver Lag." It is the time taken by the CPU to translate high-level API calls (wgpu/Vulkan) into actual hardware binary.

  • High values: Indicate you are calling too many small draw commands.
  • The Fix: Use instancing or combine buffers to reduce the driver's workload.

2. micro_resolve_ms (Finalization)

This measures the time spent on the "clean up" phase. This includes:

  • MSAA Resolve: Converting a multi-sampled buffer into a single-sampled one for display.
  • MIP Generation: Calculating texture levels on the fly.
  • The Fix: Lower your Anti-Aliasing (MSAA) settings if this number climbs.

Why this number matters

In your log entry, micro_total_ms (7.03ms) is higher than the raw gpu_time_ms (6.93ms). That 0.1ms gap is the "Hidden Tax" of the graphics stack.

  1. Precision Triage: If gpu_time_ms is low but delta_ms is high, check these micro-metrics. You might find that the driver or the resolve phase is eating your frame budget.
  2. Driver Efficiency: Watching micro_driver_ms across different kernels or GPU drivers (Mesa vs. Proprietary) reveals exactly which driver has the lower overhead for your specific hardware.

Troubleshooting

Field Observation Likely Cause
micro_driver_ms High (> 0.5ms) Too many individual draw calls. Driver is overwhelmed.
micro_resolve_ms High (> 0.5ms) Expensive MSAA or heavy post-processing effects.
micro_total_ms Matches delta_ms Your GPU is 100% saturated. No room for error.

The Goal

For a high-performance engine, micro_total_ms should remain within 0.2ms of the raw gpu_time_ms. If the gap widens, you are losing performance to API overhead and pipeline "bubbles" rather than actual rendering complexity.

Clone this wiki locally