From e13a64d2861b4431c020b7b6d4be64b10938cdd8 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Mon, 30 Jan 2023 20:11:50 -0600 Subject: [PATCH] nil: Fix image array layer alignments Part-of: --- src/nouveau/nil/nil_image.c | 5 ++++- src/nouveau/nil/nil_image.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/nouveau/nil/nil_image.c b/src/nouveau/nil/nil_image.c index f657795..7caeaa2 100644 --- a/src/nouveau/nil/nil_image.c +++ b/src/nouveau/nil/nil_image.c @@ -188,8 +188,11 @@ nil_image_init(struct nouveau_ws_device *dev, (uint64_t)lvl_ext_B.d; } + /* Align the image and array stride to a single level0 tile */ + image->align_B = nil_tiling_size_B(image->levels[0].tiling); + /* I have no idea why but hardware seems to align layer strides */ - image->array_stride_B = ALIGN(layer_size_B, 0x800); + image->array_stride_B = ALIGN(layer_size_B, image->align_B); image->size_B = (uint64_t)image->array_stride_B * image->extent_px.a; diff --git a/src/nouveau/nil/nil_image.h b/src/nouveau/nil/nil_image.h index e837849..6957395 100644 --- a/src/nouveau/nil/nil_image.h +++ b/src/nouveau/nil/nil_image.h @@ -101,6 +101,7 @@ struct nil_image { uint32_t array_stride_B; + uint32_t align_B; uint64_t size_B; }; -- 2.7.4