Volker Armin Hemmann posted on Wed, 26 Aug 2009 18:13:51 +0200 as
excerpted:

> On Mittwoch 26 August 2009, Duncan wrote:
>   By 4.2.4 (and I think for 4.2.0, maybe even
>> 4.1.something), kde had fixed that.  It now tries to detect if OpenGL
>> will work before setting it, and normally won't let you set it if it
>> thinks it won't work.  You can override it, but in ordered to do so you
>> have to click thru several warnings, and anybody doing that should be
>> prepared to live with the consequences.  One bug down, and a very bad
>> one at that, so good work, kde.
>>
>>
> no, it tries if composite works with the pre-selected composite type
> (either ogl or xrender).
> 
> And to turn off this test you only have to unselect one checkbox -
> without warnings. In fact, without that check composite works fine for
> me, while with the check my box loves to lock up with some driver
> versions.
> 
> xrender on the other hand is just utterly broken beyond help.

I wasn't aware of it checking composite (they dramatically improved that 
in 4.3.0 and I'm still discovering bits of it I didn't know about from my 
initial setup on 4.2.4), but it also checks OpenGL support, and that's 
what the warnings are on if you don't have it.

It seems you don't have an issue with OpenGL support, however, so you'd 
never see the warnings.  It would appear that just as I wasn't aware of 
some of the new composite stuff since that works just fine here, you 
weren't aware of the OpenGL stuff since that works just fine for you.

>> The one I had learned around, that still exists, is that while kde now
>> detects OpenGL compatibility and won't let you switch to it without
>> warnings if it thinks it won't work, on the all-effects tab (of the
>> desktop effects settings applet), there's still no indication of what
>> effects simply do nothing in xrender/composite-only mode.
> 
> except there is a warning popup when you enable composite telling you
> exactly which stuff does not work. Like explosion.

That popup appears whenever the mode changes, it would seem.  Composite 
toggle, it appears.  OpenGL/Xrender toggle, it appears as well.

Of course, on a system with everything working, it wouldn't appear except 
when switching out of OpenGL mode, if any OpenGL-only effects (like the 
mouse locater) are enabled.

But that doesn't cure the problem I'm talking about, which is that in 
Xrender/composite-only mode (no OpenGL), it should dim out the effects 
that require OpenGL.

For that matter, if composite doesn't work (or when it's disabled), it 
should dim out the effects requiring composite, too.  I think all the 
effects require one or the other, in which case with both disabled, the 
whole tab could be either disabled or removed.

>> One thus has
>> to trial-and-error enable and test anything that looks interesting one
>> by one, and if it does nothing, preferably disable it again.  If they
>> won't work anyway in xrender/composite-only mode, they should be
>> disabled in that mode, so only the effects that actually work are
>> available to select and try.
> 
> even better, per default only effects that work on the vast majority of
> systems are activated. If you are turning on the rest and they don't
> work you get a nice warning message after clicking the 'apply' button.
> You then can unselect them - or don't care because they are not used
> anymore.

Except I don't get that "nice warning".  With OpenGL off, Explode, the 
Cube, Track Mouse, Snow, Cover-switch, and perhaps others, silently allow 
enabling, no warning, they simply do nothing.  They should be dimmed out 
and not even available to be chosen, as they require OpenGL which isn't 
on.  

>> Since most don't work without OpenGL, showing them as available to try
>> and then having them do nothing when people do just that, is confusing
>> at best.  Dim them out and don't let people select them in that case,
>> and usability on that tab for Composite-only users would go up several
>> hundred percent.
> 
> confusing?
> 'Following effects could not be enabled: Explosion'

Except that only pops up when the mode is switched, not when specific 
items are enabled and/or when one hits apply.

> right after the test.
> You can still enable them, in case the next driver update fixes that,
> the one you are installing in five minutes or ignore them, because they
> do no harm deactivated.
> 
> What is not nice about it? Non working stuff is just ignored - and told
> so. If you choose to ignore the warnings - well, that is YOUR choice.

Except as I've said, there are no warnings for effect toggles, only when 
the composite/opengl/xrender the mode is switched.

> KDE is about choice, you know?

Indeed.  Something we agree on! =:^)

> or you are using hardware that is way, way tooo slow. Or you are hit by
> the backfill patch fallout. Or you are using hardware that was never
> meant for this kind of stuff.

This part is purely a settings thing, no more, no less.  If people are 
having trouble with performance, these settings should help, as they did 
me.  I was simply passing them on for others who may find them helpful.  
No more, no less.

>> The simple thing is to simply set that to instant, 0 ms.  However,
>> typing a specific value in the textbox also works, and I discovered
>> that anything up to about 20ms was fine.  But of course using the
>> spinner, the resolution means 0 or 100ms, unless you type it in.
> 
> and you can type it in. Isn't that userfriendly?

??  I wasn't saying it wasn't userfriendly.  All I'm saying is that the 
spinner increment is too high -- don't use it when setting this, if 
you're doing it in ordered to increase performance, anyway.  Just type it 
in.  So I've no idea where you're comment is coming from.  It makes no 
sense in context.

>> What could be the problem now?  Turn off transparency just to check,
>> sure enough the problem went away.  But it couldn't be /just/ that, as
>> that's a kwin v4 thing, and I had it running fine on kde3.  So the
>> problem now had to be the kde4 desktop itself, or rather, how it
>> interacted with kwin.
> 
> no. You are wrong here. kwin3 does not have 'real' transparency. Hust
> fake one. Fake one is pretty fast even on utterly broken hardware. Real
> transparency is used by kwin4. And that needs at least sane drivers and
> not hardware from yesrermillenium. You are comparing apples to oranges
> here.

Yes, kwin3 *DID* have real transparency, working with xorg composite, 
which provided the functionality.  Without composite, it didn't work, so 
yes, it /was/ real xorg based composite transparency.

In that regard, kwin4 uses exactly the same composite functionality that 
kwin3 used.

What I believe you're referring to is the "fake" transparency certain 
kde3 apps (kicker and konsole, at least) used well before xorg composite 
even appeared.  Not only were they doing it earlier, so it couldn't 
/possibly/ have used xorg's composite, but unlike the xorg composite 
based transparency of kwin3 (from 3.5.1, IIRC), it was clearly "fake" 
from a developer perspective in that all it did was take the desktop 
pixel values and blend them with the application window pixel values, to 
form a "fake" transparency that was actually simply duplication and 
blending at the individual application window level.  It was clearly 
"fake" transparency from a user perspective as well, since it didn't 
"see" any intervening windows between it and the desktop, like "real" 
composite based transparency does.

That's a mistaken generalization of fact that a lot of people make.  
konsole3 and kicker never had "real" transparency, no, it was all faked.  
But kwin itself did, using the same xorg composite extension that kwin4 
does for that and other non-OpenGL based effects.  Zooming, drop-shadows, 
the zooming based present-windows task-switcher and desktop-grid effects, 
all these are composite based, using the /same/ xorg composite technology 
kwin3 did, post 3.5.1, I believe was the version that introduced it.

>> But guess who was one of the big users of the bad code?  Right, plasma.
>> Turns out that each plasmoid update was triggering a repaint, not for
>> that relatively small rectangular area, BUT FOR THE ENTIRE CONTAINER.
>> Now that's bad enough if it's a panel, but when that widget is on the
>> desktop, ITS THE ENTIRE DESKTOP!  Of course, when it's a dynamically
>> updating plasmoid such as a temperature or CPU activity gauge, guess
>> what, you're now repainting the entire desktop at every update of that
>> plasmoid.  And if there's several such plasmoids...
> 
> they do nothing with recent enough graphics hardware :P

And you know why?  It's because the graphics hardware accelerates the 
repaint, and is smart enough to realize that the entire desktop doesn't 
need repainted, despite the instructions it was handed. =:^)  But qt's 
still handing the hardware bad instructions.  The hardware's just smart 
enough to recognize and ignore the parts that haven't actually updated 
and thus don't actually need repainted.

But of course not everybody has that level of hardware acceleration yet.

>> That's bad enough as it is, but when it's just the bare desktop, still
>> tolerable.  But now consider what happens when that's being filtered up
>> thru multiple layers of semi-transparent windows!  No *WONDER* people
>> with older or not well accelerated graphics cards are having issues! 
>> And on a desktop the size of mine, say 1920x2200 after the panels top
>> and bottom are removed, still running on a vintage Radeon 9200, that's
>> a HUGE performance issue!  No WONDER I was having problems with it!
> 
> and now we are getting down to the interessting facts.
> 
> The short version of all your text:
> 
> 'I had tried some graphic demanding stuff, turned into a even bigger
> workload by a small programming mistake on hardware that was even
> considered slow and underpowered when it was released 6 years ago.'

May be, but that doesn't change the need to do the tweaks to fix the 
problem, which was what the entire post was about.  Given the problems 
others have posted, it's likely to be helpful to them as it was to me, 
and there's no reason they should have to do all the same work I did to 
rediscover what I already know, after learning it the hard way.

>> But meanwhile, its the stack of bugs such as this, that really
>> shouldn't be appearing in an X.0 release let alone X.3, that's
>> distressing.  And it's even /more/ distressing when support for the
>> previous very stable version is being dropped, before the current
>> version even gets up to normal X.0 version quality, let alone the X.1
>> that many wait for before they consider it safe to switch.
> 
> you mean bugs that only hit when you use modern graphics on a 6 year
> old, slow even then, graphic adapter?

Could be, but regardless, there's people out there using such hardware, 
and the posted information both explains how I discovered the issues, and 
the workarounds and configuration tweaks necessary to get decent 
performance anyway, despite the age and speed of the hardware.

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman


Reply via email to