From: Peter Clifton <pcjc2@cam.ac.uk>
To: Chris Wilson <chris@chris-wilson.co.uk>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: Corruption in glxgears with Compiz
Date: Sat, 23 Oct 2010 05:07:57 +0100 [thread overview]
Message-ID: <1287806877.2423.3.camel@pcjc2lap> (raw)
In-Reply-To: <1287804946.9701.3.camel@pcjc2lap>
On Sat, 2010-10-23 at 04:35 +0100, Peter Clifton wrote:
> Lost of bisecting and backporting later.. and I've identified the bad
> commit:
>
> 9220434a8768902cd9cf248709972678b74aa8c1 drm/i915: Only emit a flush
> request on the active ring.
A minimal fix is this:
commit 78342e8fd01614ac0507db1f9c3e0522f4da3c14
Author: Peter Clifton <pcjc2@cam.ac.uk>
Date: Sat Oct 23 04:00:21 2010 +0100
Attempted fix
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 9290f02..868a399 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3759,7 +3759,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
*/
dev->invalidate_domains = 0;
dev->flush_domains = 0;
- dev_priv->mm.flush_rings = 0;
+ dev_priv->mm.flush_rings = ring->id;
for (i = 0; i < args->buffer_count; i++) {
struct drm_gem_object *obj = object_list[i];
Although I don't doubt that it is incorrect for some reason. My logic
was this.. the mm.flush_rings is supposed to be |='d with the object's
ring->id if the ring is set on a given object.
But we transfer objects to GPU domain before we actually put them in the
ring, therefore it never gets set.
So this patch just dumps the execbuffer ring into the list of rings to
be flushed. I guess that might be wrong.. perhaps we don't always need
to flush that ring unless an object in it gets reused.. anyway, I'm not
that familiar with GEM internals, and it is gone 5AM here. Still.. I
think I can claim I've nailed the offending commit at least.
Hopefully someone can come up with a sensible patch and explain to me
how this stuff works ;)
Best wishes,
--
Peter Clifton
Electrical Engineering Division,
Engineering Department,
University of Cambridge,
9, JJ Thomson Avenue,
Cambridge
CB3 0FA
Tel: +44 (0)7729 980173 - (No signal in the lab!)
Tel: +44 (0)1223 748328 - (Shared lab phone, ask for me)
next prev parent reply other threads:[~2010-10-23 4:07 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-22 12:53 Corruption in glxgears with Compiz Peter Clifton
2010-10-22 13:39 ` Chris Wilson
2010-10-22 14:04 ` Alexey Fisher
2010-10-22 19:10 ` Peter Clifton
2010-10-22 19:29 ` Chris Wilson
2010-10-22 19:38 ` Peter Clifton
2010-10-22 20:41 ` Peter Clifton
2010-10-23 3:35 ` Peter Clifton
2010-10-23 4:07 ` Peter Clifton [this message]
2010-10-23 8:23 ` Alexey Fisher
2010-10-23 9:10 ` Chris Wilson
2010-10-23 9:43 ` Alexey Fisher
2010-10-23 10:07 ` Chris Wilson
2010-10-23 11:42 ` Peter Clifton
2010-10-23 17:48 ` Chris Wilson
2010-10-23 18:33 ` Peter Clifton
2010-10-24 23:06 ` Peter Clifton
2010-10-22 19:13 ` Peter Clifton
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=1287806877.2423.3.camel@pcjc2lap \
--to=pcjc2@cam.ac.uk \
--cc=chris@chris-wilson.co.uk \
--cc=intel-gfx@lists.freedesktop.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.