# V6 Goal: Display Performance

**URL:** <https://discourse.mcneel.com/t/v6-goal-display-performance/10769>\
**Category:** Serengeti (Rhino BETA)\
**Tags:** active\_development, v6-display, v6\
**Created:** [August 7, 2014, 5:16pm UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769 "2014-08-07T17:16:58Z")\
**Posts on this page:** 20\
**Page:** 5

<div class="post-metadata">

**Author:** ![stevebaer](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/stevebaer/32/473567_2.png) [@stevebaer](https://discourse.mcneel.com/u/stevebaer)\
**Post date:** [August 11, 2015, 9:17pm UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/81 "2015-08-11T21:17:39Z")

</div>

> [@AlW](#):
>
> What range of OpenGL versions do you think is practical to support in V6?

It actually turns out not to be a whole lot of work to support different versions once the architecture is in place.

OpenGL 1.2 is the Microsoft software mode OpenGL (non-hardware accelerated). We’ve already written support for that years ago and it doesn’t make sense to drop this since it is very helpful when diagnosing misbehaved drivers.

OpenGL 2.1 is the driver level that VMWare operates at and which many users run (even though we don’t recommend it).

We aren’t sure what the top level OpenGL level we’ll need in V6, but we will need to support at least OpenGL 3.0 since that is when frame buffer objects became part of the core. We are pretty much targeting OpenGL 4.5 since that is the most recent version, but it is hard to say if we will need any specific features of 4.5.

I’m hoping this architecture will make it relatively easy to drop in support for a new version of OpenGL when we find a need for it without too much code rewrite. So far, things look good.

---

<div class="post-metadata">

**Author:** ![AlW](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/alw/32/53821_2.png) [@AlW](https://discourse.mcneel.com/u/AlW)\
**Post date:** [August 12, 2015, 12:59am UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/82 "2015-08-12T00:59:33Z")

</div>

OK.

The main reason I asked is because I was imagining Rhino using some really powerful new OGL 4.5 features, and you folks having to write lots of work-around code for earlier OGL versions.

Of course I suppose you could just use some boilerplate code that puts up a message box that says something like “Nyah, Nyah you can’t use this feature because you’re too cheap to get a computer that supports OGL 4.5. HaHaHaHa!”

---

<div class="post-metadata">

**Author:** ![stevebaer](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/stevebaer/32/473567_2.png) [@stevebaer](https://discourse.mcneel.com/u/stevebaer)\
**Post date:** [August 12, 2015, 1:12am UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/83 "2015-08-12T01:12:08Z")

</div>

There will definitely be things that just don’t work when running on lower version number drivers. This already happens on Rhino where you get antialiasing through multisampling when the driver supports is. Other features like shadows drop out when running on non-hardware accelerated OpenGL.

---

<div class="post-metadata">

**Author:** ![AlW](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/alw/32/53821_2.png) [@AlW](https://discourse.mcneel.com/u/AlW)\
**Post date:** [August 12, 2015, 1:18am UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/84 "2015-08-12T01:18:52Z")

</div>

I see. Of course.

Does John Brock get many questions like “How come my coworker (friend, client, etc.) has neat shadows and swell looking curves?”

---

<div class="post-metadata">

**Author:** ![Micha](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/micha/32/770226_2.png) [@Micha](https://discourse.mcneel.com/u/Micha)\
**Post date:** [August 12, 2015, 5:32am UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/85 "2015-08-12T05:32:28Z")

</div>

OK, good luck for coding. So I hope the freezed parts of the display will be gone in the future.

Best post a note if you are working on the display speed for models like the bike and you need more tests. Using more GPU power is very missed here.

---

<div class="post-metadata">

**Author:** ![Dmitriy](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/dmitriy/32/764664_2.png) [@Dmitriy](https://discourse.mcneel.com/u/Dmitriy)\
**Post date:** [September 7, 2015, 3:22pm UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/86 "2015-09-07T15:22:55Z")

</div>

Hi @steve, @jeff,

Not sure if this is the right place to put my post but…

Have noticed two small issues in the latest WIP (it can be that it has been touched before)

1. Seems that points (exc. when drawing a curve) are not displayed correctly -\>rectangle is not present around the point. When zooming in/out - works as normal. See enclosed.
2. Height of the help textbox (whatever is the right name) is higher than needed -\> mouse can be seen twice. Also enclosed.

Dmitriy

![](https://global.discourse-cdn.com/mcneel/uploads/default/original/3X/e/8/e80b835d35c714667392977b1afdd94870b1dfc2.png) ![](https://global.discourse-cdn.com/mcneel/uploads/default/original/3X/4/8/480bfbc79bff5df4f43b9f46210048dea13bd188.png)

---

<div class="post-metadata">

**Author:** ![Marc](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/marc/32/494790_2.png) [@Marc](https://discourse.mcneel.com/u/Marc)\
**Post date:** [September 8, 2015, 4:51pm UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/87 "2015-09-08T16:51:47Z")

</div>

In fact, the tooltip boxes are too small, they don’t show the right-mouse click option.

---

<div class="post-metadata">

**Author:** ![osuire](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/osuire/32/656689_2.png) [@osuire](https://discourse.mcneel.com/u/osuire)\
**Post date:** [October 13, 2015, 7:28pm UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/88 "2015-10-13T19:28:58Z")

</div>

Display is stuttering on PAN, ZOOM, ROTATE, even with empty model.  
By contrast, Rhino V5 is, well… as usual.

**SYSTEM INFO**  
Rhino 6 SR0 2015-9-29 (Release, 6.0.15272.11241, SVN:136803 in branch trunk)

Windows 10.0 SR0.0 or greater (Physical RAM: 16Gb)  
Microsoft Windows [version 10.0.10240]

GeForce GT 650M/PCIe/SSE2 (OpenGL ver:4.5.0 NVIDIA 355.60)

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

Anti-alias mode: 4x  
Mip Map Filtering: None  
Anisotropic Filtering Mode: None

Vendor Name: NVIDIA Corporation  
Render version: 4.5  
Shading Language: 4.50 NVIDIA  
Driver Date: 8-6-2015  
Driver Version: 10.18.13.5560  
Maximum Texture size: 16384 x 16384  
Z-Buffer depth: 24 bits  
Maximum Viewport size: 16384 x 16384  
Total Video Memory: 1 GB

C:\Program Files\Rhino WIP\Plug-ins\rdk.rhp “Renderer Development Kit” n/a  
C:\Program Files\Rhino WIP\Plug-ins\RhinoRender.rhp “Rhino Render” n/a  
C:\Program Files\Rhino WIP\Plug-ins\rdk\_ui.rhp “Renderer Development Kit UI” n/a  
C:\Program Files\Rhino WIP\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” n/a  
C:\Program Files\Rhino WIP\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”   
C:\Program Files\Rhino WIP\Plug-ins\Displacement.rhp “Displacement” n/a

---

<div class="post-metadata">

**Author:** ![stevebaer](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/stevebaer/32/473567_2.png) [@stevebaer](https://discourse.mcneel.com/u/stevebaer)\
**Post date:** [October 13, 2015, 8:47pm UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/89 "2015-10-13T20:47:59Z")

</div>

Thanks for letting me know. We just made a pretty large architectural change to our OpenGL code. Now we need to figure out what is going wrong and fix issues like this.

---

<div class="post-metadata">

**Author:** ![osuire](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/osuire/32/656689_2.png) [@osuire](https://discourse.mcneel.com/u/osuire)\
**Post date:** [October 13, 2015, 8:53pm UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/90 "2015-10-13T20:53:38Z")

</div>

Hi Steve,

Thanks for your answer.  
I got a moment of doubt when I switched to a maximized view : things began to be fluid again, but a few seconds later, the stuttering came back.

Hope it helps.

---

<div class="post-metadata">

**Author:** ![Dmitriy](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/dmitriy/32/764664_2.png) [@Dmitriy](https://discourse.mcneel.com/u/Dmitriy)\
**Post date:** [October 20, 2015, 1:20pm UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/91 "2015-10-20T13:20:40Z")

</div>

Hi @stevebaer,

I have noticed that in the latest WIP edge thickness is not stored.  
It can be changed via Rhino Options -\> View - \> Edge Thickness(pixels) but after a while (first redraw) value comes back.

Can you check it please?

Updated: actually same behavior can be noticed for all settings - size of the control point and etc.

Thanks,  
Dmitriy

---

<div class="post-metadata">

**Author:** ![BrianJ](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/brianj/32/751593_2.png) [@BrianJ](https://discourse.mcneel.com/u/BrianJ)\
**Post date:** [October 20, 2015, 1:42pm UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/92 "2015-10-20T13:42:56Z")

</div>

Thanks, there’s an open issue right now about display settings not sticking… filed as [http://mcneel.myjetbrains.com/youtrack/issue/RH-31394](http://mcneel.myjetbrains.com/youtrack/issue/RH-31394) for future reference.

---

<div class="post-metadata">

**Author:** ![Brenda](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/brenda/32/770181_2.png) [@Brenda](https://discourse.mcneel.com/u/Brenda)\
**Post date:** [January 7, 2016, 10:50pm UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/93 "2016-01-07T22:50:51Z")

</div>

Question: Are the views being refreshed more than once, when objects are grouped?

---

<div class="post-metadata">

**Author:** ![Brenda](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/brenda/32/770181_2.png) [@Brenda](https://discourse.mcneel.com/u/Brenda)\
**Post date:** [February 16, 2016, 4:23pm UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/94 "2016-02-16T16:23:45Z")

</div>

For V6, couldn’t each viewport be given its own thread for updating?  
(I noticed that in V5, they update sequentially.)

---

<div class="post-metadata">

**Author:** ![stevebaer](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/stevebaer/32/473567_2.png) [@stevebaer](https://discourse.mcneel.com/u/stevebaer)\
**Post date:** [February 16, 2016, 4:25pm UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/95 "2016-02-16T16:25:44Z")

</div>

Nope; sorry things just don’t work that way in our core architecture. That would require a massive rewrite in many areas of Rhino.

---

<div class="post-metadata">

**Author:** ![Brenda](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/brenda/32/770181_2.png) [@Brenda](https://discourse.mcneel.com/u/Brenda)\
**Post date:** [February 16, 2016, 4:37pm UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/96 "2016-02-16T16:37:57Z")

</div>

Oh well.

How about meshing, could objects to be meshed as a result of an operation be put in list for muti-threading?  
(I was trying to watch Rhino for things that affect the apparent speed.)

[ I heard it in good word that ID family games often had inline assembly in the C rendering code : )

They would even send out polygons to be filled grouped by their texture, but I should think that that would largely help when there are more textures(materials) involved than we see in CAD. ]

---

<div class="post-metadata">

**Author:** ![stevebaer](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/stevebaer/32/473567_2.png) [@stevebaer](https://discourse.mcneel.com/u/stevebaer)\
**Post date:** [February 26, 2016, 5:43pm UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/97 "2016-02-26T17:43:35Z")

</div>

Objects only need to be meshed once and that meshing does occur on a separate thread so you can cancel the operation. This does not affect display performance.

---

<div class="post-metadata">

**Author:** ![stevebaer](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/stevebaer/32/473567_2.png) [@stevebaer](https://discourse.mcneel.com/u/stevebaer)\
**Post date:** [March 2, 2016, 9:14pm UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/98 "2016-03-02T21:14:43Z")

</div>

The latest WIP (March 1, 2016) contains optimizations for shaded object display.

**Shaded and rendered** display modes can see significant speed improvements. Improvements will vary based on the model that you are using, but some users should see dramatically improved performance.

The optimizations are turned on by default, but you can test timing differences for now by turning the feature off through the use of the “TestVboCache” test command. Running this command and changing the option of Caching to Disabled will set the display pipeline to run in a manner as it was running in previous WIPs. This command should eventually go away, but I’m using it for now to find any place where I may have broken the display and things don’t “look” correct.

Currently there are cases where this optimization is not enabled. Blocks, transparent/ghosted objects, objects with per-face materials, and custom render meshes like curve piping are cases that I know the optimization has not been applied to yet. I am working on handling these cases over the next few weeks and will let people know when they have been implemented.

Give it a ‘spin’🙂 Hopefully you’ll see a marked improvement in performance. If you see any bugs or slower display than in the past, please let me know so I can get these fixed as soon as possible.

---

<div class="post-metadata">

**Author:** ![Holo](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/holo/32/496872_2.png) [@Holo](https://discourse.mcneel.com/u/Holo)\
**Post date:** [March 3, 2016, 4:26pm UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/99 "2016-03-03T16:26:28Z")

</div>

Great news and first tests looks very promising on my Quadro 4000.

---

<div class="post-metadata">

**Author:** ![stevebaer](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/stevebaer/32/473567_2.png) [@stevebaer](https://discourse.mcneel.com/u/stevebaer)\
**Post date:** [March 3, 2016, 4:29pm UTC](https://discourse.mcneel.com/t/v6-goal-display-performance/10769/100 "2016-03-03T16:29:14Z")

</div>

Was hoping you would pick up on this comment 🙂 It all depends on the model of course (and now your graphics card more than even), but I’ve seen speed improvements any where from a few percent better up to 500%

[Previous page](https://discourse.mcneel.com/t/v6-goal-display-performance/10769.md?page=4)

[Next page](https://discourse.mcneel.com/t/v6-goal-display-performance/10769.md?page=6)
