From ab4939dfff1d09b651ea6b72fba1ad0ac559120e Mon Sep 17 00:00:00 2001 From: Jordan Justen Date: Mon, 16 May 2022 10:43:15 -0700 Subject: [PATCH] iris/bufmgr: Add I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS for vram mappable buffers Signed-off-by: Jordan Justen Reviewed-by: Kenneth Graunke Part-of: --- src/gallium/drivers/iris/iris_bufmgr.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/iris/iris_bufmgr.c b/src/gallium/drivers/iris/iris_bufmgr.c index 897f333346e..9ad8d723ff5 100644 --- a/src/gallium/drivers/iris/iris_bufmgr.c +++ b/src/gallium/drivers/iris/iris_bufmgr.c @@ -997,11 +997,10 @@ alloc_fresh_bo(struct iris_bufmgr *bufmgr, uint64_t bo_size, unsigned flags) .extensions = (uintptr_t)&ext_regions, }; - /* TODO: Add I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS to create.flags - * for IRIS_HEAP_DEVICE_LOCAL_PREFERRED when small BAR uapi is - * stabilized. - */ - assert(bufmgr->all_vram_mappable); + if (!bufmgr->all_vram_mappable && + bo->real.heap == IRIS_HEAP_DEVICE_LOCAL_PREFERRED) { + create.flags |= I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS; + } /* It should be safe to use GEM_CREATE_EXT without checking, since we are * in the side of the branch where discrete memory is available. So we