Viewport Accelerator for Daz Studio 6

Authors:
Viewport Accelerator for Daz Studio 6

Viewport Accelerator optimizes the entire Daz Studio 6 viewport pipeline, improving how scene data is processed, transferred, updated, and drawn in the background. These improvements benefit viewport navigation as a whole, while the largest and most noticeable gains are typically seen in Texture Shaded and NVIDIA Iray modes. With NVIDIA Iray Preview enabled, camera movement, orbiting, panning, and navigating around the scene become significantly more fluid, especially in heavy scenes where the viewport would normally struggle to keep up. Texture Shaded mode also becomes much more responsive, with smoother camera movement and faster interaction throughout the scene.

It does all of this without changing the appearance of your scene, reducing texture quality, lowering viewport resolution, removing scene elements, or modifying your render settings. Viewport Accelerator improves performance by directly addressing bottlenecks inside the viewport pipeline.

In heavy test scenes, Texture Shaded performance increased from around 4–5 FPS to as high as 60 FPS, while NVIDIA Iray viewport performance increased from around 1–2 FPS to nearly 40 FPS.

The goal is not simply to bring Daz Studio 6 back to Daz Studio 4.24-level viewport performance. With Viewport Accelerator enabled, Daz Studio 6 can become significantly smoother than Daz Studio 4.24 in the same scenes. Actual performance improvements will vary depending on the scene, hardware, viewport mode, and Daz Studio settings.

----------

Daz Studio 6 introduced a heavily revised viewport system. While these changes brought a new internal viewport architecture, they also introduced a number of performance bottlenecks that can make camera movement and scene navigation noticeably heavier, particularly in complex scenes and when using NVIDIA Iray Preview. During development, I investigated these slowdowns in detail and found that many of them were not caused by insufficient GPU or CPU performance.

Instead, a significant amount of viewport time was being lost to unnecessary calculations, repeated data transfers, duplicated work, synchronization delays, and parts of the viewport pipeline being rebuilt far more often than necessary. Viewport Accelerator addresses these bottlenecks directly. It currently includes 14 separate viewport performance optimizations across both Texture Shaded and NVIDIA Iray modes.

----------
What It Improves
----------

Viewport Accelerator improves multiple parts of the Daz Studio 6 viewport experience, including:

- Smoother viewport navigation and camera movement
- Lower viewport latency and higher FPS
- Faster switching between Texture Shaded and NVIDIA Iray modes
- More responsive hover effects
- Reduced delays while orbiting, panning, and moving through the scene
- Improved performance when using multiple viewports
- Smoother NVIDIA Iray Preview interaction
- Faster viewport updates after camera movement
- Reduced stuttering and short freezes during navigation
- Lower unnecessary CPU and GPU workload
- Better responsiveness in heavy or complex scenes
- And more

----------
Want Faster Renders Too?
----------

Viewport Accelerator makes working inside the Daz Studio viewport faster and smoother.

For faster NVIDIA Iray renders, check out Render Accelerator Studio, which is designed to significantly reduce render times while preserving the final image quality.

Viewport Accelerator is completely free for all Render Accelerator Studio users.

https://www.renderhub.com/laurendev/render-accelerator-studio-v1-3-daz-4-24

-----
Compatibility
-----

Viewport Accelerator currently works only with Daz Studio 6.
Daz Studio 4.24 and earlier versions are not currently supported.
Daz Studio 4.24 support may be added in the future depending on user demand.

---
The 14 Viewport Optimizations
---

Below is a technical breakdown of the optimizations currently included in Viewport Accelerator, ordered approximately from the largest performance impact to the smallest.

1) Daz's Iray plugin was treating every newly generated Iray image as if it were an entirely new image source. Qt3D was interpreting this as a complete resource change and was repeatedly rebuilding parts of the rendering pipeline, including layers, materials, and drawing commands. Viewport Accelerator changes this behavior so that a new Iray image is treated only as a texture update. This allows Qt3D to refresh the texture without rebuilding unrelated rendering data. In testing, this optimization alone reduced Iray viewport frame time from approximately 215 ms to 87 ms, making frames around 2.5x faster.

2) Daz Studio 6 was handling Iray camera movement in a way similar to Daz Studio 4.24. Whenever the camera changed, Iray was being told to cancel the current operation and continue. NVIDIA's documentation notes that, with newer Iray versions, this behavior can make interactive navigation less responsive. Viewport Accelerator changes this behavior so that Iray restarts from the updated camera position when appropriate, following NVIDIA's recommended approach. In testing, this reduced Iray viewport frame time from approximately 130-150 ms to 64 ms.

3) Qt3D was sending each frame's data to the GPU in many small pieces, and some of the same data was being uploaded again for multiple drawing layers. With an Aux viewport open, this workload was increasing even further. Viewport Accelerator prepares these data blocks in memory first and sends them only once where possible. Resource links that have not changed are also reused instead of being rebuilt. In testing, this reduced drawing time from approximately 25 ms to 7 ms per frame. With an Aux viewport open, its additional cost also dropped from around 55 ms to approximately 5-10 ms.

4) Before drawing each frame, Daz was waiting for a new Iray image to become available. In one measured 76 ms frame, approximately 29 ms was being spent only on this wait. Viewport Accelerator allows the viewport to continue drawing with the latest completed Iray image while Iray computes the next one in the background. Camera requests that arrive before Iray finishes are also merged so that Iray has enough time to complete useful work instead of constantly restarting. In situations where Iray images arrive more slowly, such as at Normal Manipulation Resolution, Daz's original waiting behavior is preserved when necessary.

5) Qt3D was sending approximately 6,880 bytes of data for every object in every frame, even though Daz's shaders were reading only around 480 bytes of that data. The remaining data was not being used. In addition, around 1,500 data blocks were being cleared unnecessarily in every frame. Viewport Accelerator reduces these transfers to the amount of data the shader actually needs and clears the blocks only when they are first created or when necessary. In testing, this reduced Texture Shaded frame time by approximately 30%, from 54 ms to 38 ms. It also reduced Iray frame time by approximately 13% and cut the additional cost of an Aux viewport roughly in half.

6) At Normal Manipulation Resolution, Iray was taking approximately 105–115 ms to compute a new image in the test scene. Daz's default Response Threshold was only 100 ms. As a result, an image that was almost finished could be discarded before it had time to complete, which caused the viewport to refresh in a visibly uneven way. Viewport Accelerator raises the default 100 ms threshold to 150 ms when appropriate, while leaving any value manually set by the user unchanged. In testing, this increased the number of completed Iray images from approximately 5.7 to 6.6 images per second. It also removed update gaps that could previously last up to around 0.6 seconds.

7) Per-frame object updates were being processed as one job per drawing layer. Because of this, large layers could be processed one after another on a single CPU core instead of using the available processor resources efficiently. Viewport Accelerator splits this work across multiple CPU cores while keeping the final scene data unchanged. In testing, this reduced Texture Shaded frame time by approximately 13%. In Iray mode, it reduced Qt3D's per-frame workload from approximately 13.5 ms to 8.1 ms.

8) Even when only the camera was moving, Qt3D was recalculating object positions and bounding boxes throughout the scene. Much of this work was unnecessary because the objects themselves had not changed. Viewport Accelerator detects when only specific parts of the scene state have changed and updates only the data that actually needs to be refreshed. In testing, this reduced Texture Shaded frame time by approximately 10%, from 26.4 ms to 23.7 ms.

9) The same light values were being recalculated repeatedly for different objects, even when the shader and light combination was identical. At the same time, Daz's main interface thread was looking up material values individually in every frame. Viewport Accelerator calculates reusable light values once for each relevant shader and light combination. Material values are also prepared in advance instead of being repeatedly searched and rebuilt on the main thread. In testing, this reduced Texture Shaded frame time by approximately 9%, from 29 ms to 26.4 ms.

10) In every frame, Daz's main thread was writing material values for each object one by one and was repeatedly collecting shader resources. This placed unnecessary work on the same thread responsible for the user interface. Viewport Accelerator moves more of this preparation to other CPU cores. The main thread can then copy larger prepared blocks at once instead of processing many small values individually. Shader resource lists are also kept in memory until something actually changes. In testing, this reduced Texture Shaded frame time by approximately 8%, from 23.7 ms to 21.9 ms. In Iray mode, it reduced Qt3D drawing time from approximately 16.3 ms to 10.6 ms.

11) For every newly generated Iray image, Qt3D was deleting the existing GPU texture and creating a new one. This was also forcing drawing commands to collect their resources again. Viewport Accelerator reuses the existing GPU texture whenever the image dimensions and format remain unchanged. Instead of creating a new texture, the new Iray image is written directly into the existing one. Drawing commands also try to reuse the previous frame's settings before performing a full resource search. In testing, this saved approximately 1.2–1.6 ms per Iray frame, equal to around 4–5% of the total frame time in the test scene.

12) Qt was repeatedly sending the same viewport and clipping-area values to OpenGL in every frame. Approximately 97% of the measured viewport-area calls were exact duplicates and were not changing anything. Viewport Accelerator detects and skips these repeated state changes. In testing, this reduced drawing time by approximately 1.5 ms per frame.

13) Before each newly generated Iray image was written into memory, the previous image data was being copied into the new memory allocation. This copy was unnecessary because the entire image was about to be overwritten immediately afterward. Viewport Accelerator skips this copy whenever it can confirm that the whole image will be replaced. In testing, this reduced Iray image preparation time by approximately 0.5 ms, which represented around 17% of the image preparation stage.

14) Even when only the camera was moving, Daz was rebuilding the list of shader modules required by the scene materials during Iray viewport updates. Viewport Accelerator keeps and reuses this dependency list as long as the materials remain unchanged. The list is rebuilt automatically when a material or another relevant part of the scene changes. Its current overall performance impact is relatively small because this optimization can only apply to a limited portion of the calls, but it removes another unnecessary repeated operation from the Iray viewport pipeline.

Tags: 
RenderHub
3D Models