Comment by wmf

13 years ago

I'm pretty sure that I'm using the same definition of 2D acceleration as the original poster. We're not talking about compositing.

EXA and XRender (the 2D acceleration in X.org that the original poster is talking about) is just 2D compositing. It is not about drawing line primitives on the graphics card.

No mainstream 2D rendering system (not X.org, not Mac OS Quartz, not Windows GDI/WPF+DWM) uses any graphics acceleration to draw 2D primitives. In some cases, drawing may be done to graphics card memory (to avoid needing to copy to graphics memory later) but that's it (see CALayers on the Mac). The lines and other primitives are all CPU determined. This is still just a compositing layer.

The intractable performance problems of the Mac's Quartz 3D Extreme are exactly why drawing is always done by the CPU -- it is actually faster to do this work on the CPU. You'd link a graphics shader might help but performance metrics prove otherwise.

The article itself is badly confused (on this point and others). X11/X.org has no advantage in this regard.

  • "No mainstream 2D rendering system (not X.org, not Mac OS Quartz, not Windows GDI/WPF+DWM) uses any graphics acceleration to draw 2D primitives."

    That isn't entirely true. Windows has Direct2D for graphics and DirectWrite for text after all.

    Direct2D and DirectWrite were first introduced for Windows Vista and 7 using Direct3D 10. Windows 8 expanded it using new features found in Direct3D 11.

    You can see the high performance and fluid animations it brings in many of the Metro applications. Desktop applications need to migrate their existing code of course. IE and Firefox have done this already.

    http://blogs.msdn.com/b/b8/archive/2012/07/23/hardware-accel...

    • And there's no reason we can't have the same kind of library on linux, except one that would render using OpenGL. In fact, if I'm not mistaken, Qt already supports rendering using OpenGL.

I don't disagree with either of you. :) What I was trying to say was that there are lots of operations that are hardware accelerated in OS X for quite a while.