From 397f4963ed00d99c8bda18b17ca93dc4ecc6e202 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Tue, 15 Mar 2022 08:37:44 +0100 Subject: [PATCH] v3dv: TFU destination must be UIF MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Part-of: --- src/broadcom/vulkan/v3dv_meta_copy.c | 9 +++------ src/broadcom/vulkan/v3dvx_meta_common.c | 3 +++ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/broadcom/vulkan/v3dv_meta_copy.c b/src/broadcom/vulkan/v3dv_meta_copy.c index 290390f586f..937d152f22b 100644 --- a/src/broadcom/vulkan/v3dv_meta_copy.c +++ b/src/broadcom/vulkan/v3dv_meta_copy.c @@ -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, diff --git a/src/broadcom/vulkan/v3dvx_meta_common.c b/src/broadcom/vulkan/v3dvx_meta_common.c index 55ad2bd74a2..8b2e1612715 100644 --- a/src/broadcom/vulkan/v3dvx_meta_common.c +++ b/src/broadcom/vulkan/v3dvx_meta_common.c @@ -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).