OpenVG State Tracker For Gallium3D Tomorrow
Phoronix: OpenVG State Tracker For Gallium3D Tomorrow
Zack Rusin, a well known employee of Tungsten Graphics (well, VMware), has announced quite the present for Mesa developers and those looking forward to the widespread adoption of the Gallium3D graphics driver architecture. Tomorrow he will be pushing out perhaps the most interesting state tracker yet, one for OpenVG. The OpenVG state tracker will make it possible for any Gallium3D-based graphics hardware driver to now support this low-level vector graphics API commonly used on hand-held devices with hardware acceleration...
can anything beat the awesomeness of gallium3d?
cant wait for all the stuff to be done...
this is going to so awesome!
which applications/libraries have backends for OpenVG and will benefit from the implementation ??
Anything that draws lines on the screen. Which means pretty much everything that uses GTK or Qt.
Originally Posted by 89c51
well thats nice
Originally Posted by Ant P.
having all that accelerated would be usefull ^^
I was under the impression we already had a certain level of 2d acceleration already (XAA, EXA, UXA?)
Originally Posted by Pfanne
Well... yes and no. (What follows is a summary of what as been said already)
Originally Posted by mendieta
From my understanding (I am not a driver developer), Gallium3d will allow us to be more competitive with good proprietary drivers and make development and maintenance more efficient.
Gallium3d (as already described) is a video card driver modeled on a generic representation of a modern 3d graphics card. The driver is constructed into distinct layers to separate the hardware, OS, and graphics API from each other. This means a developer primarily has to focus on creating the hardware specific layer, a relatively small portion of a modern graphics driver.
This means a new graphics card can get a complete driver with relatively little effort, especially for a vendor who doesn't have an existing Linux driver. It also means that adding a new API (say - OpenGL3) to all existing drivers only has to be done once.
Making something more generic and possibly adding more layers does slow things down a little bit and/or removes options for optimizing it. That being said, the savings in effort of sharing and generalization of all this code should mean stable feature complete drivers are created faster for open systems Linux/BSD/etc.. And by using LLVM to optimize the outputted instructions from the driver should help accelerate rendering considerably, more than making up for the extra layers.
Now does this blow the pants off of proprietary solutions?
Some comments by driver developers suggest that we should be able to create a high performance driver for Linux/BSD/etc. hitting about 80% (can't remember the number exactly) of the performance of proprietary drivers, generally much better than what is available today. Their reasoning was that the last 20% requires a LOT of hardware specific tweaking and tuning, and that LLVM currently doesn't optimize super scalar architectures well enough.
I'm not a driver developer, so I can't comment on the limits of the design choices... but it seems relatively obvious that the trade off of that initial 20% is more than worth it for the better Linux/BSD drivers overall, greater development efficiencies, and more developer time to tweak drivers or to improve other areas of the graphic stack.
... and all the excitement around GPU processing will mean lots of focus on performance from a broader set of developers so things like LLVM super-scalar optimizations shouldn't be that far behind.
It remains to be seen whether open source or proprietary will be king of the FPS scores in the end... but it will be exciting to watch.
Can someone tell me what exactly is a "state tracker" ? Does that mean that the people at tungsten have implemented something that will interface libraries and graphic card through OpenVG for 2D vector acceleration ?
All the news from Gallium 3D sound great, but I still don't understand what exactly is the aim of the project (maybe someone has a link toward an handy explaining page...) and I wonder when we will be able to experience some of those great promises !
"OpenVG™ is a royalty-free, cross-platform API that provides a low-level hardware acceleration interface for vector graphics libraries such as Flash and SVG" from the OpenVG home page.
Originally Posted by 89c51
Short answer is "yes". I started typing a longer answer but it got too long, so let's stick with "yes"