[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 09:54:15 UTC 2019


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).
-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


More information about the Intel-gfx mailing list