mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-21 04:20:24 +01:00
isl: drop min row pitch alignment when set by the driver
When the caller of the isl_surf_init() specifies a row pitch, do not consider the minimum CCS requirement if it's incompatible with the caller's value. isl_surf_get_ccs_surf() will check that the main surface alignment matches CCS expectations. v2: Simplify checks (Nanley) v3: Add Comment about isl_surf_get_ccs_surf() (Jason) Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Cc: <mesa-stable@lists.freedesktop.org> Fixes:a3f6db2c4e("isl: drop CCS row pitch requirement for linear surfaces") Reviewed-by: Nanley Chery <nanley.g.chery@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4243> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4243> (cherry picked from commit507abc3959)
This commit is contained in:
parent
b1cbf7d9fa
commit
7e7722dca3
2 changed files with 10 additions and 2 deletions
|
|
@ -67,7 +67,7 @@
|
|||
"description": "isl: drop min row pitch alignment when set by the driver",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"master_sha": null,
|
||||
"because_sha": "a3f6db2c4e927be7e7d40cbc39c8664030d2af59"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1368,11 +1368,19 @@ isl_calc_row_pitch_alignment(const struct isl_device *dev,
|
|||
if (tile_info->tiling != ISL_TILING_LINEAR) {
|
||||
/* According to BSpec: 44930, Gen12's CCS-compressed surface pitches must
|
||||
* be 512B-aligned. CCS is only support on Y tilings.
|
||||
*
|
||||
* Only consider 512B alignment when :
|
||||
* - AUX is not explicitly disabled
|
||||
* - the caller has specified no pitch
|
||||
*
|
||||
* isl_surf_get_ccs_surf() will check that the main surface alignment
|
||||
* matches CCS expectations.
|
||||
*/
|
||||
if (ISL_DEV_GEN(dev) >= 12 &&
|
||||
isl_format_supports_ccs_e(dev->info, surf_info->format) &&
|
||||
tile_info->tiling != ISL_TILING_X &&
|
||||
!(surf_info->usage & ISL_SURF_USAGE_DISABLE_AUX_BIT)) {
|
||||
!(surf_info->usage & ISL_SURF_USAGE_DISABLE_AUX_BIT) &&
|
||||
surf_info->row_pitch_B == 0) {
|
||||
return isl_align(tile_info->phys_extent_B.width, 512);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue