Composite and application compatibility
Mike Hearn
m.hearn at signal.QinetiQ.com
Thu Sep 2 02:23:45 PDT 2004
So, I guess the boat has sailed on this one? Is there no chance of the
decision to use use an UNBREAK_ME_PLEASE environment variable being
reconsidered?
Mike Hearn wrote:
> Hi guys,
>
> I've been reading the archives of this list and am a bit concerned that
> the introduction of X compositing will break backwards compatibility
> with some important software.
>
> The first thread about this seems to have been the Flash/Mozilla issue.
> The second suggests that some GTK 1.x apps can be broken.
>
> This is a serious amount of breakage, similar in scope to the problems
> caused by the introduction of NPTL which mangled RealPlayer, the JVM and
> Wine amongst many other high profile, popular applications.
>
> The recommended workaround seems to be to set an environment variable,
> but I have severe reservations about this approach. It's been used
> before, to disable NPTL for apps that didn't work with it, and has
> several serious disadvantages:
>
> 1) You have to know about the environment variable in order to use it.
>
> LD_ASSUME_KERNEL was never well documented until long after the fact.
> Even if XLIB_SKIP_ARGB_VISUALS is well documented in man pages,
> release notes etc, the vast majority of users will still be unaware
> of it just through the nature of the thing.
>
> 2) You have to be able to diagnose the problem in order to use it.
>
> For somebody who is not a programmer, this can be impossible. Often
> I've only thought of using LD_ASSUME_KERNEL after putting gdb to work
> on mysterious deadlocks and crashes. This is far beyond
> the abilities of most Linux users who these days are usually not
> developers. Even if the user *is* able to use a debugger there's no
> guarantee that they will correlate BadMatch errors/crashes in Xlib
> with the introduction of ARGB visuals much as many people could not
> correlate crashes and deadlocks inside libpthreads with NPTL.
>
> 3) It's a pain in the ass to use. You have to write a wrapper script
> for each program affected.
>
> 4) The vast majority of people can't or don't use them. Go read any
> popular Linux (or even *BSD) tech support forum to see endless
> threads full of people suffering through needless breakage.
>
> From my understanding of the technology clients have to be specifically
> written to use ARGB visuals anyway, so there's no harm in hiding them
> from applications entirely unless they opt in. What is the problem with
> having the developer do:
>
> XCompositeEnableARGBVisuals();
>
> before doing an XOpenDisplay or similar to prevent widespread breakage?
>
> In the Flash/Mozilla thread, this seemed to be the original intention
> but was hard to implement because of bad interactions between XRENDER
> and magically hidden visuals. If the visuals were simply ignored
> entirely unless enabled before connect (ie even the composite APIs
> couldn't see them) would this still cause a problem?
>
> This opt-in API could then be propogated up through the toolkits so ARGB
> visuals are enabled on an app by app basis.
>
> What are peoples thoughts on this?
>
> thanks -mike
> _______________________________________________
> xorg mailing list
> xorg at freedesktop.org
> http://freedesktop.org/mailman/listinfo/xorg
>
>
More information about the xorg
mailing list