[Intel-gfx] [PATCH v4 8/8] hack: align dumb buffer stride to 4k to allow for gtt remapping

Daniel Vetter daniel at ffwll.ch
Wed Jan 30 10:06:07 UTC 2019


On Wed, Jan 30, 2019 at 10:54:15AM +0100, Daniel Vetter wrote:
> On Fri, Jan 18, 2019 at 07:11:06PM +0200, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > 
> > v2: Leave the stride alone for buffers that look to be for the cursor
> > ---
> >  drivers/gpu/drm/i915/i915_gem.c | 7 ++++++-
> >  1 file changed, 6 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> > index 1e7c95d0fea1..b4b34519af80 100644
> > --- a/drivers/gpu/drm/i915/i915_gem.c
> > +++ b/drivers/gpu/drm/i915/i915_gem.c
> > @@ -745,7 +745,12 @@ i915_gem_dumb_create(struct drm_file *file,
> >  		     struct drm_mode_create_dumb *args)
> >  {
> >  	/* have to work out size/pitch and return them */
> > -	args->pitch = ALIGN(args->width * DIV_ROUND_UP(args->bpp, 8), 64);
> > +	if (args->bpp == 32 && (args->width == 64 ||
> > +				args->width == 128 ||
> > +				args->width == 256))
> > +		args->pitch = ALIGN(args->width * DIV_ROUND_UP(args->bpp, 8), 64);
> > +	else
> > +		args->pitch = ALIGN(args->width * DIV_ROUND_UP(args->bpp, 8), 4096);
> 
> Shouldn't we convert this into a non-hack and just do it anytime the pitch
> is too wide for the display to handle?
> 
> Or am I missing something somewhere? -modesetting et all will dtrt
> because tiling, but this should help with boot splashes and stuff like
> that (but those tend to not do side-by-side, so maybe that's why the get
> away with it).

Correction: We need this, and before we start bumping the limits. Any dumb
buffer you create (within the limits) we must be able to scan out. So we
definitely need to have this for super-big buffers on gen7+. Even if it's
fairly theoretical.

I think we should even have an igt which creates a max size buffer (using
dumb create) and then makes sure we can scan that out.
-Daniel

> -Daniel
> 
> >  	args->size = args->pitch * args->height;
> >  	return i915_gem_create(file, to_i915(dev),
> >  			       args->size, &args->handle);
> > -- 
> > 2.19.2
> > 
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the Intel-gfx mailing list