Bug: Rhino 9 has worse viewport/ui/scheduling which is 'not smooth/laggy'

So rhino9 has in my experience (especially on a high hz monitor, when you are used to precise mouse control), rhino 9 feels worse than rhino 8, it can feel ok once you get used to “the badness” but the moment you open 8 again, it’s very annoying/makes me not want to use the software.

I immediately noticed it on my “raw mouse input flying” plugin, which makes it much much clearer, but it’s also visible with a normal pan/spin around a simple cube. What makes it super weird is my sensitivy (cm per 360 moving the mouse) got halfed in feel, which made no sense, and raising it to compensate you get even more laddering effect. (But enough about that, it was just what lead me to this). And as a reminder, I’m kind of just guessing to try to see what is going on, i have no idea.

So… it happens on opengl in 9, so my hunch was it was not related to renderer/gpu but instead some cpu scheduling, as I’ve also noticed that the new ui is quite slow when running a command to like turn on snapping, you’ll see it takes some time for the field at the bottom to light up, where its basically instant in rhino 8.

I did some dumps with presentmom first and saw nothing interesting, intel GPA,

Rhino 9 is not rendering with half fps neither is it being capped at 120 Hz or whatever. or struggling to draw the cube, it is submitting viewport frames much more aggressively than rhino8, while the monitor gets about the same number of visible updates AND GPU work is low in both/all cases.

rhino9 used “DXGI Composed Flip” with SyncInterval=0, Rhino 8 was through “older/less directly measurable Other / Composed Copy”.

which maybe means that the bad feel may come from how camera states are scheduled/replaced or selected for display and not raw rendering throughput.

Then i tried “intel GPA” trace, with the native/normal navigation in 8 and 9 (spinning around), including rhino 9 under opengl and direct3d.

i didnt see any obvious case where the GPU was working hard by the ‘fancy single box scene’. The traces show cpu side synch, waiting, queueing, and presenting activity around viewport rendering. But my captures / selections are done in blind and i don’t know what I’m doing so it’s useless for any real “aha this regression is due to THIS exact function or wait event!” no way haha sorry :D.

Together with the presentmom results and the fact that both graphics backends are bad, whats sus is rhino 9 shared viewport/camera/renderscheduling or presentation issue rather than a shader, geometry, or even mouse input.

So… yes sorry i don’t know, it was just driving me nuts, and i love the application, just … ye makes rhino 9 unusable for me.
I would love to be able to try rhino 9 with the old UI if possible(not because it’s good, but for testing), as i don’t know if some UI scheduling and the viewport is doing it…

So hope anyone else has any thoughts on this, or has any experiences worth sharing? :smiley:

@Viterkim

pls run _SystemInfo and post back the results

If you run TestMaxSpeed in both Rhino 8 and WIP with similar display and viewport size (use a fixed sized floating viewport) in the display mode you are testing this with, do you see any differences?

both on a new file with the default layout, at the default starting window size (not maximized etc)

9 direct:

Rhino 9 SR0 2026-7-21 (Rhino 9 BETA, 9.0.26202.12303, Git hash:master @ 4a384a80f8ff5744ec253d4b8bf3bb842f9fac89)
License type: Evaluation, build 2026-07-21
License details: Cloud Zoo
Expires on: 2026-09-04

Windows 11 (10.0.26200 SR0.0) or greater (Physical RAM: 62GB)
.NET 10.0.9

Computer platform: DESKTOP 

Standard graphics configuration using DirectX
  Primary display: NVIDIA GeForce RTX 5080 (NVidia) Memory: 16GB, Driver date: 7-2-2026 (M-D-Y). DirectX(11)
    > Accelerated graphics device with 4 adapter port(s)
        - Windows Main Display attached to adapter port #0
        - Secondary monitor attached to adapter port #1

Secondary graphics devices.
  AMD Radeon(TM) Graphics (AMD) Memory: 2GB, Driver date: 12-24-2024 (M-D-Y).
    > Accelerated graphics device with 5 adapter port(s)
        - There are no monitors attached to this device!

DirectX Settings
  Safe mode: Off

OpenBLAS: OpenBLAS 0.3.30 DYNAMIC_ARCH NO_AFFINITY Cooperlake MAX_THREADS=64.

Rhino plugins that do not ship with Rhino

Rhino plugins that ship with Rhino
  C:\Program Files\Rhino 9 WIP\Plug-ins\Commands.rhp	"Commands"	9.0.26202.12303
  C:\Program Files\Rhino 9 WIP\Plug-ins\rdk.rhp	"Renderer Development Kit"	
  C:\Program Files\Rhino 9 WIP\Plug-ins\3dxRhino.9.rhp	"3DxRhino.9"	
  C:\Program Files\Rhino 9 WIP\Plug-ins\UpdatesAndStatistics\UpdatesAndStatistics.rhp	"UpdatesAndStatistics"	9.0.26202.12303
  C:\Program Files\Rhino 9 WIP\Plug-ins\RhinoRenderCycles.rhp	"Rhino Render"	9.0.26202.12303
  C:\Program Files\Rhino 9 WIP\Plug-ins\rdk_etoui.rhp	"RDK_EtoUI"	9.0.26202.12303
  C:\Program Files\Rhino 9 WIP\Plug-ins\NamedSnapshots.rhp	"Snapshots"	
  C:\Program Files\Rhino 9 WIP\Plug-ins\MeshCommands.rhp	"MeshCommands"	9.0.26202.12303
  C:\Program Files\Rhino 9 WIP\Plug-ins\RhinoCycles.rhp	"RhinoCycles"	9.0.26202.12303
  C:\Program Files\Rhino 9 WIP\Plug-ins\Displacement.rhp	"Displacement"	
  C:\Program Files\Rhino 9 WIP\Plug-ins\SectionTools.rhp	"SectionTools"	


and (spins around instantly basically cant see it)

Time to regen viewport 100 times = 0.01 seconds. (6666.67 FPS)

--

9 opengl

Rhino 9 SR0 2026-7-21 (Rhino 9 BETA, 9.0.26202.12303, Git hash:master @ 4a384a80f8ff5744ec253d4b8bf3bb842f9fac89)
License type: Evaluation, build 2026-07-21
License details: Cloud Zoo
Expires on: 2026-09-04

Windows 11 (10.0.26200 SR0.0) or greater (Physical RAM: 62GB)
.NET 10.0.9

Computer platform: DESKTOP 

Standard graphics configuration using OpenGL
  Primary display: NVIDIA GeForce RTX 5080 (NVidia) Memory: 16GB, Driver date: 7-2-2026 (M-D-Y). OpenGL(4.6.0 NVIDIA 610.74)
    > Accelerated graphics device with 4 adapter port(s)
        - Windows Main Display attached to adapter port #0
        - Secondary monitor attached to adapter port #1

Secondary graphics devices.
  AMD Radeon(TM) Graphics (AMD) Memory: 2GB, Driver date: 12-24-2024 (M-D-Y).
    > Accelerated graphics device with 5 adapter port(s)
        - There are no monitors attached to this device!

OpenGL Settings
  Safe mode: Off
  Use accelerated hardware modes: On
  GPU Tessellation is: On
  Redraw scene when viewports are exposed: On
  Graphics level being used: OpenGL 4.6 (primary GPU's maximum)
  
  Anti-alias mode: 4x
  Mip Map Filtering: Linear
  Anisotropic Filtering Mode: High
  
  Vendor Name: NVIDIA Corporation
  Render version: 4.6
  Shading Language: 4.60 NVIDIA
  Driver Date: 7-2-2026
  Driver Version: 32.0.16.1074
  Maximum Texture size: 32768 x 32768
  Z-Buffer depth: 24 bits
  Maximum Viewport size: 32768 x 32768
  Total Video Memory: 16303 MB

OpenBLAS: OpenBLAS 0.3.30 DYNAMIC_ARCH NO_AFFINITY Cooperlake MAX_THREADS=64.

Rhino plugins that do not ship with Rhino

Rhino plugins that ship with Rhino
  C:\Program Files\Rhino 9 WIP\Plug-ins\Commands.rhp	"Commands"	9.0.26202.12303
  C:\Program Files\Rhino 9 WIP\Plug-ins\rdk.rhp	"Renderer Development Kit"	
  C:\Program Files\Rhino 9 WIP\Plug-ins\3dxRhino.9.rhp	"3DxRhino.9"	
  C:\Program Files\Rhino 9 WIP\Plug-ins\UpdatesAndStatistics\UpdatesAndStatistics.rhp	"UpdatesAndStatistics"	9.0.26202.12303
  C:\Program Files\Rhino 9 WIP\Plug-ins\RhinoRenderCycles.rhp	"Rhino Render"	9.0.26202.12303
  C:\Program Files\Rhino 9 WIP\Plug-ins\rdk_etoui.rhp	"RDK_EtoUI"	9.0.26202.12303
  C:\Program Files\Rhino 9 WIP\Plug-ins\NamedSnapshots.rhp	"Snapshots"	
  C:\Program Files\Rhino 9 WIP\Plug-ins\MeshCommands.rhp	"MeshCommands"	9.0.26202.12303
  C:\Program Files\Rhino 9 WIP\Plug-ins\RhinoCycles.rhp	"RhinoCycles"	9.0.26202.12303
  C:\Program Files\Rhino 9 WIP\Plug-ins\Displacement.rhp	"Displacement"	
  C:\Program Files\Rhino 9 WIP\Plug-ins\SectionTools.rhp	"SectionTools"	


and (spins around fast)

Time to regen viewport 100 times = 0.27 seconds. (375.94 FPS)

--

8 opengl

Rhino 8 SR33 2026-7-7 (Rhino 8, 8.33.26188.13001, Git hash:master @ 482f88a83547c62cde64d78ea8a8690b7349f289)
License type: Evaluation, build 2026-07-07
License details: Cloud Zoo
Expires on: 2026-10-09

Windows 11 (10.0.26200 SR0.0) or greater (Physical RAM: 62GB)
.NET 8.0.26

Computer platform: DESKTOP 

Standard graphics configuration.
  Primary display and OpenGL: NVIDIA GeForce RTX 5080 (NVidia) Memory: 16GB, Driver date: 7-2-2026 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 610.74
    > Accelerated graphics device with 4 adapter port(s)
        - Windows Main Display attached to adapter port #0
        - Secondary monitor attached to adapter port #1

Secondary graphics devices.
   AMD Radeon(TM) Graphics (AMD) Memory: 2GB, Driver date: 12-24-2024 (M-D-Y).
    > Accelerated graphics device with 5 adapter port(s)
        - There are no monitors attached to this device!

OpenGL Settings
  Safe mode: Off
  Use accelerated hardware modes: On
  GPU Tessellation is: On
  Redraw scene when viewports are exposed: On
  Graphics level being used: OpenGL 4.6 (primary GPU's maximum)
  
  Anti-alias mode: 4x
  Mip Map Filtering: Linear
  Anisotropic Filtering Mode: High
  
  Vendor Name: NVIDIA Corporation
  Render version: 4.6
  Shading Language: 4.60 NVIDIA
  Driver Date: 7-2-2026
  Driver Version: 32.0.16.1074
  Maximum Texture size: 32768 x 32768
  Z-Buffer depth: 24 bits
  Maximum Viewport size: 32768 x 32768
  Total Video Memory: 16303 MB

Rhino plugins that do not ship with Rhino

Rhino plugins that ship with Rhino
  C:\Program Files\Rhino 8\Plug-ins\Commands.rhp	"Commands"	8.33.26188.13001
  C:\Program Files\Rhino 8\Plug-ins\WebBrowser.rhp	"WebBrowser"	
  C:\Program Files\Rhino 8\Plug-ins\rdk.rhp	"Renderer Development Kit"	
  C:\Program Files\Rhino 8\Plug-ins\RhinoRenderCycles.rhp	"Rhino Render"	8.33.26188.13001
  C:\Program Files\Rhino 8\Plug-ins\rdk_etoui.rhp	"RDK_EtoUI"	8.33.26188.13001
  C:\Program Files\Rhino 8\Plug-ins\NamedSnapshots.rhp	"Snapshots"	
  C:\Program Files\Rhino 8\Plug-ins\MeshCommands.rhp	"MeshCommands"	8.33.26188.13001
  C:\Program Files\Rhino 8\Plug-ins\RhinoCycles.rhp	"RhinoCycles"	8.33.26188.13001
  C:\Program Files\Rhino 8\Plug-ins\Toolbars\Toolbars.rhp	"Toolbars"	8.33.26188.13001
  C:\Program Files\Rhino 8\Plug-ins\3dxrhino.rhp	"3Dconnexion 3D Mouse"	
  C:\Program Files\Rhino 8\Plug-ins\Displacement.rhp	"Displacement"	
  C:\Program Files\Rhino 8\Plug-ins\Calc.rhp	"Calc"	
  C:\Program Files\Rhino 8\Plug-ins\SectionTools.rhp	"SectionTools"	

and (fast zoom around)
Time to regen viewport 100 times = 0.28 seconds. (355.87 FPS)

--

but it’s not a low framerate, it’s the mouse input feeling. I don’t think most people would notice unless you are using a high hz monitor and are used to precise mouse control from stuff like games. And the funny thing is that rhino 8 is very smooth.

If i have to describe it as simply as possible, its like seeing the screen do “tick tick” movements when you move the mouse especially slowly and pan, whereas on rhion 8 its perfectly smooth.

--

edit: i have experienced not having it now. i don’t know what i did. i will test

so the TLDR is for some reason my plugin was loading anyway even though i thought it wasnt

and appareantly rhino 9 becames “a bit laggy” for 3 seconds after i called RhinoView.Redraw()which i first thought was something related to the RhinoCommon API defered renderer or whatever, since it wasnt an issue in rhino 8, but it happened in opengl and direct3d. so i made a dedicated thread for the raw input mouse stuff, and stopped hammering it with queued updates, and that fixed the inconsistant sensitivity and the lag.

so sorry, my bad!

edit: and its this plugin Rhinos Can Fly, WASD game engine fly camera controls for Rhino