tu: Add helper to calculate layer address

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30452>
This commit is contained in:
Rob Clark
2024-08-05 11:25:17 -07:00
committed by Marge Bot
parent 9f433a32cc
commit 47468554d9
2 changed files with 10 additions and 1 deletions
+7 -1
View File
@@ -123,12 +123,18 @@ tu_is_r8g8_compatible(enum pipe_format format)
!util_format_is_depth_or_stencil(format);
}
uint64_t
tu_layer_address(const struct fdl6_view *iview, uint32_t layer)
{
return iview->base_addr + iview->layer_size * layer;
}
void
tu_cs_image_ref(struct tu_cs *cs, const struct fdl6_view *iview, uint32_t layer)
{
tu_cs_emit(cs, A6XX_RB_MRT_PITCH(0, iview->pitch).value);
tu_cs_emit(cs, iview->layer_size >> 6);
tu_cs_emit_qw(cs, iview->base_addr + iview->layer_size * layer);
tu_cs_emit_qw(cs, tu_layer_address(iview, layer));
}
void
+3
View File
@@ -77,6 +77,9 @@ uint32_t tu6_plane_index(VkFormat format, VkImageAspectFlags aspect_mask);
enum pipe_format tu_format_for_aspect(enum pipe_format format,
VkImageAspectFlags aspect_mask);
uint64_t
tu_layer_address(const struct fdl6_view *iview, uint32_t layer);
void
tu_cs_image_ref(struct tu_cs *cs, const struct fdl6_view *iview, uint32_t layer);