anv: Support I915_FORMAT_MOD_4_TILED_DG2_RC_CCS
What does this MR do and why?
Enables support for the I915_FORMAT_MOD_4_TILED_DG2_RC_CCS
modifier in anv. This improves performance for some games (TODO: include by how much). For example, a Strange Brigade benchmark is helped by 12%. Other benchmarks have single-digit percentage improvements in performance. The implicit and explicit layout code paths were locally tested with vkcube and gamescope, respectively.
In the middle of this MR is a refactor to the isl_drm_modifier_info
struct: the aux-usage field is replaced with a couple booleans which describe the type of compression supported. This refactor is done to avoid issues that would arise with ISL and anv picking different aux-usages otherwise. Unfortunately this refactor requires updating every driver that's been using the aux-usage field. On the positive side: for crocus and hasvk, this just means deleting unused code. For iris and anv, this mostly means making use of the isl_drm_modifier_has_aux
function instead of open-coding an aux-usage check.
/cc @fjdegroo, @kwg, @llandwerlin, @jxzgithub