Re: [AD] SF.net SVN: alleg:[13312] allegro/branches/4.9 |
[ Thread Index |
Date Index
| More lists.liballeg.org/allegro-developers Archives
]
- To: "Coordination of admins/developers of the game programming library Allegro" <alleg-developers@xxxxxxxxxx>
- Subject: Re: [AD] SF.net SVN: alleg:[13312] allegro/branches/4.9
- From: Thomas Fjellstrom <tfjellstrom@xxxxxxxxxx>
- Date: Sat, 24 Apr 2010 19:40:59 -0600
On April 24, 2010, Peter Wang wrote:
> On 25 April 2010 10:39, Thomas Fjellstrom <tfjellstrom@xxxxxxxxxx> wrote:
> > I'm not sure I can see how xrandr info fetching can cause any serious
> > cpu use, and even then audio just shouldn't stutter these days (least
> > I find it hard to get audio to stutter even when both my cores are
> > pegged, amarok and X/KDE can be locked up solid, but the audio will
> > still play).
>
> I think it has to do with analogue VGA connectors. IIRC the flickering
> happens when the analogue outputs are used (even as secondary monitors).
> Maybe the information it needs is not readily available so it uses some
> brute force probing technique on those monitors.
I haven't noticed such a problem on any of my systems (intel gma vs radeon
vs gforce). So I'm not sure what's going on.
> > I suspect something about your gfx drivers, or version of Xorg. Though
> > I'm not sure how we can work around that properly. Or if we /can/. As
> > I mentioned, xrandr will probably need to be inited at startup once we
> > support listening for xrandr change events (so we can send events when
> > things like a switch out happens, etc).
>
> The problematic call is to XRRGetScreenResources(). Maybe we can set up
> just enough of randr to listen to the events without calling it.
That might be possible. Could probably make the functions that need the
xrandr_res variable, just call that itself if it needs to. ie: separate the
XRRGetScreenResources and the screen detection code from the initial
detection code. I used to have the code split up into init, query and exit
functions, rather than just init, and exit.. Could easily enough move back,
and functions that need to query, well call query, and it can cache the
"res" structure if need be (cut down on flickering in your case).
I'm not sure how to actually listen for xrandr events yet. I assume you have
to tell X you want xrandr events with some flags or mask or some such.
> Peter
>
> -------------------------------------------------------------------------
> -----
--
Thomas Fjellstrom
tfjellstrom@xxxxxxxxxx