Display Optimizations in 6.17

The latest 6.17 release candidate contains display optimizations in three different areas and are large enough changes that I could use your help in testing to make sure I didn’t break anything. Both Windows user and Mac users should benefit from these changes.

I’m interested to know if anything in the display appeared to break, but hopefully TestMaxSpeed will also give you better results with this new build too.

Here are the three areas where changes have been made:

  • Technical display modes
    All modes based on technical display (technical, artistic and pen) have been rewritten to use cached data on the GPU along with specialized shaders for identifying and drawing borders, creases, and silhouettes. Use the TestToggleTechDisplayMode command to toggle back to the pre 6.17 mode for drawing to see if there are any visual differences. There were actually a few bugs that were fixed by switching to the new architecture with respect to block silhouette drawing.
  • Blocks and clipping planes
    Blocks with a lot of data in clipped viewports were displaying much slower than their exploded version (@NavArch this one is for you). Early clipping plane tests are now performed on geometry inside of blocks to skip their drawing when it is know that the geometry is actually clipped by clipping planes. Use the TestToggleBlockClipTest command to revert to the pre 6.17 display to see if anything appears visually different.
  • Models with may curves
    Typically found with models that have been imported from applications like AutoCAD. There were some early visibility tests that I found could be skipped which results in less work for the CPU during the drawing of a frame for models with many curves. Use the TestToggleCurveVisTest command to revert to the pre 6.17 display to see if anything appears visually different.

For information on getting the latest 6.17 release candidate, see


Windows


Mac

7 Likes

Steve,
I’m unfortunately not seeing speed improvements with the technical view styles. Using “Pen” the new architecture is actually slower than the old architecture. The old Architecture is approximately 20% faster than the new in two tests in paperspace. The two test results below are with paperspace sheets with different content, but both have technical view styles.
Test1: 1.56 FPS New 1.90FPS Old
Test2: 4.12 FPS New 5.16FPS Old

I would say on a positive note that Silhouetting does seem to work a lot better.

I’m also unable to use the TestToggleBlockClipTest command. Rhino says its an unknown command.
At the very least I still see the refresh slowdown in the current architecture. The refresh rate is much faster when I explode my block.

let me know if I can help get to the bottom of these slowdowns.
Ian

Are you using today’s 6.17 build? If the test command isn’t there, I suspect you are using an older build that doesn’t really have all of the optimizations

Hi @stevebaer,

Tested the curve speed on complex CAD drawing import, the improvement looks great:

NOT Testing curve visibility every frame
Time to regen viewport 100 times = 1.69 seconds. (59.28 FPS)
Command: TestToggleCurveVisTest
Testing curve visibility every frame
Time to regen viewport 100 times = 2.59 seconds. (38.55 FPS) 

Tech display mode seems a bit slower in the new mode:
(testing 2.47s new version vs. 2.16s with reverted to old command version).

The clipping plane and blocks also here is slightly faster in the new version:

Time to regen viewport 100 times = 1.73 seconds. (57.67 FPS)
Command: TestToggleBlockClipTest
Clipping of block optimization is off
Time to regen viewport 100 times = 2.02 seconds. (49.60 FPS)

Is this clipping optimization supposed to work better when clipping views with many blocks, or optimized for let’s say single block that has many objects, and some of them may not be visible?
This could influence the testing; I did it for #1 case (many blocks)…

EDIT:
Version 6 SR18
(6.18.19210.14341, 7/29/2019)

hth,

–jarek

Oh Dear! I’m sorry, Rhino wasn’t asking to install updates so I assumed it was up to date. My bad. I’ll get the latest version updated and See how that works

What influences this optimization are blocks that are partially clipped and sub-geometry pieces are never drawn because of clipping planes. If a block is already completely clipped by a clipping plane, this optimization will have no effect.

I’m surprised to hear that. Could you send me the model you are testing with so I could see if I can repeat this?

Sure, here is the file and the tech mode (it’s modified Technical mode):
Tech_test_JB.zip (460.2 KB)

The speed difference is small, but new one still a bit slower here.

–jarek

Now that I have the latest version I hopefully can speek more acurately.

The newer Techdisplay mode is still slower for me too. switching back to the old technical display definitely speeds up the frame rate. in one test I went from 3.8FPS to 5.63FPS switching back to the old architecture. (The test was completed in paperspace)

I need to test some other drawings but on first blush It does appear that the clipped block improvements are real. Definitely getting faster FPS.

Thanks

Thanks, I’m looking at this model and getting pretty much the same results for the old and new techniques (FYI, you really need to run testmaxspeed about three or four times because times may vary depending on what the OS is doing with other processes at the time.)

I’ll keep poking away at this.

Hi Steve

In the attached file you can see that new technical display mode is worse than the previous version. It happens when I am in the zoom extents mode.
My v6 version is : Rhino 6 SR17 2019-7-31 (Rhino 6, 6.17.19212.06361,
Ciao Vittorio

Test_ToggleTechDisplayMode.3dm (3.6 MB)

Hi Steve, yes, I always do that (run it multiple times).
Tested with a few other models the technical mode and the new one is consistently slower by a few percent.

–jarek

What about regular speed improvements to the other viewport modes, I’m finding max 2020 to be faster than Rhino and that was never the case before. Especially with large files with many polygons
RM

If you have a specific case where Rhino appears slow and you think we could improve performance, please start a new thread.

Can you send your customized display mode?
I am running default technical display on this model and am not seeing a single pixel difference between the old mode and the new mode.

Thanks @Jarek, @vittorio, and @NavArch. I found some other potentially large optimizations that I’m adding to 6.17 right now based on your feedback. I’ll let you know when a new build is available to play with.

1 Like

Hi,
tried the new 6.17 with the curve only model (mac version)
test max speed wireframe:

v6 - 4.4 sec
v5 - 1.75 sec

Would it be possible to send me this 3dm file? I would like to profile it to see what is happening.

Thanks @vittorio. For future reference, you could have exported the display mode and attached the ini file here. That would have saved you the effort of taking so many screenshots.

I’m not seeing anything visually different while using your custom settings and toggling back and forth with TestToggleTestDisplayMode. That said, I’m not getting the exact same images as you posted so there must be some subtle difference. @jeff, do you get the same images as Vittorio with his settings and attached 3dm file (see above)?

Thanks,
-Steve

@vittorio As Steve mentioned, the best way to make sure that we’re all using the exact same settings (especially when you’ve made so many tweaks), is to Export your display mode as a separate .ini file from the Display Modes page, and then post the .ini file here… Then we can import it into our Rhino and hopefully see exactly what you’re seeing.

Please do that with any Technical modes you’re seeing differences with.

Thanks,
-Jeff