Hello, My name is Tsvetan Tsvetanov, Principal Software Engineer with AEC Solutions User Experience Team at Autodesk. Until recently I was part of the Graphics Group working on Revit and I would like to shed some light on work that was done to improve graphics performance in the 2010 release.
As in any software development there are requests that lead to creation of new functionality and others that are are considered "renovation." In this release we implemented a few changes that may not be immediately visible. These changes are pretty big and will open doors for possible feature enhancements for our graphics output. Our graphics engine is tightly coupled with our geometry engine. That way, we are able to allow our geometry data to define the behavior or our graphics visualization, for example the color change when you hover or select an element. This makes the graphics engine very flexible and allows us to define states and conditions for when and how something would be processed by the pipeline (the algorithms that determine how things will appear on the screen.) But in the same time it is limited by the fact that such flexibility can comes with a performance cost.
So what did we do this release ?
One of the biggest, yet mostly invisible changes this release was the shift to a new graphics engine that allowed us to support DirectX together with OpenGL. Along with that, we have started to cache our graphics data so we can send it directly to the graphics hardware without a need to pre-calculate it on every single view update. This should lead to better performance depending on the hardware in use. This performance gain might not be immediately noticeable. For example, when the cache is originally created or when there is not enough memory and we start to clean it, there is an initial performance hit. However, subsequent displays of a cached view should be noticeably faster (once again, depending on hardware.)
This development effort was done to create a framework and mechanisms that will allow us to work on future user-requested enhancements for our graphics output and functionality. These improvements are already noticeable in the current release and should improve the speed with which you navigate views in Revit.
Has this been consistent with your experience with the release to date?
I have noticed some improvements, but it depends on the graphics card, of course. We had been investing in Nvidia Quadro cards, which are great for heavy OpenGL work, but perhaps only so-so with DirectX (at least at the level of card we've been buying). With Revit 2010, a really good consumer level card seems to work better for a lot less money. Given Microsoft's move away from OpenGL, this seems like a good move for Revit.
Does the new caching scheme reduce a workshared model's network chattiness? One thing we're dieing for is WAN performance improvements.
Posted by: Joel Osburn | April 27, 2009 at 04:12 PM
No the caching I mentioned is related to Graphics and not Network performance.
Posted by: Tsvetan Tsvetanov | April 27, 2009 at 04:52 PM
Tsvetan -- I and many others appreciate the efforts you're making with graphics performance that we're putting up with the confusion & delay caused by the new UI.
We noticed an immediate improvement in display performance in 2010, which goes a long way to address the regression in performance between 2008 and 2009. We have a mix of Quadro, Geforce, FireGL and Radeon-based computers and all of them are seeing similar results on XP32 and Vista: faster than 2009, a tad slower than OpenGL in 2008.
As important as generation of a new view is, most users would likely tell you that navigation speed in 2D and 3D views is the most important metric of all. Frame rate is very important so that when you are spinning in 3D or panning in 2D you can quickly start and stop and not lose track of where you are, or be held back by the software.
We look forward to future improvements in this regard!
Posted by: Wes Macaulay | April 27, 2009 at 05:50 PM
I've noticed a small increase in view performance in certain views, which is great, but this is offset by the poor graphical performance of the Ribbon UI.
The Ribbon in my experience is quite slow and sluggish, and a lot of the time I am able to think far enough ahead and place my cursor over a tool quicker than the Ribbon can regenerate. This is on my work PC. On my home PC, the regeneration delays are 4 times longer.
I'm hoping that The Factory is providing plenty of resources to improve the graphical performance in this area, to make the Ribbon perform far quicker than it currently is.
Posted by: Chad | April 27, 2009 at 06:57 PM
Thanks Tsvetan.
It's interesting that you mentioned the current system still supports OpenGL. Why is there only an option to enable DirectX hardware acceleration then?
Posted by: David Baldacchino | April 27, 2009 at 11:21 PM
I've noticed a considerable performance improvement migrating from 2009 to 2010. Keep up the good work.
Posted by: Wim Tas | April 28, 2009 at 03:09 PM
David, Hardware accel is only enabled in DirectX because we had to focus our efforts on getting that right in this release.
Posted by: Anthony Hauck | April 29, 2009 at 03:18 PM
Very interesting, thank you.
Is there any hope of there ever being certified graphic drivers for Revit?
All my other cad applications have them, it has always baffled me that Revit does not.
Posted by: William Sutherland | April 29, 2009 at 03:34 PM
There will likely be little need for certified drivers because of WHGL, Microsoft's own test for drivers under DirectX...
Posted by: Wes Macaulay | April 29, 2009 at 04:10 PM
Erik and others, see this poll:
http://forums.augi.com/showthread.php?t=100751
I think this change should be put into Revit in the next Service Pack.
NOT A SINGLE PERSON WOULD COMPLAIN ABOUT THIS CHANGE -- THEY'D LIKELY DANCE FOR JOY ABOUT IT!
Posted by: Wes Macaulay | May 06, 2009 at 01:16 PM
I have not noticed any speed improvements with Revit 2010, in fact, 3D views with shadows are slower to regenerate than with 2009.
We are using Quadro FX370M with 256Mb graphics memory and Quadro FX1500 with 256Mb graphics memory. Both with the latest drivers. Niether card is any faster than the other, and both are slower than 2009.
Posted by: Andrew Dobson | May 10, 2009 at 01:48 PM
Are there recommended or certified drivers for graphics cards, in the same way as AutoCAD?
Posted by: JGA | May 11, 2009 at 08:39 AM
At this time, Autodesk does not certify or even recommend specific graphics cards for Revit. There are a few posts over at AUGI (including this one http://tinyurl.com/o2y9cg) where people are discussing hardware setups that work well, and those that do not.
Posted by: Anthony Hauck | May 11, 2009 at 11:17 AM
Is the difference in the temporary dimension display a part of the DirectX update? 2010's are fuzzy and hard to read.
Posted by: Aaron Rumple | May 12, 2009 at 04:08 PM