[IDEA] shrink xrender featureset

Clemens Eisserer linuxhippy at gmail.com
Sat Nov 22 09:40:37 PST 2008


Hi,

> Currently there exist several operations in xrender that are better
> off client side or through some other graphic api (imo). Think of
> trapezoid rasterisation, gradient rendering, etc.
> Doing this stuff
> client side avoids unforseen migration issues and doesn't create any
> false impressions with the api users.
Well, in my opinion this is not a question where to do the stuff
(client/server) - but rather how.
Both, trapezoids and gradients cause migration because EXA currently
has a quite strict view on accaleration.
If something can be done on hw its done by hw, otherwise eerything
else is migrated out.

You still could to the same on the server you would do on the server-side.
Just imagine you copy gradients or traps to temporary surface before
you use them in a composition operation - it would be the same as
client side, except you don't need to copy everything arround.
Furthermore drivers often can fallback efficiently, like Intel drivers with GEM.

If you omit gradients or trapezoids you would also have to transport a
lot of stuff over wire - not really nice.

> My suggestion would be to deprecate everything, except solid,
> composite, cursor stuff and glyphs. The idea is to stop doing
> seemingly arbitrary graphics operations that end up causing slowness
> most of the time (if not worked around "properly"). At this stage
> noone accelerates these operations, so there can be no complaints
> about that.
Well at least nvidia plans to accalerate gradients as well as
trapezoids in theirproprietary drivers.
Intel also has plans to optimize gradients with shaders.

My opinion is that RENDER is quite fine, but there are some parts
where drivers are lacking.
Hopefully the situation will improve soon, at least for gradients.

- Clemens



More information about the xorg mailing list