Viewport Performance Improvement on Rhino 6 and 7 WIP

Hi Everyone.

I’m not an expert but I found some interesting findings in relation with Rhinoceros’ viewport performance. Let me kindly list some details first about the hardware I use.

Lenovo P40
Intel Core i7 6600
16GB memory
Nvidia Quadro M500M 2GB dedicated

I have another system which is HP Zbook Studio and it showed similar results, so I just had most tests with me Lenovo P40.

The curiosity started when I only got around 60 fps on TestMaxSpeed on the perspective one with 4 views layout. I think it should be delivering more than that. My good old HP Envy 14 Spectre was delivering more than 200 fps on Rhino 5 with built-in Intel HD graphics only. So I did some tests.

With my Lenovo P40, I played with the Nvidia Control Panel settings. I set all to default on the advanced panel, So, I believe any of you need not to play with it as well. But, the simplest one on the Adjust Image Settings with Preview, gave a boost in viewport fps performance in Rhino 6.

This is the initial default setting for my P40.

image

with 2560x1440 or 1920x1080 display resolution, it only gave around this fps:

image

But, when I set it to this settings:

image

the viewport performance multiplied around 5 times higher:

image

Yes, that’s 300+ fps.

Antialiasing is still 2x and GPU tessellation is enabled.

image

With Antialiasing set to 4x, it still gives me:

image

Yes, it’s still 266 fps. Not 60 fps. And it still gives more than descent image quality from my perspective.

I tested with some more 3d objects about this finding, and the viewport performance is vastly improved.

The situation happened both on my Lenovo P40 and Zbook Studio. Also Rhino 7 WIP.

You may want to try it with your own computer to check whether it’s applicable to your systems. I hope this gives you all “free performance upgrade” with your Rhino as well.

I’m still playing with other settings but that is the easiest thing to achieve. I may try to test further with my FirePro W7100 eGPU with my Zbook Studio once I’m recovered from my pneumonia. I just couldn’t lay down on the bed and do nothing during bedrest period.

Cheers

Also, for many of you that are still using old hardware and having issues in Rendered Display view in Rhino 6 when things are seem to be normal in Wireframe and Shaded, you need to turn off the Shadow in the Display Modes option first. I’m experimenting with and old HP Envy 14 Spectre which only has Intel HD 3000 with OpenGL 3.1. The key is to turn off the Shadow first. Also to any other Display Modes like Arctic, etc.

Then, these are some changes I made for the OpenGL settings.

Things seem to be working okay and stable.

1 Like

More updates on this, using HP Zbook Studio with listed information:

Windows 10.0 SR0.0 or greater (Physical RAM: 16Gb)
Machine name: ZBOOKSTUDIO

Hybrid graphics system.
Primary display: Intel® HD Graphics 530 (Intel) Memory: 1GB, Driver date: 11-20-2015 (M-D-Y).
Primary OpenGL: NVIDIA Quadro M1000M (NVidia) Memory: 4GB, Driver date: 1-29-2020 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 442.19

OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
Redraw scene when viewports are exposed: On

Anti-alias mode: 2x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: Height

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 1-29-2020
Driver Version: 26.21.14.4219
Maximum Texture size: 16384 x 16384
Z-Buffer depth: 24 bits
Maximum Viewport size: 16384 x 16384
Total Video Memory: 4 GB

Resolution used is 1920x1080 eventhough the display is able to go for 4K. as native resolution. FHD looks clearer to my eyes.

The file being used in this test is RDKMaterial, supplied by Rhino 6 installation, tested using TESTMAXSPEED, in sequence.

Test #1 - Blank Viewport
image

Test #2 - RDKMaterial loaded with Wireframe display
image

Test #3 - RDKMaterial loaded with Shaded display
image

Test #4 - RDKMaterial loaded with Rendered display
image

Test #5 - RDKMaterial loaded with Ghosted display
image

Test #6 - RDKMaterial loaded with XRay display
image

Test #7 - RDKMaterial loaded with Technical display
image

Test #8 - RDKMaterial loaded with Artistic display
image

Test #9 - RDKMaterial loaded with Pen display
image

Test #10 - RDKMaterial loaded with Arctic display
image

Test #11 - RDKMaterial loaded with Raytraced display
image

The settings and approach to have optimal display speed in Rhino 6, which works with Rhino 7 WIP as well, seem to be showing positive results in bringing the numbers of fps, way up beyond the default/standard settings. I haven’t tested it with eGPU I have (AMD W7100 8GB) yet.

Watching nearly 600 fps in Shaded mode as well as 75 fps on Rendered mode was very pleasing during the tests. I was also trying to display some of the models I created earlier and I was experiencing much smoother interaction with it.

Hope this is useful for everyone who wish to have higher performance display without the need to upgrade the hardware.

Hi, one thing you should know is that the default setting uses a fps that matches the screen refresh rate, it sets max fps = hz so that’s why you get 60 fps in your first test.
And then when you set the slider to performance it removes this setting and lets the gpu make as many frames as possible, even though they can’t be shown by the screen.

1 Like

LOL! :joy:

@cairn you bad boy :wink: This actually isn’t something to LOL too much about though. It is obvious when you know it, but not when it just happens behind the scene as it does in Rhino 6.
With Rhino 5 you had to manually turn on V-sync in the display drivers (and add a custom profile for Rhino) to enable the capping, but this changed during the V6 development cycle, so I too spent some time trying to figure out why Rhino 6 did this as default. The developers even added a feature to Rhino 6 so I could override the capping for Holomark 2 to measure the raw fps speed of the GPU’s. (They also added a customizable testmaxspeed version for scripting that I use for Holomark3 (WIP) )

So personally I sallute every one who investigate how to get the most out of their hardware! :+1: (But keep in mind that having the GPU drawing more frames than the screen can output just wastes power which can be critical for long workdays on a laptop. Because of that I even reduced my laptop screen from 140hz to 60hz (razer blade with a rtx2070) since twice the amount of frames isn’t critical for my use when modelling. (And I am no pro gramer, so those extra frames won’t save me from loosing anyway :slight_smile: )

To disable vertical sync in Rhino you can start TestMaxSpeed with " - " in front and turn it off:
-_TestMaxSpeed VerticalSync=Disabled _Enter
It is remembered until you open a new file or restart Rhino.

One day I’ll have a graphics card that makes all your hard work meaningful to me… :cry:

1 Like

Hi Holo. Thank you so much for shedding some lights. So sorry for the late reply as I’m still in recovering state from my pneumonia. After reading your reply, it now gives a new direction to my quest, doing some observations in the hardware usage.

Seems like when v-sync is off or by setting the GPU to Performance mode, the GPU performs the computing at its brute force in Rhino. I did some monitoring to address any differences in the GPU load. Well, there are obvious differences between them.

From the graph above, the first two spikes were using RDKMaterial file with Rendered display mode using TestMaxSpeed. And the last two spikes, were just having empty viewport. Seems like when in Wireframe mode, the GPU worked longer in App-settings setup, than the Performance did. But in the Rendered mode, it showed the opposite way with slightly lower throttling time in the App-Settings setup.

I was also wondering, if the GPU computing power is synced to balance the refresh rate of the display, will it limit other GPU computing/load (if there is) in Rhino? Curiosity goes to how much it reserves power when set to App-Settings setup. Specially with lower refresh rate like 50Hz, or even lower at 40Hz with LCD or LED display on a notebook.

Again, really appreciate the explanation, Holo.

@cairn: keep on staying on the path, Man. We won’t know what lies ahead of us if we’re not sticking to our goals. It won’t be just graphics card for you, it would be much bigger than you could imagine :wink:

what can i do to improve smoothness viewport performance with an RTX 2080ti inside my build?
Because i found Rhino 6 a little bit slower compared to Rhino 6, tested with same hardware specs + 64gb ram + 16cores AMD cpu.
cheers.