nil: Fix image align and size constraints
authorDave Airlie <airlied@redhat.com>
Wed, 11 Jan 2023 18:03:31 +0000 (12:03 -0600)
committerMarge Bot <emma+marge@anholt.net>
Fri, 4 Aug 2023 21:32:03 +0000 (21:32 +0000)
In order to use compressed images we have to align to at least (1<<16)
though the kernel also likes (1<<21).

This fixes the alignments/sizes so they can work with vm allocs

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>

src/nouveau/nil/nil_image.c

index 71b879d..2b03853 100644 (file)
@@ -439,6 +439,11 @@ nil_image_init(struct nv_device_info *dev,
    image->pte_kind = nil_choose_pte_kind(dev, info->format, info->samples,
                                          true /* TODO: compressed */);
 
+   image->align_B = MAX2(image->align_B, 4096);
+   if (image->pte_kind >= 0xb && image->pte_kind <= 0xe)
+      image->align_B = MAX2(image->align_B, (1 << 16));
+
+   image->size_B = ALIGN(image->size_B, image->align_B);
    return true;
 }