When LMEM is supported, dumb buffer preferred to be created from LMEM. This is developed on top of v3 LMEM series https://patchwork.freedesktop.org/series/56683/. Signed-off-by: Ramalingam C <ramalingam.c@xxxxxxxxx> cc: Matthew Auld <matthew.auld@xxxxxxxxx> --- drivers/gpu/drm/i915/i915_gem.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index e458507b1558..c0decbd020ce 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -161,7 +161,7 @@ static int i915_gem_create(struct drm_file *file, struct drm_i915_private *dev_priv, u64 *size_p, - u32 *handle_p) + u32 *handle_p, enum intel_region_id mem_region) { struct drm_i915_gem_object *obj; u32 handle; @@ -173,7 +173,12 @@ i915_gem_create(struct drm_file *file, return -EINVAL; /* Allocate the new object */ - obj = i915_gem_object_create_shmem(dev_priv, size); + if (mem_region == INTEL_MEMORY_LMEM) + obj = i915_gem_object_create_lmem(dev_priv, size, 0); + else if (mem_region == INTEL_MEMORY_STOLEN) + obj = i915_gem_object_create_stolen(dev_priv, size); + else + obj = i915_gem_object_create_shmem(dev_priv, size); if (IS_ERR(obj)) return PTR_ERR(obj); @@ -193,6 +198,7 @@ i915_gem_dumb_create(struct drm_file *file, struct drm_device *dev, struct drm_mode_create_dumb *args) { + enum intel_region_id mem_region = INTEL_MEMORY_UKNOWN; int cpp = DIV_ROUND_UP(args->bpp, 8); u32 format; @@ -219,8 +225,12 @@ i915_gem_dumb_create(struct drm_file *file, args->pitch = ALIGN(args->pitch, 4096); args->size = args->pitch * args->height; + + if (HAS_LMEM(to_i915(dev))) + mem_region = INTEL_MEMORY_LMEM; + return i915_gem_create(file, to_i915(dev), - &args->size, &args->handle); + &args->size, &args->handle, mem_region); } /** @@ -239,7 +249,7 @@ i915_gem_create_ioctl(struct drm_device *dev, void *data, i915_gem_flush_free_objects(dev_priv); return i915_gem_create(file, dev_priv, - &args->size, &args->handle); + &args->size, &args->handle, INTEL_MEMORY_UKNOWN); } static int -- 2.20.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx