From 7553d921f662a6e74e380d39ce0784bd0020c5e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Date: Mon, 6 Mar 2023 09:11:00 -0800 Subject: [PATCH] iris: Move bo_set_caching to kmd backend MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For the platforms that call it, it a function in the hot path so moving it to kmd backend. After this patch i915/iris_bufmgr.c is empty but not removing it as next patch will add functions to it. Signed-off-by: José Roberto de Souza Reviewed-by: Lionel Landwerlin Part-of: --- src/gallium/drivers/iris/i915/iris_bufmgr.c | 9 --------- src/gallium/drivers/iris/i915/iris_bufmgr.h | 1 - src/gallium/drivers/iris/i915/iris_kmd_backend.c | 12 ++++++++++++ src/gallium/drivers/iris/iris_bufmgr.c | 13 +------------ src/gallium/drivers/iris/iris_kmd_backend.h | 1 + 5 files changed, 14 insertions(+), 22 deletions(-) diff --git a/src/gallium/drivers/iris/i915/iris_bufmgr.c b/src/gallium/drivers/iris/i915/iris_bufmgr.c index e269c578d07..ba9e948048c 100644 --- a/src/gallium/drivers/iris/i915/iris_bufmgr.c +++ b/src/gallium/drivers/iris/i915/iris_bufmgr.c @@ -27,12 +27,3 @@ #include "drm-uapi/i915_drm.h" -int iris_i915_bo_set_caching(struct iris_bo *bo, bool cached) -{ - struct drm_i915_gem_caching arg = { - .handle = bo->gem_handle, - .caching = cached ? I915_CACHING_CACHED : I915_CACHING_NONE, - }; - return intel_ioctl(iris_bufmgr_get_fd(bo->bufmgr), - DRM_IOCTL_I915_GEM_SET_CACHING, &arg); -} diff --git a/src/gallium/drivers/iris/i915/iris_bufmgr.h b/src/gallium/drivers/iris/i915/iris_bufmgr.h index 0278a264abd..1dcb27008f0 100644 --- a/src/gallium/drivers/iris/i915/iris_bufmgr.h +++ b/src/gallium/drivers/iris/i915/iris_bufmgr.h @@ -26,4 +26,3 @@ struct iris_bo; -int iris_i915_bo_set_caching(struct iris_bo *bo, bool cached); diff --git a/src/gallium/drivers/iris/i915/iris_kmd_backend.c b/src/gallium/drivers/iris/i915/iris_kmd_backend.c index b67b2eaf201..b20e68caffd 100644 --- a/src/gallium/drivers/iris/i915/iris_kmd_backend.c +++ b/src/gallium/drivers/iris/i915/iris_kmd_backend.c @@ -107,11 +107,23 @@ i915_bo_madvise(struct iris_bo *bo, enum iris_madvice state) return madv.retained; } +static int +i915_bo_set_caching(struct iris_bo *bo, bool cached) +{ + struct drm_i915_gem_caching arg = { + .handle = bo->gem_handle, + .caching = cached ? I915_CACHING_CACHED : I915_CACHING_NONE, + }; + return intel_ioctl(iris_bufmgr_get_fd(bo->bufmgr), + DRM_IOCTL_I915_GEM_SET_CACHING, &arg); +} + const struct iris_kmd_backend *i915_get_backend(void) { static const struct iris_kmd_backend i915_backend = { .gem_create = i915_gem_create, .bo_madvise = i915_bo_madvise, + .bo_set_caching = i915_bo_set_caching, }; return &i915_backend; } diff --git a/src/gallium/drivers/iris/iris_bufmgr.c b/src/gallium/drivers/iris/iris_bufmgr.c index e48bcd535da..aa17bf63755 100644 --- a/src/gallium/drivers/iris/iris_bufmgr.c +++ b/src/gallium/drivers/iris/iris_bufmgr.c @@ -1034,17 +1034,6 @@ iris_heap_to_string[IRIS_HEAP_MAX] = { [IRIS_HEAP_DEVICE_LOCAL_PREFERRED] = "local-preferred", }; -static int iris_bo_set_caching(struct iris_bo *bo, bool cached) -{ - switch (iris_bufmgr_get_device_info(bo->bufmgr)->kmd_type) { - case INTEL_KMD_TYPE_I915: - return iris_i915_bo_set_caching(bo, cached); - default: - unreachable("missing"); - return 0; - } -} - struct iris_bo * iris_bo_alloc(struct iris_bufmgr *bufmgr, const char *name, @@ -1138,7 +1127,7 @@ iris_bo_alloc(struct iris_bufmgr *bufmgr, */ if ((flags & BO_ALLOC_COHERENT) && !bufmgr->devinfo.has_llc && bufmgr->devinfo.has_caching_uapi) { - if (iris_bo_set_caching(bo, true) != 0) + if (bufmgr->kmd_backend->bo_set_caching(bo, true) != 0) goto err_free; bo->real.reusable = false; diff --git a/src/gallium/drivers/iris/iris_kmd_backend.h b/src/gallium/drivers/iris/iris_kmd_backend.h index 7013dd394af..8280247f992 100644 --- a/src/gallium/drivers/iris/iris_kmd_backend.h +++ b/src/gallium/drivers/iris/iris_kmd_backend.h @@ -39,6 +39,7 @@ struct iris_kmd_backend { uint16_t regions_count, uint64_t size, enum iris_heap heap_flags, unsigned alloc_flags); bool (*bo_madvise)(struct iris_bo *bo, enum iris_madvice state); + int (*bo_set_caching)(struct iris_bo *bo, bool cached); }; const struct iris_kmd_backend *