V6 Goal: Display Performance

If it is a nVidia card then you can set it in the drivers, under the Rhinoceros settings. (I have to run to a meeting right now, but I can help more later unless you find it)

@Dmitriy and @Micha, I’m pretty confused at this point as to what you think is not working. This has also strayed from the initial topic of display performance. If possible, could you please start new topics with what you think is not working? Sorry for the inconvenience, but it will help me track down these bugs a little better.

Thanks

Sure Steve,

Should it be under top level of Serengeti?

If the bug is related to the WIP, it should be in the top level Serengeti. I can always change the category if it is not set correctly. Thanks

Is there a way to automatically reduce the AA quality when there is too much drawn? A simple test case just brought my workstation to its limits, using a Quadro M6000 (!):

Create 25x25 spheres in an array, select them and type the command “showRenderMesh”

In my case, I was not able to navigate the perspective viewport anymore because it became incredibly slow. I was surprised, cause the tesselation did not seem too high as can be seen in the screenshot where I have zoomed in at one sphere.

AA is controlled in Options>Rhino Options>View>OpenGL

Upload the file too please so I can see the render mesh settings here for comparison.

Hi Brian,

here is the scene. I just show one sphere as the rendermesh because after showing and hiding the RenderMesh, the tesselation is saved in the Rhino file and it gets more than 100mb big. However, the Rendertesselation for the other spheres is of course the same.

Ballfield.3dm (2.0 MB)

Thanks for the file. Turning off AA here doesn’t help the display speed when the render mesh is displayed. The PolygonCount reports 11.7 million polys but it’s fast in shaded mode if the render mesh wires are off.

@stevebaer are mesh wires yet to optimized or is this slowdown to be expected? When zooming out, the spheres essentially become dots but it seems like we still try to display the individual wires on top of one another. Is it possible to reduce the level of detail for the wires as the view zooms out?

There are plenty of optimizations to continue to look into. We are currently in a phase of updating code to use a newer version of OpenGL which in itself won’t make anything faster, but probably more stable across a large set of graphics drivers.

I first thought the slow wireframe display is due to the fact that the view is drawn antialiased, but now that I deactivated it like Brian pointed out, it is still slow, so antialiasing does not seem to be the culprit.
I compared the same scene in V5: After displaying the RenderMesh I can still navigate the viewport pretty smoothly with the same numbers of Polygons (11720000).

Simply put (and not meant as a rant) Rhino’s delivery speed is the bottleneck and not the hardware. The card is so fast so it still has plenty of time to AA all the data from Rhino without affecting the redraw speed before the data for the next frame arrives.

1 Like

27 posts were split to a new topic: Poor Display Performance on One Computer

@Holo,

What are you seeing for times in V6 on your TextDot test from Aug 2014 now in Feb. 2017?
I am using a 4K display running at full resolution of 3840x2160.
For 30x30 I am getting 0.36 sec with no redraw, 5.08 sec with redraw on.
For 100x100 I am getting 2.95 sec with no redraw, 5.84 sec with redraw on.
For 200x200, 26.83 sec no redraw and 8.19 sec with redraw on, for first run.
For 200x200, 13.78 sec no redraw and 8.14 sec with redraw on, for second run.
For 300x300, 8.75 sec no redraw and 148.63 sec with redraw on, for first run.
For 300x300, 7.50 sec no redraw and 13.47 sec with redraw on, for second run.
The times seem to be dependent upon prior operations; some second runs are faster than the first. The times in V6 are much faster than what you reported back in 2014.

On the other hand, I am getting really slow display performance for other tasks in V6; 400% slower than V5 when creating rectangular curve, then make it a shape, then extrude it to a slab and doing Boolean subtraction with another slab to create a cavity.

My system is a Lenovo laptop i7 6500U, 2.59 GHz turbo, 16 GB memory, 64-bit Windows 10. No discrete graphics card.

Below is a copy of the Python code I used.

import rhinoscriptsyntax as rs
import time
from time import time
n=100

rs.CurrentView("Perspective")
strView=rs.CurrentView()
startime = time()
rs.EnableRedraw(False)
for i in range(n):
    for ii in range(n):
        rs.AddTextDot(str(i)+","+str(ii), (i,ii,0))
rs.EnableRedraw(True)
rs.CurrentView(strView)
rs.ZoomExtents(strView)
endtime = time()
print 'TextDot time = {:.3f} '.format(endtime-startime)
#
# Runs in 5.844 sec with EnableRedraw(True)
# Runs in 2.947 sec with EnableRedraw(False)
#

2 posts were split to a new topic: Rebuilding Meshes

17 posts were split to a new topic: Slow Display

A bug I see quite often is that “Reflection Polish” stops working in rendered mode.
So I have to close WIP and open it again.

Also SubD objects sometimes flicker dark or appears as dark after an object is unhidden. I have to navigate the view (pan, zoom) for the real color to show again.

@micha, please see my post on GPU tessellation at. We were running tests on your bike model and saw pretty massive performance improvements for wireframe drawing. Results will most likely vary from GPU to GPU.

2 Likes

This should not be the case anymore for polysurface and extrusion wires with the GPU tessellation option. See:

2 Likes

Wow, that’s a really big step forward. I’m very impressed!!!

Also my current heavy production models can be easy manipulated now. It’s like Christmas and birthday at the same day. :slight_smile:

@stevebaer , thank you for the note to me.

2 Likes

That makes my day to hear; great!! Thank you for testing. I’m assuming you are on an nVidia GPU?

I was seeing around 3x improvements with my newer Intel Iris GPU, but one of Jeff’s fancier nVidia cards was seeing TestMaxSpeed go from 10 seconds to under 1 second for wireframe with that model.