intel/isl: Only assert surface addresses on gfx9+
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

Restrict the surface address assertions to platforms with soft-pin. We
technically could check for (gfx8+ && !CHV), but we choose to use the
simpler condition instead.

Fixes: 8e96b516ca ("intel/isl: Assert alignments of surface addresses")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11331
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38905>
This commit is contained in:
Nanley Chery 2025-12-11 07:51:15 -05:00 committed by Marge Bot
parent 49446a62c0
commit d2f336c108
2 changed files with 10 additions and 0 deletions

View file

@ -169,7 +169,9 @@ isl_genX(emit_depth_stencil_hiz_s)(const struct isl_device *dev, void *batch,
#if GFX_VER >= 7
db.DepthWriteEnable = true;
#endif
#if GFX_VER >= 9
assert(info->depth_address % info->depth_surf->alignment_B == 0);
#endif
db.SurfaceBaseAddress = info->depth_address;
#if GFX_VERx10 >= 125
@ -271,7 +273,9 @@ isl_genX(emit_depth_stencil_hiz_s)(const struct isl_device *dev, void *batch,
#elif GFX_VERx10 >= 75
sb.StencilBufferEnable = true;
#endif
#if GFX_VER >= 9
assert(info->stencil_address % info->stencil_surf->alignment_B == 0);
#endif
sb.SurfaceBaseAddress = info->stencil_address;
sb.SurfacePitch = info->stencil_surf->row_pitch_B - 1;
#if GFX_VER >= 8
@ -313,7 +317,9 @@ isl_genX(emit_depth_stencil_hiz_s)(const struct isl_device *dev, void *batch,
assert(GFX_VER >= 12 || info->hiz_usage == ISL_AUX_USAGE_HIZ);
db.HierarchicalDepthBufferEnable = true;
#if GFX_VER >= 9
assert(info->hiz_address % info->hiz_surf->alignment_B == 0);
#endif
hiz.SurfaceBaseAddress = info->hiz_address;
hiz.SurfacePitch = info->hiz_surf->row_pitch_B - 1;

View file

@ -641,7 +641,9 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state,
assert(isl_swizzle_is_identity(info->view->swizzle));
#endif
#if GFX_VER >= 9
assert(info->address % info->surf->alignment_B == 0);
#endif
s.SurfaceBaseAddress = info->address;
#if GFX_VER >= 6
@ -875,7 +877,9 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state,
uint32_t pitch_in_tiles =
info->aux_surf->row_pitch_B / tile_info.phys_extent_B.width;
#if GFX_VER >= 9
assert(info->aux_address % info->aux_surf->alignment_B == 0);
#endif
s.AuxiliarySurfaceBaseAddress = info->aux_address;
s.AuxiliarySurfacePitch = pitch_in_tiles - 1;