iris: Allow max dynamic pool size of 2GB for gen12
Reworks:
* Adjust comment to list the state packets that curro found to be
affected.
Fixes: 8125d7960b
("intel/dev: Add preliminary device info for Tigerlake")
Cc: 19.3 <mesa-stable@lists.freedesktop.org>
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
This commit is contained in:
parent
7730d583c2
commit
e277009d8d
|
@ -1667,6 +1667,7 @@ iris_bufmgr_init(struct gen_device_info *devinfo, int fd, bool bo_reuse)
|
|||
|
||||
STATIC_ASSERT(IRIS_MEMZONE_SHADER_START == 0ull);
|
||||
const uint64_t _4GB = 1ull << 32;
|
||||
const uint64_t _2GB = 1ul << 31;
|
||||
|
||||
/* The STATE_BASE_ADDRESS size field can only hold 1 page shy of 4GB */
|
||||
const uint64_t _4GB_minus_1 = _4GB - PAGE_SIZE;
|
||||
|
@ -1676,9 +1677,16 @@ iris_bufmgr_init(struct gen_device_info *devinfo, int fd, bool bo_reuse)
|
|||
util_vma_heap_init(&bufmgr->vma_allocator[IRIS_MEMZONE_SURFACE],
|
||||
IRIS_MEMZONE_SURFACE_START,
|
||||
_4GB_minus_1 - IRIS_MAX_BINDERS * IRIS_BINDER_SIZE);
|
||||
/* TODO: Why does limiting to 2GB help some state items on gen12?
|
||||
* - CC Viewport Pointer
|
||||
* - Blend State Pointer
|
||||
* - Color Calc State Pointer
|
||||
*/
|
||||
const uint64_t dynamic_pool_size =
|
||||
(devinfo->gen >= 12 ? _2GB : _4GB_minus_1) - IRIS_BORDER_COLOR_POOL_SIZE;
|
||||
util_vma_heap_init(&bufmgr->vma_allocator[IRIS_MEMZONE_DYNAMIC],
|
||||
IRIS_MEMZONE_DYNAMIC_START + IRIS_BORDER_COLOR_POOL_SIZE,
|
||||
_4GB_minus_1 - IRIS_BORDER_COLOR_POOL_SIZE);
|
||||
dynamic_pool_size);
|
||||
|
||||
/* Leave the last 4GB out of the high vma range, so that no state
|
||||
* base address + size can overflow 48 bits.
|
||||
|
|
Loading…
Reference in New Issue