On Wed, Jun 26, 2019 at 04:40:13PM +0200, Sam Ravnborg wrote: > Hi Gerd. > > On Wed, Jun 26, 2019 at 08:55:50AM +0200, Gerd Hoffmann wrote: > > Store width and height of the bo. Needed in case userspace > > sets up a framebuffer with fb->width != bo->width.. > > > > Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> > > --- > > include/drm/drm_gem_vram_helper.h | 1 + > > drivers/gpu/drm/drm_gem_vram_helper.c | 2 ++ > > 2 files changed, 3 insertions(+) > > > > diff --git a/include/drm/drm_gem_vram_helper.h b/include/drm/drm_gem_vram_helper.h > > index 1a0ea18e7a74..3692dba167df 100644 > > --- a/include/drm/drm_gem_vram_helper.h > > +++ b/include/drm/drm_gem_vram_helper.h > > @@ -39,6 +39,7 @@ struct drm_gem_vram_object { > > struct drm_gem_object gem; > > struct ttm_buffer_object bo; > > struct ttm_bo_kmap_obj kmap; > > + unsigned int width, height; > > > > /* Supported placements are %TTM_PL_VRAM and %TTM_PL_SYSTEM */ > > struct ttm_placement placement; > > diff --git a/drivers/gpu/drm/drm_gem_vram_helper.c b/drivers/gpu/drm/drm_gem_vram_helper.c > > index 4de782ca26b2..c02bf7694117 100644 > > --- a/drivers/gpu/drm/drm_gem_vram_helper.c > > +++ b/drivers/gpu/drm/drm_gem_vram_helper.c > > @@ -377,6 +377,8 @@ int drm_gem_vram_fill_create_dumb(struct drm_file *file, > > gbo = drm_gem_vram_create(dev, bdev, size, pg_align, interruptible); > > if (IS_ERR(gbo)) > > return PTR_ERR(gbo); > > + gbo->width = args->width; > > + gbo->height = args->height; > > > > ret = drm_gem_handle_create(file, &gbo->gem, &handle); > > if (ret) > > Be warned, I may have missed something in the bigger picture. > > Your patch will set width and height only for dumb bo's > But we have several users of drm_gem_vram_create() that will > not set the width and height. > > So only in some cases can we rely on them being set. > Should this be refactored so we always set width, height. > Or maybe say in a small comment that width,height are only > set for dumb bo's? Also for dumb bo allocated buffers if userspace gets the dimensions wrong between dumb_create and the addfb, something is wrong. Papering over that by remembering the right dimensions doesn't look like a good solution. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel