Skip to content

isl: Provide a module to help with aux resolves and other items

Nanley Chery requested to merge nchery/mesa:wip/refactor/isl-aux-info into master

Gen12 included many new uses of compression: Stencil + CCS, Media compression, HiZ + CCS, and MCS + CCS. In hopes of preemptively reducing the amount of required code churn for such updates in the future (as well as to reduce complexity), this MR provides a generic interface which manages aux resolves in ISL.

The feature differences between this and what's in iris is:

  • Support for media compression. MC behaves differently from many other usages of CCS, so it was useful to implement this support upfront, while designing the interfaces.
  • Optimizations for full render target writes. For example, after a full RT write occurs with CCS_E in the PARTIAL_CLEAR state, finish_write() returns COMPRESSED_NO_CLEAR instead of COMPRESSED_CLEAR.

A performance suggestion for main-surface invalidating/replacing writes is given as a comment instead of adding a boolean to prepare_access(). This avoids extra validation and should be simple enough for the caller to handle.

FYI: @jekstrand, @kwg, @sagarghuge, @rantogno

Edited by Nanley Chery

Merge request reports