i965: leave the top 4Gb of the high heap VMA unused
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 3 May 2019 19:02:41 +0000 (12:02 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 7 May 2019 22:45:56 +0000 (15:45 -0700)
This ports commit 9e7b0988d6e98690eb8902e477b51713a6ef9cae from anv
to i965.  Thanks to Lionel for noticing that it was missing!

Fixes: 01058a55229 i965: Add virtual memory allocator infrastructure to brw_bufmgr.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/mesa/drivers/dri/i965/brw_bufmgr.c

index 43dc63ce3e54b759b129b64794c74e04bdc7dfc9..b0e5198aad15fa9c3bb420f4cee9d06d80aa6ff7 100644 (file)
@@ -1732,8 +1732,12 @@ brw_bufmgr_init(struct gen_device_info *devinfo, int fd)
 
          util_vma_heap_init(&bufmgr->vma_allocator[BRW_MEMZONE_LOW_4G],
                             PAGE_SIZE, _4GB_minus_1);
+
+         /* Leave the last 4GB out of the high vma range, so that no state
+          * base address + size can overflow 48 bits.
+          */
          util_vma_heap_init(&bufmgr->vma_allocator[BRW_MEMZONE_OTHER],
-                            1 * _4GB, gtt_size - 1 * _4GB);
+                            1 * _4GB, gtt_size - 2 * _4GB);
       } else if (devinfo->gen >= 10) {
          /* Softpin landed in 4.5, but GVT used an aliasing PPGTT until
           * kernel commit 6b3816d69628becb7ff35978aa0751798b4a940a in