From be190a5d3db773ddbb37c632fd445aa382c7c940 Mon Sep 17 00:00:00 2001 From: Danylo Piliaiev Date: Wed, 7 Jan 2026 17:18:36 +0100 Subject: [PATCH] tu: Fix passing tmp arrays to tu_desc_set_swiz/fdl6_buffer_view_init ../src/freedreno/vulkan/tu_clear_blit.cc:3664:1: required from here ../src/freedreno/vulkan/tu_clear_blit.cc:1274:26: error: taking address of temporary array 1274 | tu_desc_set_swiz(desc, tu_swiz(X, Y, Z, W)); Fixes: 75166dff1db ("tu: Extract out descriptor helpers") Signed-off-by: Danylo Piliaiev Part-of: --- src/freedreno/fdl/fd6_view.cc | 2 +- src/freedreno/fdl/freedreno_layout.h | 2 +- src/freedreno/vulkan/tu_descriptor_set.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/freedreno/fdl/fd6_view.cc b/src/freedreno/fdl/fd6_view.cc index 11d59cd1a2a..ae13cc722d9 100644 --- a/src/freedreno/fdl/fd6_view.cc +++ b/src/freedreno/fdl/fd6_view.cc @@ -537,7 +537,7 @@ FD_GENX(fdl6_view_init); template void fdl6_buffer_view_init(uint32_t *descriptor, enum pipe_format format, - const uint8_t *swiz, uint64_t iova, uint32_t size, + const uint8_t (&swiz)[4], uint64_t iova, uint32_t size, uint32_t struct_size_texels) { unsigned elem_size = util_format_get_blocksize(format); diff --git a/src/freedreno/fdl/freedreno_layout.h b/src/freedreno/fdl/freedreno_layout.h index 37a5b6ad5d9..01a491b7470 100644 --- a/src/freedreno/fdl/freedreno_layout.h +++ b/src/freedreno/fdl/freedreno_layout.h @@ -475,7 +475,7 @@ fdl6_view_init(struct fdl6_view *view, const struct fdl_layout **layouts, template void fdl6_buffer_view_init(uint32_t *descriptor, enum pipe_format format, - const uint8_t *swiz, uint64_t iova, uint32_t size, + const uint8_t (&swiz)[4], uint64_t iova, uint32_t size, uint32_t struct_size_texels = 1); #endif diff --git a/src/freedreno/vulkan/tu_descriptor_set.h b/src/freedreno/vulkan/tu_descriptor_set.h index b9d66f73ea2..8b90923ffd1 100644 --- a/src/freedreno/vulkan/tu_descriptor_set.h +++ b/src/freedreno/vulkan/tu_descriptor_set.h @@ -250,7 +250,7 @@ tu_immutable_ycbcr_samplers(const struct tu_descriptor_set_layout *set, template static inline void -tu_desc_set_swiz(uint32_t *desc, const uint8_t *swiz) +tu_desc_set_swiz(uint32_t *desc, const uint8_t (&swiz)[4]) { desc[0] = pkt_field_set(A6XX_TEX_CONST_0_SWIZ_X, desc[0], fdl6_swiz(swiz[0])); desc[0] = pkt_field_set(A6XX_TEX_CONST_0_SWIZ_Y, desc[0], fdl6_swiz(swiz[1]));