[Intel-gfx] [PATCH 2/5] drm/i915: retrieve current fb config into new plane_config structure at init

Jesse Barnes jbarnes at virtuousgeek.org
Sat Nov 23 00:29:28 CET 2013


On Sat, 23 Nov 2013 01:26:34 +0200
Ville Syrjälä <ville.syrjala at linux.intel.com> wrote:

> On Fri, Nov 22, 2013 at 03:21:08PM -0800, Jesse Barnes wrote:
> > On Sat, 23 Nov 2013 01:08:17 +0200
> > Ville Syrjälä <ville.syrjala at linux.intel.com> wrote:
> > 
> > > On Fri, Nov 22, 2013 at 01:55:35PM -0800, Jesse Barnes wrote:
> > > > On Wed, 20 Nov 2013 15:10:39 +0200
> > > > Ville Syrjälä <ville.syrjala at linux.intel.com> wrote:
> > > > > > +	case DISPPLANE_8BPP:
> > > > > > +		return DRM_FORMAT_C8;
> > > > > > +	case DISPPLANE_BGRX555:
> > > > > > +		return DRM_FORMAT_ARGB1555;
> > > > >                                   ^
> > > > > X
> > > > 
> > > > Oops fixed, thanks.  These formats are a lot of typing.
> > > > 
> > > > > > +	case DISPPLANE_RGBA888:
> > > > > > +	case DISPPLANE_RGBX101010:
> > > > > > +	case DISPPLANE_RGBA101010:
> > > > > > +	case DISPPLANE_BGRX101010:
> > > > > > +		plane_config->bpp = 32;
> > > > > > +		break;
> > > > > > +	}
> > > > > 
> > > > > Maybe just intel_format_to_fourcc()+drm_format_plane_cpp() or something.
> > > > > Just to avoid duplicating essentially the same code.
> > > > 
> > > > Ah yeah, good idea, fixed.
> > > > 
> > > > > > +	val = I915_READ(HTOTAL(pipe));
> > > > > > +	plane_config->fb_width = (val & 0xffff) + 1;
> > > > > > +	val = I915_READ(VTOTAL(pipe));
> > > > > > +	plane_config->fb_height = (val & 0xffff) + 1;
> > > > > 
> > > > > Why make the fb the size of htotal/vtotal? pipe src size should be all
> > > > > we need.
> > > > 
> > > > Ok fixed.  Are there no cases where they'll be different?  Maybe
> > > > centered modes would have a pipesrc that differs from the
> > > > htotal/vtotal?  But even in that case we just want the pipesrc.
> > > 
> > > htotal/vtotal should have nothing to do with the fb dimensions.
> > > pipesrc (or plane w/h if we had such registers for primary planes)
> > > are the only things we can really tell. The information whether
> > > the fb was orignally larger than that can't be recovered.
> > 
> > We couldn't get that from the scaling regs?  If you're up or
> > downscaling, don't you have to specify a factor somewhere?  Either in
> > the pfit regs or the sprite scaling regs?
> 
> Scaling doesn't matter. Pipesrc defines the size of the viewport
> into the fb. Scaling regs would just tell us whether that gets up
> or downscaled by some amount.

Oh yeah for viewing just a portion of the fb... yeah in that case we'd
be hosed.  But otoh, this code would just preserve the viewable region
so maybe no one would be the wiser...

-- 
Jesse Barnes, Intel Open Source Technology Center



More information about the Intel-gfx mailing list