[Intel-gfx] [PATCH v4 2/2] drm/i915: Create dumb buffer from LMEM

Ramalingam C ramalingam.c at intel.com
Thu Dec 5 13:02:40 UTC 2019


On 2019-12-05 at 12:20:12 +0000, Chris Wilson wrote:
> Quoting Matthew Auld (2019-12-05 12:12:19)
> > On Mon, 2 Dec 2019 at 06:55, Ramalingam C <ramalingam.c at intel.com> wrote:
> > >
> > > When LMEM is supported, dumb buffer preferred to be created from LMEM.
> > >
> > > v2:
> > >   Parameters are reshuffled. [Chris]
> > > v3:
> > >   s/region_id/mem_type
> > > v4:
> > >   use the i915_gem_object_create_region [chris]
> > >
> > > Signed-off-by: Ramalingam C <ramalingam.c at intel.com>
> > > cc: Matthew Auld <matthew.auld at intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/i915_gem.c | 14 +++++++++++---
> > >  1 file changed, 11 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> > > index 61395b03443e..34e480c8293e 100644
> > > --- a/drivers/gpu/drm/i915/i915_gem.c
> > > +++ b/drivers/gpu/drm/i915/i915_gem.c
> > > @@ -44,6 +44,7 @@
> > >  #include "gem/i915_gem_clflush.h"
> > >  #include "gem/i915_gem_context.h"
> > >  #include "gem/i915_gem_ioctls.h"
> > > +#include "gem/i915_gem_region.h"
> > >  #include "gem/i915_gem_pm.h"
> > >  #include "gt/intel_context.h"
> > >  #include "gt/intel_engine_user.h"
> > > @@ -176,6 +177,7 @@ i915_gem_phys_pwrite(struct drm_i915_gem_object *obj,
> > >  static int
> > >  i915_gem_create(struct drm_file *file,
> > >                 struct drm_i915_private *dev_priv,
> > > +               enum intel_memory_type mem_type,
> > >                 u64 *size_p,
> > >                 u32 *handle_p)
> > >  {
> > > @@ -189,7 +191,8 @@ i915_gem_create(struct drm_file *file,
> > >                 return -EINVAL;
> > >
> > >         /* Allocate the new object */
> > > -       obj = i915_gem_object_create_shmem(dev_priv, size);
> > > +       obj = i915_gem_object_create_region(intel_memory_region_lookup(dev_priv,
> > > +                                           mem_type), size, 0);
> > 
> > Reviewed-by: Matthew Auld <matthew.auld at intel.com>
> > 
> > But how should we go about testing this?
> > 
> > We would still need to clear the object(maybe I915_BO_ALLOC_CLEARED?)
> > in order to pass the IGTs. We also need to adjust dumb_buffer.c, since
> > that uses get_avail_ram_mb() for always_clear, but maybe we need the
> > query region uapi for that?
> 
> Hmm. Questions over the maximum size for dumb buffer, maximum number of
> dumb buffers, etc, should be addressed to the dumb API. So some form of
> drmGetCap() ?
Chris, Is this suggestion to add this capability probing through a new IOCTL for
dumb APIs? Please clarify.

-Ram
> 
> Note for merging, we need the lmem vm_fault implementation first.
> -Chris


More information about the Intel-gfx mailing list