Module: Mesa Branch: main Commit: ab4939dfff1d09b651ea6b72fba1ad0ac559120e URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ab4939dfff1d09b651ea6b72fba1ad0ac559120e
Author: Jordan Justen <[email protected]> Date: Mon May 16 10:43:15 2022 -0700 iris/bufmgr: Add I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS for vram mappable buffers Signed-off-by: Jordan Justen <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16739> --- 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
