State of Linux graphics
jonsmirl at gmail.com
Wed Aug 31 18:17:39 PDT 2005
On 8/31/05, Eric Anholt <eta at lclark.edu> wrote:
> "EXA extends the XAA driver concept to use the 3D hardware to accelerate
> the X Render extension." No, EXA is a different acceleration
> architecture making different basic design decisions related to memory
> management and driver API.
> "If the old hardware is missing the hardware needed to accelerate render
> there is nothing EXA can do to help." Better memory management allows
> for better performance with composite due to improved placement of
> pixmaps, which XAA doesn't do. So EXA can help.
> "So it ends up that the hardware EXA works on is the same hardware we
> already had existing OpenGL drivers for." No. See, for example, the nv
> or i128 driver ports, both completed in very short timeframes.
> "The EXA driver programs the 3D hardware from the 2D XAA driver adding
> yet another conflicting user to the long line of programs all trying to
> use the video hardware at the same time." No, EXA is not an addition to
> XAA, it's a replacement. It's not "yet another conflicting user" on
> your machine (and I have yet to actually see this purported conflict in
> my usage of either acceleration architecture).
> "There is also a danger that EXA will keep expanding to expose more of
> the chip's 3D capabilities." If people put effort into this because
> they see value in it, without breaking other people's code, why is this
> a "danger?"
My fd.o account has been reenabled so I can update the article now. I
replaced the EXA section with the following text. Does it sufficiently
address your comments?
EXA replaces the existing 2D XAA drivers allowing the current server
model to work a while longer. It accelerates the X Render extension by
providing more a more advanced driver and memory management API. EXA
was originally presented as being a solution for all hardware
including old hardware. But this isn't true. If the old hardware is
missing the alpha blending hardware needed to accelerate render the
core of render there isn't much you can do, although EXA may be able
to help increase performance on these chips by better managing video
memory. So it ends up that the hardware EXA works on is pretty much
the same hardware as we have existing OpenGL drivers for. Exceptions
exist like nv and i128 where the hardware is 3D capable but no OpenGL
driver exists. There is also concern that EXA will keep expanding to
expose more of the chip's 3D capabilities. The EXA bandaid will work
for a while but it is not a long term fix. A key point to remember is
that EXA/render is still just a subset of the broader Mesa OpenGL API
and over time we always want more and more features.
jonsmirl at gmail.com
More information about the xorg