mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-23 17:00:22 +01:00
isl: only bump the min row pitch for display when not specified
If the ISL caller didn't specify a row_pitch_B, let's use the NVIDIA/AMD requirements. Otherwise keep using the Intel requirement, as the caller is likely trying to import a buffer and if we can deal with that row_pitch_B, we should accept it. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Fixes:a3a4517f41("isl: Work around NVIDIA and AMD display pitch requirements") Reported-by: Dongwon Kim <dongwon.kim@intel.com> Reviewed-by: Nanley Chery <nanley.g.chery@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13024> (cherry picked from commit9fb2c84768)
This commit is contained in:
parent
6d4f4ade71
commit
7c088e7024
2 changed files with 14 additions and 4 deletions
|
|
@ -337,7 +337,7 @@
|
|||
"description": "isl: only bump the min row pitch for display when not specified",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "a3a4517f4147a0a7c1b34a4bcd42de45d552df5f"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1479,10 +1479,20 @@ isl_calc_row_pitch_alignment(const struct isl_device *dev,
|
|||
* "When using linear memory, this must be at least 64 byte aligned."
|
||||
*
|
||||
* However, when displaying on NVIDIA and recent AMD GPUs via PRIME,
|
||||
* we need a larger pitch of 256 bytes. We do that just in case.
|
||||
* we need a larger pitch of 256 bytes.
|
||||
*
|
||||
* If the ISL caller didn't specify a row_pitch_B, then we should assume
|
||||
* the NVIDIA/AMD requirements. Otherwise, if we have a specified
|
||||
* row_pitch_B, this is probably because the caller is trying to import a
|
||||
* buffer. In that case we limit the minimum row pitch to the Intel HW
|
||||
* requirement.
|
||||
*/
|
||||
if (surf_info->usage & ISL_SURF_USAGE_DISPLAY_BIT)
|
||||
alignment = isl_align(alignment, 256);
|
||||
if (surf_info->usage & ISL_SURF_USAGE_DISPLAY_BIT) {
|
||||
if (surf_info->row_pitch_B == 0)
|
||||
alignment = isl_align(alignment, 256);
|
||||
else
|
||||
alignment = isl_align(alignment, 64);
|
||||
}
|
||||
|
||||
return alignment;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue