Mesa (master): anv: set maxResourceSize to the respective value for each generation

Samuel Iglesias Gonsálvez samuelig at kemper.freedesktop.org
Wed Feb 28 07:26:00 UTC 2018


Module: Mesa
Branch: master
Commit: c757c9dc0346247cefc1157afd0167d364fa9544
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c757c9dc0346247cefc1157afd0167d364fa9544

Author: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
Date:   Mon Feb 26 08:26:24 2018 +0100

anv: set maxResourceSize to the respective value for each generation

v2:
- Add the proper values to gen9+ (Jason)

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>

---

 src/intel/vulkan/anv_formats.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/intel/vulkan/anv_formats.c b/src/intel/vulkan/anv_formats.c
index 9c52ad5acb..65aa516ff8 100644
--- a/src/intel/vulkan/anv_formats.c
+++ b/src/intel/vulkan/anv_formats.c
@@ -842,6 +842,19 @@ anv_get_image_format_properties(
        */
    }
 
+   /* From the bspec section entitled "Surface Layout and Tiling",
+    * pre-gen9 has a 2 GB limitation of the size in bytes,
+    * gen9 and gen10 have a 256 GB limitation and gen11+
+    * has a 16 TB limitation.
+    */
+   uint64_t maxResourceSize = 0;
+   if (devinfo->gen < 9)
+      maxResourceSize = (uint64_t) 1 << 31;
+   else if (devinfo->gen < 11)
+      maxResourceSize = (uint64_t) 1 << 38;
+   else
+      maxResourceSize = (uint64_t) 1 << 44;
+
    *pImageFormatProperties = (VkImageFormatProperties) {
       .maxExtent = maxExtent,
       .maxMipLevels = maxMipLevels,
@@ -851,7 +864,7 @@ anv_get_image_format_properties(
       /* FINISHME: Accurately calculate
        * VkImageFormatProperties::maxResourceSize.
        */
-      .maxResourceSize = UINT32_MAX,
+      .maxResourceSize = maxResourceSize,
    };
 
    if (pYcbcrImageFormatProperties) {




More information about the mesa-commit mailing list