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);