From: bugzilla-daemon@freedesktop.org
To: dri-devel@lists.freedesktop.org
Subject: [Bug 38800] glXSwapBuffersMscOML is slow on AMD Fusion but not on Intel 945 w/Atom
Date: Thu, 7 Jul 2011 14:06:51 -0700 (PDT) [thread overview]
Message-ID: <20110707210651.DB24613004D@annarchy.freedesktop.org> (raw)
In-Reply-To: <bug-38800-502@http.bugs.freedesktop.org/>
https://bugs.freedesktop.org/show_bug.cgi?id=38800
--- Comment #36 from Mario Kleiner <mario.kleiner@tuebingen.mpg.de> 2011-07-07 14:06:51 PDT ---
(In reply to comment #35)
> Hmm, but V_UPDATE irq is not supported on R500, if i look at the correct
> manual, which is still in widespread use for many serious applications (and on
> my main laptop for development and testing).
Hmm, and we can only use it to detect pageflip completion, not for programming
a pageflip outside of vblank, because at a regular vblank the double-buffered
display registers won't switch. Therefore we would need the vline irq anyway
for programming the flip, so maybe it is less implementation effort to only use
the vline irq? It is also supported on all asics, which is good.
At least on R500 and evergreen the vline irq is per crtc, and a crtc can either
display a fullscreen drawable, which would use page-flipping for bufferswaps,
or display a regular desktop where drawables use vline sync'ed ddx CopyRegion
blits for swapping. Offscreen blits (e.g., inside desktop compositor?) are not
vsync'ed, so maybe it can't happen that the ddx and pageflip code would make
simultaneous conflicting use of the vline irq's?
> Michel Daenzer wrote:
> Looks good, but note that we only need to avoid emitting the flip from
> the same vblank we were already in when the ioctl was called, to avoid
> flipping too early. After that, we can and probably want to emit the
> flip even from vblank, to avoid the flip being delayed by another frame.
We could use the vblank timestamping to solve this:
In ioctl() use drm_vblank_count_and_time() to get the timestamp of the
(predicted) end of the current/most recent vblank interval. If we are already
outside the "bad" vblank at ioctl() call time, this will be a timestamp in the
past. If we're inside the "bad" vblank, it will be the predicted time of the
end of the forbidden vblank. In any case, programming a flip at a
do_gettimeofday() time after that timestamp (plus maybe one or two scanline
durations for extra paranoia) would be save. We could just submit that this
deadline to the crtc->work item and check system time against it in the fence
irq handler to decide if it is safe to program the flip immediately.
--
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
next prev parent reply other threads:[~2011-07-07 21:06 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-30 10:48 [Bug 38800] New: glXSwapBuffersMscOML is slow on AMD Fusion but not on Intel 945 w/Atom bugzilla-daemon
2011-06-30 10:53 ` [Bug 38800] " bugzilla-daemon
2011-06-30 10:53 ` bugzilla-daemon
2011-06-30 10:54 ` [Bug 38800] New: " Simon Farnsworth
2011-06-30 12:20 ` [Bug 38800] " bugzilla-daemon
2011-06-30 15:09 ` bugzilla-daemon
2011-06-30 17:10 ` bugzilla-daemon
2011-07-01 16:54 ` bugzilla-daemon
2011-07-01 16:57 ` bugzilla-daemon
2011-07-04 11:22 ` bugzilla-daemon
2011-07-04 13:27 ` bugzilla-daemon
2011-07-04 16:19 ` bugzilla-daemon
2011-07-04 16:30 ` bugzilla-daemon
2011-07-05 12:18 ` bugzilla-daemon
2011-07-05 12:24 ` bugzilla-daemon
2011-07-05 16:01 ` bugzilla-daemon
2011-07-05 16:56 ` bugzilla-daemon
2011-07-05 17:37 ` bugzilla-daemon
2011-07-05 17:57 ` bugzilla-daemon
2011-07-06 10:15 ` bugzilla-daemon
2011-07-06 10:19 ` bugzilla-daemon
2011-07-06 14:24 ` bugzilla-daemon
2011-07-06 20:54 ` bugzilla-daemon
2011-07-06 21:13 ` bugzilla-daemon
2011-07-06 21:25 ` bugzilla-daemon
2011-07-06 21:35 ` bugzilla-daemon
2011-07-06 21:52 ` bugzilla-daemon
2011-07-07 1:02 ` bugzilla-daemon
2011-07-07 1:43 ` bugzilla-daemon
2011-07-07 3:07 ` bugzilla-daemon
2011-07-07 8:47 ` bugzilla-daemon
2011-07-07 13:36 ` bugzilla-daemon
2011-07-07 13:49 ` bugzilla-daemon
2011-07-07 14:11 ` bugzilla-daemon
2011-07-07 17:46 ` bugzilla-daemon
2011-07-07 19:06 ` bugzilla-daemon
2011-07-07 20:39 ` bugzilla-daemon
2011-07-07 21:06 ` bugzilla-daemon [this message]
2011-07-07 21:25 ` bugzilla-daemon
2011-07-07 21:51 ` bugzilla-daemon
2011-07-08 9:41 ` bugzilla-daemon
2011-07-08 10:05 ` bugzilla-daemon
2011-07-08 11:32 ` bugzilla-daemon
2011-07-08 12:18 ` bugzilla-daemon
2011-07-08 14:12 ` bugzilla-daemon
2011-07-08 14:17 ` bugzilla-daemon
2011-07-08 14:20 ` bugzilla-daemon
2011-07-08 14:22 ` bugzilla-daemon
2011-07-08 14:25 ` bugzilla-daemon
2011-07-08 14:51 ` bugzilla-daemon
2011-07-08 18:16 ` bugzilla-daemon
2011-07-08 18:21 ` bugzilla-daemon
2011-07-11 21:28 ` bugzilla-daemon
2011-07-14 21:19 ` bugzilla-daemon
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=20110707210651.DB24613004D@annarchy.freedesktop.org \
--to=bugzilla-daemon@freedesktop.org \
--cc=dri-devel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox