intel/isl/icl: Add the maximum surface size limit
authorAnuj Phogat <anuj.phogat@gmail.com>
Fri, 19 May 2017 19:13:40 +0000 (12:13 -0700)
committerAnuj Phogat <anuj.phogat@gmail.com>
Fri, 16 Feb 2018 00:14:55 +0000 (16:14 -0800)
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/intel/isl/isl.c

index 59f512fc05047612f18c0307c9bd006c125191d6..f70ac22aac584378c5162b2299121b937c82ef23 100644 (file)
@@ -1483,7 +1483,7 @@ isl_surf_init_s(const struct isl_device *dev,
        */
       if (size > (uint64_t) 1 << 31)
          return false;
-   } else {
+   } else if (ISL_DEV_GEN(dev) < 11) {
       /* From the Skylake PRM Vol 5, Maximum Surface Size in Bytes:
        *    "In addition to restrictions on maximum height, width, and depth,
        *     surfaces are also restricted to a maximum size of 2^38 bytes.
@@ -1492,6 +1492,10 @@ isl_surf_init_s(const struct isl_device *dev,
        */
       if (size > (uint64_t) 1 << 38)
          return false;
+   } else {
+      /* gen11+ platforms raised this limit to 2^44 bytes. */
+      if (size > (uint64_t) 1 << 44)
+         return false;
    }
 
    *surf = (struct isl_surf) {