From 47468554d99559d15089f14191cd504fd0971689 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Mon, 5 Aug 2024 11:25:17 -0700 Subject: [PATCH] tu: Add helper to calculate layer address Signed-off-by: Rob Clark Part-of: --- src/freedreno/vulkan/tu_image.cc | 8 +++++++- src/freedreno/vulkan/tu_image.h | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/freedreno/vulkan/tu_image.cc b/src/freedreno/vulkan/tu_image.cc index a0480b8343f..024aeff6853 100644 --- a/src/freedreno/vulkan/tu_image.cc +++ b/src/freedreno/vulkan/tu_image.cc @@ -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 diff --git a/src/freedreno/vulkan/tu_image.h b/src/freedreno/vulkan/tu_image.h index fe7c7e1325f..3698745599f 100644 --- a/src/freedreno/vulkan/tu_image.h +++ b/src/freedreno/vulkan/tu_image.h @@ -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);