I will be working on improving the general performance of display during the development of V6. @jeff will also be helping with this, but his focus is generally on improved stability and new display features. My plan is to continue to contribute to this post over time with updates of what I am working on or thoughts about what I am attempting to do. Please feel free to provide feedback or general thoughts in this thread, but try to keep it oriented toward display performance in V6.
In the build available today (Aug 7,2014), performance improvements have been made to text dots.
http://mcneel.myjetbrains.com/youtrack/issue/RH-5416
http://mcneel.myjetbrains.com/youtrack/issue/RH-26859
http://mcneel.myjetbrains.com/youtrack/issue/RH-28332
Text dots should now be anti-aliased and display significantly faster than in V5. I realize that dots may not be a high priority object type to many of you, but I started with this object type for several reasons:
- Dot display performance is pretty bad in V5. I have seen models with 1000s of dots while visiting users and their models are slow to display purely due to these dots
- Dots were always drawn with aliased edges which just bugged me
- I need to start figuring out a new caching system for our display architecture. Dots are a simple entity that I could focus on creating a caching system without going insane trying to deal with all of the little quirks involved with drawing other types of geometry
To see the difference between the speed and look of dots, you can use the āTestNewDotDisplayā command to toggle between the V5 mode and V6 mode. As always āTestMaxSpeedā is a good way to see the performance difference.
If you see any oddities with text dots please let me know. The technique used for drawing this object type in V6 is radically different than V5 so I wouldnāt be surprised to see some bugs crop up.
Great news!
Iāll assist in any way I can.
To me the biggest wish are:
- a speedup regarding blocks
- static shadows that are not recalculated if nothing is moved
- a speedy mode (v4 style)
- a presentation mode where only the rendermeshes are used, again to speed up the framrate.
Oh, and I presume you are talking about TestMaxSpeed and not TextMaxSpeed
Dots 6x faster hereā¦
-Pascal
Are there any thoughts about improving the pipeline in general?
To be more specific, I (we) often find the computing power of the graphics adapter not to be the limiting factor for frame rates. Is there anything to get more work transferred to the GPU?
That is all part of the performance improvements and is exactly why I need to design a new caching system. With respect to text dots, V6 is using cached textures on the GPU for the text portion of the dot. The text dots need to know that these textures exist and be able to create/destroy textures when appropriate. The same goes for many other geometry types.
I guess the transparent text dot bug is gone with this re-write? Thanks.
This might be the correct place to ask [though not necessarily the right time ].
The top-of-the-notch (at least 6 years ago) GPU on my home PC fried and I have been holding off replacing it pending development of RH6.
First off, I basically donāt know what Iām talking about - bottom line is only a RH6-safe GPU recommendation
I see that there is more to display than just the GPU⦠But as drivers appear to be an issue, will the display engine continue to run on OpenGL 2(?) calls only? I guess Neon runs on something else and Cycles apparently does CUDA and OpenCLā¦
I donāt believe so. The transparency bug should be unrelated to the rewrite of text dot display.
I donāt really think this is the correct place to discuss this topic. Jeff is working on using features available in OpenGL 4, but that still doesnāt give me any good way to give advice on a card to purchase.
Thatās fine. Thanks for the feedback! Thereās no rush on my part.
The next build (due out today or tomorrow) will no longer have the TestNewDotDisplay command. I tore out all of the old dot drawing routines and now have everything piped through this new function. There may be some bugs, but Iām pretty confident this is going to be a better way to draw text dots in V6 so there is no reason to keep the old code cluttering up the place.
@Goswin and @charlie_portell I would be interested to know if your models with large numbers of text dots perform better in the V6 WIP.
Hi Steve, I made a simple test to compare this and on my laptop V6 is 15X faster than V5!
V5: 23.95 seconds
V6 1.56 seconds
So keep on hacking!
PS, if they are selected in V6 it is a bit slower, 1.92 seconds.
Oh and PPS! V6 died when I tried to run 100x100 items.
Here is the test:
import rhinoscriptsyntax as rs
import time
n=30
rs.CurrentView("Perspective")
strView=rs.CurrentView()
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)
rs.Sleep(1)
rs.Command("_TestMaxSpeed")
By ādiedā, does that mean V6 crashed? My current caching scheme is not smart enough to place any sort of sane caps on what to store, so if Rhino is crashing it is probably because Iām just dumping too many tiny textures on the card.
Your test is the worst case scenario in that none of the dots share the same text. Does Rhino die if you run 100x100, but all with the same text?
rs.AddTextDot("hello", (i,ii,0))
Yes, ādiedā means crash, badly. Screen flickering and Rhino not disapperaing. Crash report pops up.
If I use āhelloā then it still crashes, so Iāll check how many items the machine handles, the ram use is fine. The card is a GeForce 330M with 512MB Vram.
Hm, it crashes after a few runs no matter if I use āhelloā or custom text. I can run ut at 60x60 items, but only two times as it crashes on the third. So can the āundo stackā keep stuff in the Vram that uses it up?
I wonder because the test runs fast the first time, then the next run is slow to generate, it spins fast, but takes time to precalculate. And the third run is even slower and crashes.
Probably a dumb bug in my code; Iāll try to reproduce this on my computer
Edit: yep, this was just a dumb bug. It will be fixed in next weekās build.
Thanks for setting up this test case.
Hi Steve, I ll be happy to test it. But it will only be in a week since I am on holidays without PC now. Where can I get Rh6 ?
stevebaer
August 13
@Goswin and @charlie_portell I would be interested to know if your models with large numbers of text dots perform better in the V6 WIP.
To respond, reply to this email or visit V6 Goal: Display Performance in your browser.
http://www.rhino3d.com/download/rhino/wip
You may want to wait until the next build is released since there is a bug in the current build that @Holo found related to large numbers of dots on the screen. The next build will probably be available on Aug. 20