mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
i965: Fix BRW_MEMZONE_LOW_4G heap size.
The STATE_BASE_ADDRESS "Size" fields can only hold 0xfffff in pages,
and 0xfffff * 4096 = 4294963200, which is 1 page shy of 4GB.
So we can't use the top page.
Fixes: 01058a5522 i965: Add virtual memory allocator infrastructure to brw_bufmgr.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
e8c74a1e16
commit
15f134c628
1 changed files with 4 additions and 1 deletions
|
|
@ -1717,6 +1717,9 @@ brw_bufmgr_init(struct gen_device_info *devinfo, int fd)
|
|||
|
||||
const uint64_t _4GB = 4ull << 30;
|
||||
|
||||
/* The STATE_BASE_ADDRESS size field can only hold 1 page shy of 4GB */
|
||||
const uint64_t _4GB_minus_1 = _4GB - PAGE_SIZE;
|
||||
|
||||
if (devinfo->gen >= 8 && gtt_size > _4GB) {
|
||||
bufmgr->initial_kflags |= EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
|
||||
|
||||
|
|
@ -1726,7 +1729,7 @@ brw_bufmgr_init(struct gen_device_info *devinfo, int fd)
|
|||
bufmgr->initial_kflags |= EXEC_OBJECT_PINNED;
|
||||
|
||||
util_vma_heap_init(&bufmgr->vma_allocator[BRW_MEMZONE_LOW_4G],
|
||||
PAGE_SIZE, _4GB);
|
||||
PAGE_SIZE, _4GB_minus_1);
|
||||
util_vma_heap_init(&bufmgr->vma_allocator[BRW_MEMZONE_OTHER],
|
||||
1 * _4GB, gtt_size - 1 * _4GB);
|
||||
} else if (devinfo->gen >= 10) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue