Since putting up the graphics card upgrade article a few things surfaced. The first came to light on the DAZ Studio forum at DAZ 3D. The latest beta includes some chunky OpenGL, and therefore, graphics card related updates.
DAZ Studio 4.6x Introducing Texture Shaded 2.0
In their latest Beta, DAZ 3D have added a new preview mode to their viewport currently referred to as “Texture Shaded 2.0”. This new preview DrawStyle gives a much more accurate preview of bump, normal, and specular effects with DAZ Studio’s default distant, spot, and point lights. At this point the new preview mode is very slow when compared to the older “texture shaded”, but produces a much better preview. To put the new system to the test I loaded one of my heavier scenes (600k polygons), which I also used to test OpenGL response in the previous article. Graphics card used in both articles is a tired Radeon HD 5770.
Using Texture Shaded 2 in this scene caused the viewport to all but grind to a snail’s pace. In this instance the difference in quality between the two preview modes is very noticeable.
The current state of Texture Shaded 2.0 is unlikely to be a reflection of performance in future releases. At the moment it appears to put extra load on the CPU when idle, but seems to have similar usage to the previous texture shade version while viewport manipulations are occurring. The new preview mode seems to move less of the load on to the GPU than the previous version.
Display Optimization – It Makes A Difference!
The second addition I would make to the previous article is that since then I have discovered the “Display Optimization” in the Interface preferences. With this turned to “Best” the Texture Shaded preview was much, much quicker. In fact, this scene ran almost as smoothly as a simple scene with a single Genesis figure. What display optimisation does, according the documentation, is load more of the scene’s geometry into the graphics card’s memory.
Embarrassingly, this somewhat changes my findings from the last article, but perhaps only slightly. With just about any graphics card of the last 4 years or so, with the most current drivers installed, it should be able to get good viewport response with quite large scenes. With larger scenes, particularly those with lots of textures with the Texture Resources (also in interface preferences) turned all the way up, having a graphics card with a gig or more of RAM will make a huge difference.
To push my card as far as it would go I loaded a jumble of scenes which resulted in 15.5 million polygons (+ subd), and 108 megabytes of textures (much less than I expected). The mish-mash produced more texture information than the graphics card could store in its own RAM, almost 2 and a half times over. There was a good five minutes or more of unresponsiveness – got a low memory warning – but after everything loaded in, the viewport went back to running almost as smoothly as with the original 600K polygon scene.
With Display Optimization turned off and Texture Resources all the way down I was using 429 MB of the card’s RAM. With both of these fully enabled, 945 MBs of the card’s 1024 MBs of RAM was used with 1441 MBs pushed back onto system RAM. With optimization on best and texture quality turned down. the usage was 507 MBs of dedicated RAM and 98 MBs of system RAM.
We see that, while Display Optimization lumps very little on the graphics card, it can make a huge difference. Getting the best possible Texture Shaded preview, turning texture quality all the way up, adds a huge load to VRAM, even when using quite conservative textures – 213 of 290 were under 500 KB.
Turning Texture Shaded 2.0 on with full optimization and texture quality set to second highest caused DAZ Studio to grind to a halt as textures endlessly washed in and out of the VRAM and back into the system. With more system RAM and a graphics card with more memory bandwidth would probably give a quicker turn around, but the end result for most older or entry level cards, working on a scene this size and at this level of preview quality, would probably be beyond unworkable in terms of viewport interaction, posing etc. When texture quality was turned down to lowest settings viewport response was still painfully slow and unworkable.
When it comes to working at the highest possible preview settings in DAZ Studio it seems that newer mid/higher level consumer cards do definitely have a place. For those happy to work with lower quality texture settings on large scenes, older cards and upper entry level to mid-level cards are good enough. With further refinement of the Texture Shaded 2.0 preview it is likely that its usage, even on bigger scenes, will be less problematic.
Not all cards, specifically ancient cards that are barely likely to meet the minimum requirements for DAZ Studio 4.6, will support Display Optimization. Some cards will offer varying degrees of compatibility, depending on drivers, VRAM capacity and level of geometry/texture detail. I encountered some graphical glitches when posing characters when VRAM and GPU were fully loaded.
Of course, RAM is not the only consideration with this feature, GPU loaded tended to be high when performing most viewport tasks such as posing, so bigger is better. Even my HD 5770 chomped along happily in instances with a good deal of geometry, but choked up under the weight of copious textures at high texture quality settings. Something like a Radeon HD 7850 with 2 GB GDDR5 or a GeForce GTX 660 would be more than sufficient. A HD 7770 would be similar to my current card in terms of a simple comparison, but has a newer GPU architecture and faster clock speed. The 7770 is compact (don’t need huge tower to fit the bugger in), works happily on a 450 w power supply (depending on the rest of your system) and draws everything it needs direct from the PCIe port, without need for additional cables.
GPU rendering AMD OpenCL Compile/Kernel Issues
The third item is not actually related to DAZ Studio, unless you also happen to be a LuxRender user. In that case there is an indirect link. This issue is something I had some awareness of, but due to the technical nature of the issue, I was not able to wrap my head around it and didn’t feel comfortable writing about. It turns out the issue can rather simply be put into laymen’s terms. To quote directly from my informant, again from the DS forum at D3D, “There is a bug in the OpenCL compiler of the catalyst driver that makes the kernels too big (using much more memory than nVidia compiler).”
What this means is that in certain situations OpenCL will chew up all your system memory and crash. As far as I can tell this will have little or no effect on current LuxRender users, but this problem could put the brakes on LuxRender GPU development, and has already seen Blender Cycle’s implementation of OpenCL put on the back burner. Thankfully AMD seems to be quite keen to fix the issue, but when a fix will be available is anyone’s guess.
With Texture Shaded 2.0 DAZ 3D seem to be making good advances in catching up to Poser in terms of real-time OpenGL viewport preview. At the moment it is slow, and unusable for real-time in all but the smallest scenes (at least with texture quality maxed out), but it will undoubtedly see a good deal of optimisation. With improved shadows in the preview, DAZ would be getting very close to the superb quality of the current Poser offering. At this point Poser’s much better quality to speed preview is undoubtedly the winner, and if this is anything to go by, then anything more than an entry or mid-range card would be over kill for most users.