All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Wilson <chris-Y6uKTt2uX1cEflXRtASbqLVCufUGDwFn@public.gmane.org>
To: Keith Packard <keithp-aN4HjG94KOLQT0dZR+AlfA@public.gmane.org>
Cc: xorg-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
	intel-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Subject: Re: [Intel-gfx] [PATCH 0/2 xf86-video-intel] Two DRI3/Present bug fixes for UXA
Date: Sat, 13 Sep 2014 09:28:24 +0100	[thread overview]
Message-ID: <20140913082824.GM16043@nuc-i3427.alporthouse.com> (raw)
In-Reply-To: <86r3ziorwl.fsf-6d7jPg3SX/+z9DMzp4kqnw@public.gmane.org>

On Thu, Sep 11, 2014 at 12:53:30PM -0700, Keith Packard wrote:
> Chris Wilson <chris-Y6uKTt2uX1cEflXRtASbqLVCufUGDwFn@public.gmane.org> writes:
> 
> > That extra alignment is due to gen2 and early gen3 (if
> > (!intel->has_relaxed_fencing) covers them).
> 
> Here's the patch which changed the alignment requirment:

[snip commits picked at random]

This is the root

commit d21d781466785c317131a8a57606925867265dc8
Author: Daniel Vetter <daniel.vetter-/w4YWyX8dFk@public.gmane.org>
Date:   Tue Feb 22 18:31:44 2011 +0100

    Fix relaxed tiling on gen2

Later we went on to disable relaxed tiling even after believing we had
fixed all the kernel bugs:

commit 686018f283f1d131073ef5917213e6a8ac013f26
Author: Chris Wilson <chris-Y6uKTt2uX1cEflXRtASbqLVCufUGDwFn@public.gmane.org>
Date:   Tue Apr 12 08:23:04 2011 +0100

    Turn relaxed-fencing off by default for older (pre-G33) chipsets
        
I believe the even-tile row alignment is still key to having gen2/gen3
function with relaxed fencing.

> If you have specific bug reports that were resolved by this patch, or
> specific hardware documentation which indicates that this patch is
> required, especially as it relates to gen2 and gen3 hardware, I'd love
> to see them.

Try enabling relaxed fencing again.
 
> In any case, we've now got four versions of the pixmap alignment code
> (libdrm, uxa and sna in two varieties). They're all subtly different;
> one suspects that each one works on some set of problems and fails on
> others...
> 
> Here's what the height alignment requirements are:
> 
>                 libdrm  uxa     uxa     sna     sna
>                       +keithp        >=2.6.38 <2.6.38
> 
> gen2 none         2      2       2       1       2
> gen3 none         2      2       2       1       2
> gen4+ none        2      2       2       1       1
> 
> gen2 X           16     16      32      16      32
> gen3 X            8      8      16       8      16
> gen4+ X           8      8      16       8       8
> 
> gen2 Y           16     16      32      16      32
> i915 Y            8     32      64       8      16
> i945 Y           32     32      64       8      16
> gen4+ Y          32     32      64      32      32
> 
> It looks like the SNA alignment for untiled buffers is incorrect? 965
> hardware is documented to read buffers in 2x2 chunks, so a failure to
> height align allocations to 2 can result in reads off the end of the
> buffer.

Reading from the scratch page is not a problem. Reading from
neighbouring surfaces is of no concern. The allocation must be suitable
and aligned appropriately for writes, but writes themselves are
appropriately clipped. Otherwise one extra row doesn't save you from
scribbling over anywhere in your gtt.
 
> For uxa's intel_set_pixmap_bo, and sna's sna_dri3_pixmap_from_fd,
> there's a clear requirement that the 2D driver impose no stricter
> alignment than libdrm, so that, buffer passing from Mesa to X will work.

No. The clearest requirement is that the ddx (or other display server)
must treat incoming surfaces as tainted and validate them to be sure
that they work with its code paths. If it can't we have a choice of
either rejecting them outright, or staging them.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
xorg-devel-go0+a7rfsptAfugRpC6u6w@public.gmane.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

  parent reply	other threads:[~2014-09-13  8:28 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-10 21:09 [PATCH 0/2 xf86-video-intel] Two DRI3/Present bug fixes for UXA Keith Packard
     [not found] ` <1410383349-27678-1-git-send-email-keithp-aN4HjG94KOLQT0dZR+AlfA@public.gmane.org>
2014-09-10 21:09   ` [PATCH 1/2] Do not clear pending kernel events on mode switch Keith Packard
2014-09-10 21:09   ` [PATCH 2/2] Correct BO allocation alignment Keith Packard
2014-09-11  6:37 ` [PATCH 0/2 xf86-video-intel] Two DRI3/Present bug fixes for UXA Chris Wilson
     [not found]   ` <20140911063716.GB28332-aII6DKEyn0pWYbfKqPwjAkR8Iwp7RQ6xAL8bYrjMMd8@public.gmane.org>
2014-09-11  6:47     ` [Intel-gfx] " Jasper St. Pierre
2014-09-11  6:52       ` Chris Wilson
2014-09-11 19:53     ` [Intel-gfx] " Keith Packard
     [not found]       ` <86r3ziorwl.fsf-6d7jPg3SX/+z9DMzp4kqnw@public.gmane.org>
2014-09-13  8:28         ` Chris Wilson [this message]
     [not found]           ` <20140913082824.GM16043-aII6DKEyn0pWYbfKqPwjAkR8Iwp7RQ6xAL8bYrjMMd8@public.gmane.org>
2014-09-13 17:31             ` Keith Packard
2014-09-12 19:13 ` Kenneth Graunke

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140913082824.GM16043@nuc-i3427.alporthouse.com \
    --to=chris-y6uktt2ux1ceflxrtasbqlvcufugdwfn@public.gmane.org \
    --cc=intel-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=keithp-aN4HjG94KOLQT0dZR+AlfA@public.gmane.org \
    --cc=xorg-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.