iris: also avoid isl_memcpy_linear_to_tiled for Tile64

Just like we avoid it for Tile4, avoid it for Tile64.

We can't easily notice this problem since Tile4 is preferred over
Tile64, but if we patch isl_surf_choose_tiling() to choose Tile64 over
Tile4, then we start getting more than 1600 failures in CI.

These are the two most common error messages:
   ../src/gallium/drivers/iris/iris_resource.c:2168: get_image_offset_el: Assertion `z0_el == 0 && a0_el == 0' failed.
   ../src/intel/isl/isl_tiled_memcpy.c:857: linear_to_tiled: Assertion `!"" "unsupported tiling"' failed.

Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22974>
This commit is contained in:
Paulo Zanoni
2023-05-03 14:54:55 -07:00
committed by Marge Bot
parent a64f860acb
commit 7c43c2ac49
+4 -3
View File
@@ -2634,8 +2634,8 @@ iris_transfer_map(struct pipe_context *ctx,
if (prefer_cpu_access(res, box, usage, level, map_would_stall))
usage |= PIPE_MAP_DIRECTLY;
/* TODO: Teach iris_map_tiled_memcpy about Tile4... */
if (res->surf.tiling == ISL_TILING_4)
/* TODO: Teach iris_map_tiled_memcpy about Tile4 and Tile64... */
if (res->surf.tiling == ISL_TILING_4 || res->surf.tiling == ISL_TILING_64)
usage &= ~PIPE_MAP_DIRECTLY;
if (!(usage & PIPE_MAP_DIRECTLY)) {
@@ -2760,10 +2760,11 @@ iris_texture_subdata(struct pipe_context *ctx,
* take that path if we need the GPU to perform color compression, or
* stall-avoidance blits.
*
* TODO: Teach isl_memcpy_linear_to_tiled about Tile4...
* TODO: Teach isl_memcpy_linear_to_tiled about Tile4 and Tile64...
*/
if (surf->tiling == ISL_TILING_LINEAR ||
surf->tiling == ISL_TILING_4 ||
surf->tiling == ISL_TILING_64 ||
isl_aux_usage_has_compression(res->aux.usage) ||
resource_is_busy(ice, res) ||
iris_bo_mmap_mode(res->bo) == IRIS_MMAP_NONE) {