v3dv: TFU destination must be UIF

We had some code that considered the possibility that the destination
might be linear when configuring TFU jobs, but we never actually allow
for this to happen since we avoid hitting these paths in that case, as
the TFU always produces UIF results. Instead, add an assert when
producing the TFU packet to ensure we are expecting a UIF result.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15342>
This commit is contained in:
Iago Toral Quiroga 2022-03-15 08:37:44 +01:00 committed by Marge Bot
parent 9e20d68785
commit 397f4963ed
2 changed files with 6 additions and 6 deletions

View file

@ -864,8 +864,7 @@ copy_image_tfu(struct v3dv_cmd_buffer *cmd_buffer,
dst->mem->bo->handle,
dst_offset,
dst_slice->tiling,
dst_slice->tiling == V3D_TILING_RASTER ?
dst_slice->stride : dst_slice->padded_height,
dst_slice->padded_height,
dst->cpp,
src->mem->bo->handle,
src_offset,
@ -1371,8 +1370,7 @@ copy_buffer_to_image_tfu(struct v3dv_cmd_buffer *cmd_buffer,
dst_bo->handle,
dst_offset,
slice->tiling,
slice->tiling == V3D_TILING_RASTER ?
slice->stride : slice->padded_height,
slice->padded_height,
image->cpp,
src_bo->handle,
src_offset,
@ -2896,8 +2894,7 @@ blit_tfu(struct v3dv_cmd_buffer *cmd_buffer,
dst->mem->bo->handle,
dst_offset,
dst_slice->tiling,
dst_slice->tiling == V3D_TILING_RASTER ?
dst_slice->stride : dst_slice->padded_height,
dst_slice->padded_height,
dst->cpp,
src->mem->bo->handle,
src_offset,

View file

@ -881,6 +881,9 @@ v3dX(meta_emit_tfu_job)(struct v3dv_cmd_buffer *cmd_buffer,
break;
}
/* The TFU can handle raster sources but always produces UIF results */
assert(dst_tiling != V3D_TILING_RASTER);
/* If we're writing level 0 (!IOA_DIMTW), then we need to supply the
* OPAD field for the destination (how many extra UIF blocks beyond
* those necessary to cover the height).