I’ve tried to get a solution to my issue in other threads but those have seemed to have been lost over time.
My plugin, KaroroCAD, written in Grasshopper and complied using the Rhino Script Complier runs without major issues in:
Rhino 7 for Windows
Rhino 7 for MacOS
Rhino 8 for MacOS
However on Rhino 8 for Windows it loads with this error warning:
Command: -DK_Karoro_Kite
Solution completed in ~17.5 seconds
KaroroKITE Rhino Plugin 24.3.27
An error occured in the display pipeline @ 10:58:40(22ms)
Message: Object reference not set to an instance of an object.
Type: NullReferenceException
Command: _Enter
The same error happens around once an hour in use and 50% of the time will crash KaroroCAD/user loses unsaved work.
Does ANYONE have ideas on:
1/ What might be causing this error?
2/ How to trace the problem?
I’d REALLY like to have my plugin actually suitable for my customers to use in R8.
Windows 10 (10.0.19044 SR0.0) or greater (Physical RAM: 32GB)
.NET 7.0.0
Computer platform: LAPTOP - Plugged in [39% battery remaining]
Non-hybrid graphics configuration.
Primary display and OpenGL: NVIDIA Quadro M1000M (NVidia) Memory: 2GB, Driver date: 6-22-2022 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 513.29
> Integrated accelerated graphics device with 4 adapter port(s)
- Windows Main Display is laptop’s integrated screen or built-in port
Primary OpenGL: NVIDIA Quadro M1000M (NVidia) Memory: 2GB, Driver date: 6-22-2022 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 513.29
> Integrated accelerated graphics device with 4 adapter port(s)
- Windows Main Display is laptop’s integrated screen or built-in port
OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: 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: 6-22-2022
Driver Version: 30.0.15.1329
Maximum Texture size: 16384 x 16384
Z-Buffer depth: 24 bits
Maximum Viewport size: 16384 x 16384
Total Video Memory: 2 GB
Rhino plugins that do not ship with Rhino
C:\Users\David Kay\AppData\Roaming\McNeel\Rhinoceros\packages\8.0\KaroroCAD\24.3.27\KaroroCAD.rhp “KaroroCAD” 24.3.8851.24574
You say that your plugin was written in Grasshopper and then compiled with the Script Compiler? Is it possible to send us your file so we can inspect and take a look. You can upload your file privately at Rhino - Upload to Support. Please include a link to this thread so we can track it properly.
OK - @nathanletwory has been helping me out on this for the last week or so - thanks mate!
A lot of code clean up has been done, and some important errors sorted but no real progress on this issue until tonight.
I tried a trick someone else mentioned - copy the GH code to a new GH canvas and resave.
When I did this Shapediver suddenly popped up in my dependencies tracker. Shapediver was used in this code base YEARS ago but I’ve long deleted any components.
Doing a search of the canvas for Shapediver brought up this:
Ok I’ve been working on this for a couple of weeks now and have the following notes.
‘an error occured in the display pipeline’ is a general error message from GH Player to the Rhino terminal.
This wasn’t present in Rhino 7.
It could be useful to change the wording and/or add more details of the components (GUID?) that has produced the error.
It would be useful to have control over this message as well? Maybe pipe to Rhino terminal for testing, but log it only for production, so not to scare the users?
Due to the way I turn off/on streams of data in my code to control compute time there were a number of ‘null reference errors’ on branches that are turned off during normal usage. The liberal application of Clean Tree components helped A LOT here.
I underlying crash issue seems to be some timing issues on page submit between WebView (R7) and WebView2 (R8) where it’s possible to double submit a page quick enough on R8 to crash the local webserver I’m using.
It fix this I’ve done two things.
1/ Changed my UI initialize/reload code to kill off the old server on restart of the UI, which allows recovery if the server crashes
2/ Added some JS code to the UI side that locks the page after submit to prevent resubmits.
All up the system is now working the best it has ever been on R8. If testing works out well over the next week or so I might be ready to recommend R8 for production use.