iris: Add function to return mmap mode for aux map
authorJosé Roberto de Souza <jose.souza@intel.com>
Mon, 17 Apr 2023 15:32:08 +0000 (08:32 -0700)
committerMarge Bot <emma+marge@anholt.net>
Tue, 9 May 2023 15:42:18 +0000 (15:42 +0000)
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22240>

src/gallium/drivers/iris/iris_bufmgr.c

index 0e0056a..e887773 100644 (file)
@@ -2127,6 +2127,20 @@ init_cache_buckets(struct iris_bufmgr *bufmgr, enum iris_heap heap)
    }
 }
 
+static enum iris_mmap_mode
+iris_bo_alloc_aux_map_get_mmap_mode(struct iris_bufmgr *bufmgr,
+                                    enum iris_heap heap)
+{
+   switch (bufmgr->devinfo.kmd_type) {
+   case INTEL_KMD_TYPE_I915:
+      return heap != IRIS_HEAP_SYSTEM_MEMORY ? IRIS_MMAP_WC : IRIS_MMAP_WB;
+   case INTEL_KMD_TYPE_XE:
+      return iris_xe_bo_flags_to_mmap_mode(bufmgr, heap, 0);
+   default:
+      return IRIS_MMAP_NONE;
+   }
+}
+
 static struct intel_buffer *
 intel_aux_map_buffer_alloc(void *driver_ctx, uint32_t size)
 {
@@ -2161,8 +2175,8 @@ intel_aux_map_buffer_alloc(void *driver_ctx, uint32_t size)
    bo->index = -1;
    bo->real.kflags = EXEC_OBJECT_SUPPORTS_48B_ADDRESS | EXEC_OBJECT_PINNED |
                      EXEC_OBJECT_CAPTURE;
-   bo->real.mmap_mode =
-      bo->real.heap != IRIS_HEAP_SYSTEM_MEMORY ? IRIS_MMAP_WC : IRIS_MMAP_WB;
+   bo->real.mmap_mode = iris_bo_alloc_aux_map_get_mmap_mode(bufmgr,
+                                                            bo->real.heap);
 
    buf->driver_bo = bo;
    buf->gpu = bo->address;