From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [Intel-gfx] [PATCH 2/6] drm/i915: Check framebuffer stride more thoroughly Date: Thu, 5 Jul 2012 14:59:49 +0300 Message-ID: <20120705115948.GB5936@intel.com> References: <1337882939-22274-1-git-send-email-ville.syrjala@linux.intel.com> <1337882939-22274-3-git-send-email-ville.syrjala@linux.intel.com> <20120705112746.GE5203@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Content-Disposition: inline In-Reply-To: <20120705112746.GE5203@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org On Thu, Jul 05, 2012 at 01:27:47PM +0200, Daniel Vetter wrote: > On Thu, May 24, 2012 at 09:08:55PM +0300, ville.syrjala@linux.intel.com w= rote: > > From: Ville Syrj=E4l=E4 > > = > > Make sure the the framebuffer stride is smaller than the maximum > > accepted by any plane. > > = > > Also when using a tiled memory make sure the object stride matches > > the framebuffer stride. > > = > > Signed-off-by: Ville Syrj=E4l=E4 > > --- > > drivers/gpu/drm/i915/intel_display.c | 18 ++++++++++++++++++ > > 1 files changed, 18 insertions(+), 0 deletions(-) > > = > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i91= 5/intel_display.c > > index 7cf639c..8fea475 100644 > > --- a/drivers/gpu/drm/i915/intel_display.c > > +++ b/drivers/gpu/drm/i915/intel_display.c > > @@ -6643,6 +6643,17 @@ static const struct drm_framebuffer_funcs intel_= fb_funcs =3D { > > .create_handle =3D intel_user_framebuffer_create_handle, > > }; > > = > > +static unsigned int intel_max_fb_stride(const struct drm_device *dev) > > +{ > > + /* FIXME: BSpec for pre-Gen5 is a bit unclear on stride limits */ > > + if (INTEL_INFO(dev)->gen <=3D 3) > > + return 8192; > = > 8k pitch limit is gen2, gen3 can have a 4kx4k framebuffer @32bit. OK. I was just looking at BSpec but there were gaps in the docs. For example, for gen3, only the limit for the OVL (8k) and tiled DSP (8k) were mentioned. Nothing about non-tiled DSP. OTOH I don't know if even the documented limits were really correct. > -Daniel > = > > + else if (INTEL_INFO(dev)->gen <=3D 4) > > + return 16384; > = > Iirc gen4 can also do 32k, see the pixel-based limits in > intel_modset_init. OK, BSpec was equally unclear here. Only tiled limit (16k) was mentioned. Seeing as the limits are a bit unclear, I don't know if I should even try to add these checks. Unfortunately I don't have any pre-gen6 hardware, so I can't coax the real limits out of the hardware empirically. -- = Ville Syrj=E4l=E4 Intel OTC