Skip to content

panfrost: Dirty tracking, the easy part

Alyssa Rosenzweig requested to merge alyssa/mesa:redo-dirty-v2 into main

With last week's overhead reduction opts landed, RSD state emit is substantially faster. However, state emit routines still execute way too often. Let's track state changes and cache descriptors at the batch level for an additional performance improvement. Compared to current main, these patches yield

  • 38% improvement in draws/second on drawoverhead test 1
  • 9% reduction in total time on an apitrace trace of Chromium rendering the Collabora website

This is the 'easy' part of dirty tracking, requiring no invasive changes. The 'hard' part will be dirty tracking uniform uploads and vertex attributes, since the respective routines are spaghetti involving all sorts of state. Those will need to be refactored considerably to be dirty tracked effectively, that's coming next.

Merge request reports