-
Notifications
You must be signed in to change notification settings - Fork 635
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DYN-2225 - Marshaling Performance optimization - Heap Cleanup #10026
DYN-2225 - Marshaling Performance optimization - Heap Cleanup #10026
Conversation
values = Enumerable.Repeat(StackValue.BuildInvalid(), allocated).ToArray(); | ||
if (size != 0) | ||
{ | ||
values = Enumerable.Repeat(StackValue.BuildInvalid(), allocated).ToArray(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if we are worrying about optimizations - is this worth looking at replacing with a for loop?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
True... I can make the change
@@ -1105,20 +1108,27 @@ private StackValue CreateDSObject(object obj, ProtoCore.Runtime.Context context, | |||
{ | |||
//We are here, because we want to create DS object of user defined type. | |||
var runtimeCore = dsi.runtime.RuntimeCore; | |||
var classTable = runtimeCore.DSExecutable.classTable; | |||
Type objType = GetPublicType(obj.GetType()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this also seems recursive...?
mCachedObjType = objType; | ||
|
||
var classTable = runtimeCore.DSExecutable.classTable; | ||
mCachedType = classTable.IndexOf(GetTypeName(objType)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this implemented with a map - or does look through the entire class table?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nope.... It is trying to get an exact match first with Linq. Next it tries to get a match by splitting the the string also with Linq.
{ | ||
objType = objType.BaseType; | ||
if (null != objType) | ||
mCachedType = classTable.IndexOf(GetTypeName(objType)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so... why are we doing this, why do we want to get the real base type?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know specifically. It is for un-marshaling the object later though. This data is put in the the StackValue
object pointer
metadata.type = type; | ||
StackValue retval = runtimeCore.RuntimeMemory.Heap.AllocatePointer(classTable.ClassNodes[type].Size, metadata); | ||
metadata.type = mCachedType; | ||
StackValue retval = runtimeCore.RuntimeMemory.Heap.AllocatePointer(0, metadata); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so now we allocate an empty pointer to the object? Does this pointer actually point anywhere? Do they all point to the same address?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Eventually we use this pointer StackVakue in the CLRObjectMap and DSObjectMap to retrieve or dispose the return object
@@ -860,27 +860,6 @@ public override object Execute(ProtoCore.Runtime.Context c, Interpreter dsi, Lis | |||
return null; | |||
} | |||
|
|||
StackValue propValue = (StackValue)retVal; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so this code was updating reference types values on the heap, and we no longer do it - because it was unused?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As far as I can tell. I could not find where we ever retrieved this data as a alternative to un-marshaling from the DSObjectMap
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I should say un-marshaling and then calling the getter function via reflection in InvokeNoThow
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oops you are correct about reference type vs value type.... I will update the description. This code only added the StackValue pointers, not values to the heap
It's probably obvious but this also reduces memory allocation. Sometimes significantly :-) |
@saintentropy is there an internal task to review this? Who is going to fix the tests etc? |
@mjkkirschner @QilongTang Should I make a new task to review this in the new year? |
nope, we've got it tracked. |
Self-serve passes. The above failures seem unrelated to this PR. |
* Dyn 2303 (#10277) * Add Category ExcelTest. * Update ExcelTests.cs * Add new LibraryViewExtension project based on System.Windows.Controls.WebBrowser (#10241) * add new project add make core internals visible add duplicate files as required * build of libjswebview seems to work added package references * add resource files as links so dont duplicate them in repo * move to .net 4.7.2 to avoid package ref issues namespace adds dynamo use new namespace to reference resources that are embedded. * move back to 4.7 to see if we can get a build on self serve * log msbuild version in appyveyor * try using buildxml which restores a bit differently * image should not be under env - bah * revet back to nuget restore and build dynamo all * working branch in acad * icons from host registered streams supported now * this functions but startup time is slow. visibility fixed with startPage loads acad icons from resource streams that are registered using existing resource dict * add some stopwatch logging to resource loading remove superflous resourcestream handler add cache to main iconProvider entrypoint as first step in resolving icon data use string builder to construct base64 data strings * missed changes * semi working lazy load - small change made to librariejs to raise event whenever any item is clicked we also cache the original url before falling back to the default icon so we can load the real icon later. * some cleanup * update namespace to reflect what components are actually used update some todos update comments * drop back to packges config rename project, rename folder rename extension class * assembly and type names changed * remove value tuple use set version number to auto increment for now - keep at 1.0.x until we have a longer term plan for this project * get rid of value tuple * recase some methods comments add readme * address review comments * Add new tests (#10279) * Revert "Reset engine controller for every new workspace (#10113)" (#10282) This reverts commit b01e2de. * DYN-2375 - Event to handle the close operation of the workspace references extension (#10280) * First commit * new changes * Renaming the event * Adding test * Upgrade Revit Sample file to Revit 2021 (#10288) * pass the additional to sign list to the installerspec generator (#10285) add new files add comments remove files that no longer exist update installerSpec.exe update installerspec source * LibG Binaries Update (#10295) * "LibG/ASM224,7418555f" * "LibG/ASM224.4,918b3d73" * "LibG/ASM225,2b68d3dd" * "LibG/ASM226,2b308956" * Change mechanism to retreive the certificate from assembly (#10301) * DYN-2225 - Marshaling Performance optimization - Heap Cleanup (#10026) * fast path for zero size heap allocation * Cache mechanism for marshalling lookups * Do not allocate heap stack values for class properties for CLR objects * Test removing getter heap interaction for CLR object * Remove unused Heap Object set * make variables non-static * remove GetterFunctionPointer class Co-authored-by: aparajit-pratap <[email protected]> * DYN-2289: Fix crash with NodeToCode (#10305) * search for property by getter if not found * add test * Geometry Color Tests More (#10291) * Add geometry color check for Display_ByGeometryColor_HasColoredMesh Add geometry color check for Display_ByGeometryColor_HasColoredMesh * Test updates * Add Geometry Transparency Test * Update test name * update newly added test (#10313) * DYN-2286: fix for crash upon unresolved node undo (#10315) * fix for crash upon unresolved node undo * override Equals in PortModel * add recorded test * DYN-2328 Add test for geometry labeling (#10311) * DYN-2328 Add test for geometry lablling * DYN-2328 Add test for geometry labeling * Removing extra assignments * updating the test and the test dyn file. * Removing the extra variable that is not being used * First Github Action (#10131) This Github Action will greet Github users who submit a PR or issue first time to our repo * Removal of PR trigger for now (#10323) * Analytics Agreement Workflow Update (#10314) * Initial Commit to Update Analytics Agreement Workflow * update * Add unit test for deserializing analytics setting * Update instrumentation default agreement setting in unit test * Add more comments * Add missing resource string (#10329) * LibG Binaries Update (#10331) * "LibG/ASM224,7418555f" * "LibG/ASM224.4,918b3d73" * "LibG/ASM225,2b68d3dd" * "LibG/ASM226,5c8f1fdd" * Fix the library view display issues introduced by MS WebBrowser (#10316) * Disable the context menu on the library viewer. * Zoom the libarary view to adapt the current DPI scale. * Disable the horizontal scroll bar on the bottom of the library view. * Disable the library view is zoomed by keyboard or mouse wheel. * Zoom the library bar to adapt the current DPI scale. * Hide the extra search text bar close button. * [DYN-2382] LibraryViewExtensionMSWebBrowser does not scale correctly when using display scaling (#10335) * Disable the context menu on the library viewer. * Zoom the libarary view to adapt the current DPI scale. * Disable the horizontal scroll bar on the bottom of the library view. * Disable the library view is zoomed by keyboard or mouse wheel. * Zoom the library bar to adapt the current DPI scale. * Hide the extra search text bar close button. * Unsubscribing the event handler in dispose method * Skip GA Client Tear Down Process if NOT Necessary (#10340) * Skip Analytics Client Tear down if it is not needed * Add unit test covering analytics tear down * Touch test naming * [Analytics] Update Tracking Conditions (#10345) * Update Tracking Conditions * Add same check to ReportingUsage * Add properties comments * PR comment (#10347) * Code improvements: (#10348) 1. Unsubscribe DpiChanged event handler in the browser Dispose method. 2. Move the overflow-x style setting from script to html to avoid to set it when the script method is called every time. 3. Add necessary comments. Co-authored-by: manuelsaldivar525 <[email protected]> Co-authored-by: Michael Kirschner <[email protected]> Co-authored-by: Aaron (Qilong) <[email protected]> Co-authored-by: aparajit-pratap <[email protected]> Co-authored-by: reddyashish <[email protected]> Co-authored-by: ZiyunShang <[email protected]> Co-authored-by: DynamoEngOps <[email protected]> Co-authored-by: Craig Long <[email protected]> Co-authored-by: StarLee <[email protected]>
* LibG Binaries Update (#10295) * "LibG/ASM224,7418555f" * "LibG/ASM224.4,918b3d73" * "LibG/ASM225,2b68d3dd" * "LibG/ASM226,2b308956" * Change mechanism to retreive the certificate from assembly (#10301) * DYN-2225 - Marshaling Performance optimization - Heap Cleanup (#10026) * fast path for zero size heap allocation * Cache mechanism for marshalling lookups * Do not allocate heap stack values for class properties for CLR objects * Test removing getter heap interaction for CLR object * Remove unused Heap Object set * make variables non-static * remove GetterFunctionPointer class Co-authored-by: aparajit-pratap <[email protected]> * DYN-2289: Fix crash with NodeToCode (#10305) * search for property by getter if not found * add test * Geometry Color Tests More (#10291) * Add geometry color check for Display_ByGeometryColor_HasColoredMesh Add geometry color check for Display_ByGeometryColor_HasColoredMesh * Test updates * Add Geometry Transparency Test * Update test name * update newly added test (#10313) * DYN-2286: fix for crash upon unresolved node undo (#10315) * fix for crash upon unresolved node undo * override Equals in PortModel * add recorded test * DYN-2328 Add test for geometry labeling (#10311) * DYN-2328 Add test for geometry lablling * DYN-2328 Add test for geometry labeling * Removing extra assignments * updating the test and the test dyn file. * Removing the extra variable that is not being used * First Github Action (#10131) This Github Action will greet Github users who submit a PR or issue first time to our repo * Removal of PR trigger for now (#10323) * Analytics Agreement Workflow Update (#10314) * Initial Commit to Update Analytics Agreement Workflow * update * Add unit test for deserializing analytics setting * Update instrumentation default agreement setting in unit test * Add more comments * Add missing resource string (#10329) * LibG Binaries Update (#10331) * "LibG/ASM224,7418555f" * "LibG/ASM224.4,918b3d73" * "LibG/ASM225,2b68d3dd" * "LibG/ASM226,5c8f1fdd" * Fix the library view display issues introduced by MS WebBrowser (#10316) * Disable the context menu on the library viewer. * Zoom the libarary view to adapt the current DPI scale. * Disable the horizontal scroll bar on the bottom of the library view. * Disable the library view is zoomed by keyboard or mouse wheel. * Zoom the library bar to adapt the current DPI scale. * Hide the extra search text bar close button. * [DYN-2382] LibraryViewExtensionMSWebBrowser does not scale correctly when using display scaling (#10335) * Disable the context menu on the library viewer. * Zoom the libarary view to adapt the current DPI scale. * Disable the horizontal scroll bar on the bottom of the library view. * Disable the library view is zoomed by keyboard or mouse wheel. * Zoom the library bar to adapt the current DPI scale. * Hide the extra search text bar close button. * Unsubscribing the event handler in dispose method * Skip GA Client Tear Down Process if NOT Necessary (#10340) * Skip Analytics Client Tear down if it is not needed * Add unit test covering analytics tear down * Touch test naming * [Analytics] Update Tracking Conditions (#10345) * Update Tracking Conditions * Add same check to ReportingUsage * Add properties comments * PR comment (#10347) * Code improvements: (#10348) 1. Unsubscribe DpiChanged event handler in the browser Dispose method. 2. Move the overflow-x style setting from script to html to avoid to set it when the script method is called every time. 3. Add necessary comments. * Update HelixWatch3DViewModelTests.cs * Updating Watch3D_Disconnect_Reconnect_CorrectRenderings test Co-authored-by: DynamoEngOps <[email protected]> Co-authored-by: Craig Long <[email protected]> Co-authored-by: aparajit-pratap <[email protected]> Co-authored-by: Aaron (Qilong) <[email protected]> Co-authored-by: StarLee <[email protected]>
* LibG Binaries Update (#10295) * "LibG/ASM224,7418555f" * "LibG/ASM224.4,918b3d73" * "LibG/ASM225,2b68d3dd" * "LibG/ASM226,2b308956" * Change mechanism to retreive the certificate from assembly (#10301) * DYN-2225 - Marshaling Performance optimization - Heap Cleanup (#10026) * fast path for zero size heap allocation * Cache mechanism for marshalling lookups * Do not allocate heap stack values for class properties for CLR objects * Test removing getter heap interaction for CLR object * Remove unused Heap Object set * make variables non-static * remove GetterFunctionPointer class Co-authored-by: aparajit-pratap <[email protected]> * DYN-2289: Fix crash with NodeToCode (#10305) * search for property by getter if not found * add test * Geometry Color Tests More (#10291) * Add geometry color check for Display_ByGeometryColor_HasColoredMesh Add geometry color check for Display_ByGeometryColor_HasColoredMesh * Test updates * Add Geometry Transparency Test * Update test name * update newly added test (#10313) * DYN-2286: fix for crash upon unresolved node undo (#10315) * fix for crash upon unresolved node undo * override Equals in PortModel * add recorded test * DYN-2328 Add test for geometry labeling (#10311) * DYN-2328 Add test for geometry lablling * DYN-2328 Add test for geometry labeling * Removing extra assignments * updating the test and the test dyn file. * Removing the extra variable that is not being used * First Github Action (#10131) This Github Action will greet Github users who submit a PR or issue first time to our repo * Removal of PR trigger for now (#10323) * Analytics Agreement Workflow Update (#10314) * Initial Commit to Update Analytics Agreement Workflow * update * Add unit test for deserializing analytics setting * Update instrumentation default agreement setting in unit test * Add more comments * Add missing resource string (#10329) * LibG Binaries Update (#10331) * "LibG/ASM224,7418555f" * "LibG/ASM224.4,918b3d73" * "LibG/ASM225,2b68d3dd" * "LibG/ASM226,5c8f1fdd" * Fix the library view display issues introduced by MS WebBrowser (#10316) * Disable the context menu on the library viewer. * Zoom the libarary view to adapt the current DPI scale. * Disable the horizontal scroll bar on the bottom of the library view. * Disable the library view is zoomed by keyboard or mouse wheel. * Zoom the library bar to adapt the current DPI scale. * Hide the extra search text bar close button. * [DYN-2382] LibraryViewExtensionMSWebBrowser does not scale correctly when using display scaling (#10335) * Disable the context menu on the library viewer. * Zoom the libarary view to adapt the current DPI scale. * Disable the horizontal scroll bar on the bottom of the library view. * Disable the library view is zoomed by keyboard or mouse wheel. * Zoom the library bar to adapt the current DPI scale. * Hide the extra search text bar close button. * Unsubscribing the event handler in dispose method * Skip GA Client Tear Down Process if NOT Necessary (#10340) * Skip Analytics Client Tear down if it is not needed * Add unit test covering analytics tear down * Touch test naming * [Analytics] Update Tracking Conditions (#10345) * Update Tracking Conditions * Add same check to ReportingUsage * Add properties comments * PR comment (#10347) * Code improvements: (#10348) 1. Unsubscribe DpiChanged event handler in the browser Dispose method. 2. Move the overflow-x style setting from script to html to avoid to set it when the script method is called every time. 3. Add necessary comments. * add show line numbers when watermarkLabel is collapsed (#10362) * Visual Identifier on Optional Inputs (#10361) * change port text to italic if using default input * Update Ports.xaml * Update README.md (#10387) * Update README.md * Update README.md * Update README.md * Update DynamoVisualProgramming.Core.nuspec * Update DynamoVisualProgramming.Core.nuspec * GA client not launching when terms not agreed (#10407) * GA client not launching when terms not agreed * Comments * Patch 283 (#10421) * Add WinVerityTrust wrapper * Utilzie new WinTrustWrapper method for cert verification * Add negative test * Add Package with faked certificate * Create sub namespace for WinVerityInteropp * Update the WinTrustInterop * Upate method call name * Add specific exceptions to the CertificateVerfication class * formating * Cover Test for Configuration Folder (#10444) * Cover Test for Configuration Folder * Update DynamoCoreTests.csproj * Added a couple of asserts for the properties. (#10437) * Add Test for Properties and removed getter and setter from WorkspaceDependencyViewExtension.DependencyView property. * Update WorkspaceDependencyViewExtension.cs * Fix for crash while drawing Point manipulator (gizmo) when LibG fails to load (#10148) * fix for crash in DM when LibG fails to load * return from recursive loop once we find the first non-null point * cache enabled flag for manipulator * more fixes * add documentation * add documentation Co-authored-by: DynamoEngOps <[email protected]> Co-authored-by: Craig Long <[email protected]> Co-authored-by: aparajit-pratap <[email protected]> Co-authored-by: Aaron (Qilong) <[email protected]> Co-authored-by: reddyashish <[email protected]> Co-authored-by: StarLee <[email protected]> Co-authored-by: Sylvester Knudsen <[email protected]>
* LibG Binaries Update (#10295) * "LibG/ASM224,7418555f" * "LibG/ASM224.4,918b3d73" * "LibG/ASM225,2b68d3dd" * "LibG/ASM226,2b308956" * Change mechanism to retreive the certificate from assembly (#10301) * DYN-2225 - Marshaling Performance optimization - Heap Cleanup (#10026) * fast path for zero size heap allocation * Cache mechanism for marshalling lookups * Do not allocate heap stack values for class properties for CLR objects * Test removing getter heap interaction for CLR object * Remove unused Heap Object set * make variables non-static * remove GetterFunctionPointer class Co-authored-by: aparajit-pratap <[email protected]> * DYN-2289: Fix crash with NodeToCode (#10305) * search for property by getter if not found * add test * Geometry Color Tests More (#10291) * Add geometry color check for Display_ByGeometryColor_HasColoredMesh Add geometry color check for Display_ByGeometryColor_HasColoredMesh * Test updates * Add Geometry Transparency Test * Update test name * update newly added test (#10313) * DYN-2286: fix for crash upon unresolved node undo (#10315) * fix for crash upon unresolved node undo * override Equals in PortModel * add recorded test * DYN-2328 Add test for geometry labeling (#10311) * DYN-2328 Add test for geometry lablling * DYN-2328 Add test for geometry labeling * Removing extra assignments * updating the test and the test dyn file. * Removing the extra variable that is not being used * First Github Action (#10131) This Github Action will greet Github users who submit a PR or issue first time to our repo * Removal of PR trigger for now (#10323) * Analytics Agreement Workflow Update (#10314) * Initial Commit to Update Analytics Agreement Workflow * update * Add unit test for deserializing analytics setting * Update instrumentation default agreement setting in unit test * Add more comments * Add missing resource string (#10329) * LibG Binaries Update (#10331) * "LibG/ASM224,7418555f" * "LibG/ASM224.4,918b3d73" * "LibG/ASM225,2b68d3dd" * "LibG/ASM226,5c8f1fdd" * Fix the library view display issues introduced by MS WebBrowser (#10316) * Disable the context menu on the library viewer. * Zoom the libarary view to adapt the current DPI scale. * Disable the horizontal scroll bar on the bottom of the library view. * Disable the library view is zoomed by keyboard or mouse wheel. * Zoom the library bar to adapt the current DPI scale. * Hide the extra search text bar close button. * [DYN-2382] LibraryViewExtensionMSWebBrowser does not scale correctly when using display scaling (#10335) * Disable the context menu on the library viewer. * Zoom the libarary view to adapt the current DPI scale. * Disable the horizontal scroll bar on the bottom of the library view. * Disable the library view is zoomed by keyboard or mouse wheel. * Zoom the library bar to adapt the current DPI scale. * Hide the extra search text bar close button. * Unsubscribing the event handler in dispose method * working color change on selection for points. * Skip GA Client Tear Down Process if NOT Necessary (#10340) * Skip Analytics Client Tear down if it is not needed * Add unit test covering analytics tear down * Touch test naming * [Analytics] Update Tracking Conditions (#10345) * Update Tracking Conditions * Add same check to ReportingUsage * Add properties comments * PR comment (#10347) * Code improvements: (#10348) 1. Unsubscribe DpiChanged event handler in the browser Dispose method. 2. Move the overflow-x style setting from script to html to avoid to set it when the script method is called every time. 3. Add necessary comments. * lots of cleanup work to do but this works isolate correctly sets all geo to low alpha, and the selected geo sets back to whatever other state it was in without isolate. * start adding morecolor tests * fix test * add more tests add cleanup to color cache * fix watch3d background color converter fix watch3d background color test fix watch3d image export function * need to move branches - saving work * give up on image comparison tests, will file that as followup, resize function in helix does not work. * break out some util methods need to rerun tests * review comments all tests pass * review comment * add show line numbers when watermarkLabel is collapsed (#10362) * Visual Identifier on Optional Inputs (#10361) * change port text to italic if using default input * Update Ports.xaml * Update README.md (#10387) * Update README.md * Update README.md * Update README.md * Update DynamoVisualProgramming.Core.nuspec * Update DynamoVisualProgramming.Core.nuspec * GA client not launching when terms not agreed (#10407) * GA client not launching when terms not agreed * Comments * Patch 283 (#10421) * Add WinVerityTrust wrapper * Utilzie new WinTrustWrapper method for cert verification * Add negative test * Add Package with faked certificate * Create sub namespace for WinVerityInteropp * Update the WinTrustInterop * Upate method call name * Add specific exceptions to the CertificateVerfication class * formating * fix summary * Cover Test for Configuration Folder (#10444) * Cover Test for Configuration Folder * Update DynamoCoreTests.csproj * Added a couple of asserts for the properties. (#10437) * Add Test for Properties and removed getter and setter from WorkspaceDependencyViewExtension.DependencyView property. * Update WorkspaceDependencyViewExtension.cs * this is working to link 2 simple shaders - they are just for testing though. (vertex shaders with lighting) embed testing shaders add technique that uses our 2 shaders add core and node classes for dynamo mesh which will set data on shader based on attached properties. * Fix for crash while drawing Point manipulator (gizmo) when LibG fails to load (#10148) * fix for crash in DM when LibG fails to load * return from recursive loop once we find the first non-null point * cache enabled flag for manipulator * more fixes * add documentation * add documentation * update shader names add handle mesh method to attached properties replacing all the material setting add code for setting bit flags and setting data on struct that actually makes it to shader add helix shader structs and functions that we need to compile our shaders add readme * fix broken tests dude to bad merge conflict fix * remove commented out vertex shader code * fix bug in shader fix comment and some todos * remove tested transofmrable interface * update comments * review comments * review comments2 Co-authored-by: DynamoEngOps <[email protected]> Co-authored-by: Craig Long <[email protected]> Co-authored-by: aparajit-pratap <[email protected]> Co-authored-by: Aaron (Qilong) <[email protected]> Co-authored-by: reddyashish <[email protected]> Co-authored-by: StarLee <[email protected]> Co-authored-by: Sylvester Knudsen <[email protected]>
* LibG Binaries Update (#10295) * "LibG/ASM224,7418555f" * "LibG/ASM224.4,918b3d73" * "LibG/ASM225,2b68d3dd" * "LibG/ASM226,2b308956" * Change mechanism to retreive the certificate from assembly (#10301) * DYN-2225 - Marshaling Performance optimization - Heap Cleanup (#10026) * fast path for zero size heap allocation * Cache mechanism for marshalling lookups * Do not allocate heap stack values for class properties for CLR objects * Test removing getter heap interaction for CLR object * Remove unused Heap Object set * make variables non-static * remove GetterFunctionPointer class Co-authored-by: aparajit-pratap <[email protected]> * DYN-2289: Fix crash with NodeToCode (#10305) * search for property by getter if not found * add test * Geometry Color Tests More (#10291) * Add geometry color check for Display_ByGeometryColor_HasColoredMesh Add geometry color check for Display_ByGeometryColor_HasColoredMesh * Test updates * Add Geometry Transparency Test * Update test name * update newly added test (#10313) * DYN-2286: fix for crash upon unresolved node undo (#10315) * fix for crash upon unresolved node undo * override Equals in PortModel * add recorded test * DYN-2328 Add test for geometry labeling (#10311) * DYN-2328 Add test for geometry lablling * DYN-2328 Add test for geometry labeling * Removing extra assignments * updating the test and the test dyn file. * Removing the extra variable that is not being used * First Github Action (#10131) This Github Action will greet Github users who submit a PR or issue first time to our repo * Removal of PR trigger for now (#10323) * Analytics Agreement Workflow Update (#10314) * Initial Commit to Update Analytics Agreement Workflow * update * Add unit test for deserializing analytics setting * Update instrumentation default agreement setting in unit test * Add more comments * Add missing resource string (#10329) * LibG Binaries Update (#10331) * "LibG/ASM224,7418555f" * "LibG/ASM224.4,918b3d73" * "LibG/ASM225,2b68d3dd" * "LibG/ASM226,5c8f1fdd" * Fix the library view display issues introduced by MS WebBrowser (#10316) * Disable the context menu on the library viewer. * Zoom the libarary view to adapt the current DPI scale. * Disable the horizontal scroll bar on the bottom of the library view. * Disable the library view is zoomed by keyboard or mouse wheel. * Zoom the library bar to adapt the current DPI scale. * Hide the extra search text bar close button. * [DYN-2382] LibraryViewExtensionMSWebBrowser does not scale correctly when using display scaling (#10335) * Disable the context menu on the library viewer. * Zoom the libarary view to adapt the current DPI scale. * Disable the horizontal scroll bar on the bottom of the library view. * Disable the library view is zoomed by keyboard or mouse wheel. * Zoom the library bar to adapt the current DPI scale. * Hide the extra search text bar close button. * Unsubscribing the event handler in dispose method * working color change on selection for points. * Skip GA Client Tear Down Process if NOT Necessary (#10340) * Skip Analytics Client Tear down if it is not needed * Add unit test covering analytics tear down * Touch test naming * [Analytics] Update Tracking Conditions (#10345) * Update Tracking Conditions * Add same check to ReportingUsage * Add properties comments * PR comment (#10347) * Code improvements: (#10348) 1. Unsubscribe DpiChanged event handler in the browser Dispose method. 2. Move the overflow-x style setting from script to html to avoid to set it when the script method is called every time. 3. Add necessary comments. * lots of cleanup work to do but this works isolate correctly sets all geo to low alpha, and the selected geo sets back to whatever other state it was in without isolate. * start adding morecolor tests * fix test * add more tests add cleanup to color cache * fix watch3d background color converter fix watch3d background color test fix watch3d image export function * need to move branches - saving work * give up on image comparison tests, will file that as followup, resize function in helix does not work. * break out some util methods need to rerun tests * review comments all tests pass * review comment * add show line numbers when watermarkLabel is collapsed (#10362) * Visual Identifier on Optional Inputs (#10361) * change port text to italic if using default input * Update Ports.xaml * Update README.md (#10387) * Update README.md * Update README.md * Update README.md * Update DynamoVisualProgramming.Core.nuspec * Update DynamoVisualProgramming.Core.nuspec * GA client not launching when terms not agreed (#10407) * GA client not launching when terms not agreed * Comments * Patch 283 (#10421) * Add WinVerityTrust wrapper * Utilzie new WinTrustWrapper method for cert verification * Add negative test * Add Package with faked certificate * Create sub namespace for WinVerityInteropp * Update the WinTrustInterop * Upate method call name * Add specific exceptions to the CertificateVerfication class * formating * fix summary * Cover Test for Configuration Folder (#10444) * Cover Test for Configuration Folder * Update DynamoCoreTests.csproj * Added a couple of asserts for the properties. (#10437) * Add Test for Properties and removed getter and setter from WorkspaceDependencyViewExtension.DependencyView property. * Update WorkspaceDependencyViewExtension.cs * this is working to link 2 simple shaders - they are just for testing though. (vertex shaders with lighting) embed testing shaders add technique that uses our 2 shaders add core and node classes for dynamo mesh which will set data on shader based on attached properties. * Fix for crash while drawing Point manipulator (gizmo) when LibG fails to load (#10148) * fix for crash in DM when LibG fails to load * return from recursive loop once we find the first non-null point * cache enabled flag for manipulator * more fixes * add documentation * add documentation * update shader names add handle mesh method to attached properties replacing all the material setting add code for setting bit flags and setting data on struct that actually makes it to shader add helix shader structs and functions that we need to compile our shaders add readme * fix broken tests dude to bad merge conflict fix * remove commented out vertex shader code * fix bug in shader fix comment and some todos * remove tested transofmrable interface * update comments * fix binding add test * flip normal if back facing tri update shader * make sure compiled shader up to date. Co-authored-by: DynamoEngOps <[email protected]> Co-authored-by: Craig Long <[email protected]> Co-authored-by: aparajit-pratap <[email protected]> Co-authored-by: Aaron (Qilong) <[email protected]> Co-authored-by: reddyashish <[email protected]> Co-authored-by: StarLee <[email protected]> Co-authored-by: Sylvester Knudsen <[email protected]>
* Move to Helix 2.5.1 and SharpDX 4.2.0 * Re-implement zoom in/out buttons * Upgrade Helix to 2.9.0 * Re-implement headlight outside of shader * Remove Helix shader pipeline customizations, use default shaders (WIP) * restore updating colors for selected and frozen node states * code cleanup * Use Viewport3DX.Items, enable geometry -> node selection * Helix upgrade basics (#10326) * [DYN-2349] Close workspace references extension tab by user action and API (#10230) * DYN-2349 * Adding events and fixing the crash that was happening due to selection/deselection of the menu item. * Change to internal * Moving the Close tab event from ViewLoadedParams to WorkspaceDependencyView call * Adding extension tab name as an input parameter to the Close Extension event * Adding null check for WorkspaceReferencesMenuItem * Making the extension name string a constant * Removing the extra line * Dyn 2303 (#10277) * Add Category ExcelTest. * Update ExcelTests.cs * Add new LibraryViewExtension project based on System.Windows.Controls.WebBrowser (#10241) * add new project add make core internals visible add duplicate files as required * build of libjswebview seems to work added package references * add resource files as links so dont duplicate them in repo * move to .net 4.7.2 to avoid package ref issues namespace adds dynamo use new namespace to reference resources that are embedded. * move back to 4.7 to see if we can get a build on self serve * log msbuild version in appyveyor * try using buildxml which restores a bit differently * image should not be under env - bah * revet back to nuget restore and build dynamo all * working branch in acad * icons from host registered streams supported now * this functions but startup time is slow. visibility fixed with startPage loads acad icons from resource streams that are registered using existing resource dict * add some stopwatch logging to resource loading remove superflous resourcestream handler add cache to main iconProvider entrypoint as first step in resolving icon data use string builder to construct base64 data strings * missed changes * semi working lazy load - small change made to librariejs to raise event whenever any item is clicked we also cache the original url before falling back to the default icon so we can load the real icon later. * some cleanup * update namespace to reflect what components are actually used update some todos update comments * drop back to packges config rename project, rename folder rename extension class * assembly and type names changed * remove value tuple use set version number to auto increment for now - keep at 1.0.x until we have a longer term plan for this project * get rid of value tuple * recase some methods comments add readme * address review comments * Add new tests (#10279) * Revert "Reset engine controller for every new workspace (#10113)" (#10282) This reverts commit b01e2de. * DYN-2375 - Event to handle the close operation of the workspace references extension (#10280) * First commit * new changes * Renaming the event * Adding test * Upgrade Revit Sample file to Revit 2021 (#10288) * pass the additional to sign list to the installerspec generator (#10285) add new files add comments remove files that no longer exist update installerSpec.exe update installerspec source * points and curves render bounds are updated when added - and faster than for each RP. remove new handlers and events, revert to binding. * revert change * remove commented out code * add comments * remove some old comments remove old code for testing Co-authored-by: reddyashish <[email protected]> Co-authored-by: manuelsaldivar525 <[email protected]> Co-authored-by: Aaron (Qilong) <[email protected]> Co-authored-by: aparajit-pratap <[email protected]> Co-authored-by: ZiyunShang <[email protected]> * Helix upgrade PR to merge the changes from the master branch (#10388) * LibG Binaries Update (#10295) * "LibG/ASM224,7418555f" * "LibG/ASM224.4,918b3d73" * "LibG/ASM225,2b68d3dd" * "LibG/ASM226,2b308956" * Change mechanism to retreive the certificate from assembly (#10301) * DYN-2225 - Marshaling Performance optimization - Heap Cleanup (#10026) * fast path for zero size heap allocation * Cache mechanism for marshalling lookups * Do not allocate heap stack values for class properties for CLR objects * Test removing getter heap interaction for CLR object * Remove unused Heap Object set * make variables non-static * remove GetterFunctionPointer class Co-authored-by: aparajit-pratap <[email protected]> * DYN-2289: Fix crash with NodeToCode (#10305) * search for property by getter if not found * add test * Geometry Color Tests More (#10291) * Add geometry color check for Display_ByGeometryColor_HasColoredMesh Add geometry color check for Display_ByGeometryColor_HasColoredMesh * Test updates * Add Geometry Transparency Test * Update test name * update newly added test (#10313) * DYN-2286: fix for crash upon unresolved node undo (#10315) * fix for crash upon unresolved node undo * override Equals in PortModel * add recorded test * DYN-2328 Add test for geometry labeling (#10311) * DYN-2328 Add test for geometry lablling * DYN-2328 Add test for geometry labeling * Removing extra assignments * updating the test and the test dyn file. * Removing the extra variable that is not being used * First Github Action (#10131) This Github Action will greet Github users who submit a PR or issue first time to our repo * Removal of PR trigger for now (#10323) * Analytics Agreement Workflow Update (#10314) * Initial Commit to Update Analytics Agreement Workflow * update * Add unit test for deserializing analytics setting * Update instrumentation default agreement setting in unit test * Add more comments * Add missing resource string (#10329) * LibG Binaries Update (#10331) * "LibG/ASM224,7418555f" * "LibG/ASM224.4,918b3d73" * "LibG/ASM225,2b68d3dd" * "LibG/ASM226,5c8f1fdd" * Fix the library view display issues introduced by MS WebBrowser (#10316) * Disable the context menu on the library viewer. * Zoom the libarary view to adapt the current DPI scale. * Disable the horizontal scroll bar on the bottom of the library view. * Disable the library view is zoomed by keyboard or mouse wheel. * Zoom the library bar to adapt the current DPI scale. * Hide the extra search text bar close button. * [DYN-2382] LibraryViewExtensionMSWebBrowser does not scale correctly when using display scaling (#10335) * Disable the context menu on the library viewer. * Zoom the libarary view to adapt the current DPI scale. * Disable the horizontal scroll bar on the bottom of the library view. * Disable the library view is zoomed by keyboard or mouse wheel. * Zoom the library bar to adapt the current DPI scale. * Hide the extra search text bar close button. * Unsubscribing the event handler in dispose method * Skip GA Client Tear Down Process if NOT Necessary (#10340) * Skip Analytics Client Tear down if it is not needed * Add unit test covering analytics tear down * Touch test naming * [Analytics] Update Tracking Conditions (#10345) * Update Tracking Conditions * Add same check to ReportingUsage * Add properties comments * PR comment (#10347) * Code improvements: (#10348) 1. Unsubscribe DpiChanged event handler in the browser Dispose method. 2. Move the overflow-x style setting from script to html to avoid to set it when the script method is called every time. 3. Add necessary comments. * Update HelixWatch3DViewModelTests.cs * Updating Watch3D_Disconnect_Reconnect_CorrectRenderings test Co-authored-by: DynamoEngOps <[email protected]> Co-authored-by: Craig Long <[email protected]> Co-authored-by: aparajit-pratap <[email protected]> Co-authored-by: Aaron (Qilong) <[email protected]> Co-authored-by: StarLee <[email protected]> * [DYN-2341] Labels on helix-update branch cause slow down (#10399) * Fix the null pointer exception This will render the labels on the workspace without any lags. * Adding test to compare the performace. * Verify test run time. * some changes to the test. * Update comments * DYN-2406: better handle pts/lines when selecting, freezing, and isolating. (#10375) * working color change on selection for points. * lots of cleanup work to do but this works isolate correctly sets all geo to low alpha, and the selected geo sets back to whatever other state it was in without isolate. * start adding morecolor tests * fix test * add more tests add cleanup to color cache * fix watch3d background color converter fix watch3d background color test fix watch3d image export function * need to move branches - saving work * give up on image comparison tests, will file that as followup, resize function in helix does not work. * break out some util methods need to rerun tests * review comments all tests pass * review comment * improve performance of selection handler while isolation mode is on - no need to update scene items - modifying colors updates the materials and colors already. * fix color tests modify pt line isolation alpha * fix alpha value for mesh colors in isolation mode. (#10405) * working color change on selection for points. * lots of cleanup work to do but this works isolate correctly sets all geo to low alpha, and the selected geo sets back to whatever other state it was in without isolate. * start adding morecolor tests * fix test * add more tests add cleanup to color cache * fix watch3d background color converter fix watch3d background color test fix watch3d image export function * need to move branches - saving work * give up on image comparison tests, will file that as followup, resize function in helix does not work. * break out some util methods need to rerun tests * review comments all tests pass * review comment * improve performance of selection handler while isolation mode is on - no need to update scene items - modifying colors updates the materials and colors already. * fix color tests modify pt line isolation alpha * missed last alpha change * Helix upgrade mastermerge (#10465) * LibG Binaries Update (#10295) * "LibG/ASM224,7418555f" * "LibG/ASM224.4,918b3d73" * "LibG/ASM225,2b68d3dd" * "LibG/ASM226,2b308956" * Change mechanism to retreive the certificate from assembly (#10301) * DYN-2225 - Marshaling Performance optimization - Heap Cleanup (#10026) * fast path for zero size heap allocation * Cache mechanism for marshalling lookups * Do not allocate heap stack values for class properties for CLR objects * Test removing getter heap interaction for CLR object * Remove unused Heap Object set * make variables non-static * remove GetterFunctionPointer class Co-authored-by: aparajit-pratap <[email protected]> * DYN-2289: Fix crash with NodeToCode (#10305) * search for property by getter if not found * add test * Geometry Color Tests More (#10291) * Add geometry color check for Display_ByGeometryColor_HasColoredMesh Add geometry color check for Display_ByGeometryColor_HasColoredMesh * Test updates * Add Geometry Transparency Test * Update test name * update newly added test (#10313) * DYN-2286: fix for crash upon unresolved node undo (#10315) * fix for crash upon unresolved node undo * override Equals in PortModel * add recorded test * DYN-2328 Add test for geometry labeling (#10311) * DYN-2328 Add test for geometry lablling * DYN-2328 Add test for geometry labeling * Removing extra assignments * updating the test and the test dyn file. * Removing the extra variable that is not being used * First Github Action (#10131) This Github Action will greet Github users who submit a PR or issue first time to our repo * Removal of PR trigger for now (#10323) * Analytics Agreement Workflow Update (#10314) * Initial Commit to Update Analytics Agreement Workflow * update * Add unit test for deserializing analytics setting * Update instrumentation default agreement setting in unit test * Add more comments * Add missing resource string (#10329) * LibG Binaries Update (#10331) * "LibG/ASM224,7418555f" * "LibG/ASM224.4,918b3d73" * "LibG/ASM225,2b68d3dd" * "LibG/ASM226,5c8f1fdd" * Fix the library view display issues introduced by MS WebBrowser (#10316) * Disable the context menu on the library viewer. * Zoom the libarary view to adapt the current DPI scale. * Disable the horizontal scroll bar on the bottom of the library view. * Disable the library view is zoomed by keyboard or mouse wheel. * Zoom the library bar to adapt the current DPI scale. * Hide the extra search text bar close button. * [DYN-2382] LibraryViewExtensionMSWebBrowser does not scale correctly when using display scaling (#10335) * Disable the context menu on the library viewer. * Zoom the libarary view to adapt the current DPI scale. * Disable the horizontal scroll bar on the bottom of the library view. * Disable the library view is zoomed by keyboard or mouse wheel. * Zoom the library bar to adapt the current DPI scale. * Hide the extra search text bar close button. * Unsubscribing the event handler in dispose method * Skip GA Client Tear Down Process if NOT Necessary (#10340) * Skip Analytics Client Tear down if it is not needed * Add unit test covering analytics tear down * Touch test naming * [Analytics] Update Tracking Conditions (#10345) * Update Tracking Conditions * Add same check to ReportingUsage * Add properties comments * PR comment (#10347) * Code improvements: (#10348) 1. Unsubscribe DpiChanged event handler in the browser Dispose method. 2. Move the overflow-x style setting from script to html to avoid to set it when the script method is called every time. 3. Add necessary comments. * add show line numbers when watermarkLabel is collapsed (#10362) * Visual Identifier on Optional Inputs (#10361) * change port text to italic if using default input * Update Ports.xaml * Update README.md (#10387) * Update README.md * Update README.md * Update README.md * Update DynamoVisualProgramming.Core.nuspec * Update DynamoVisualProgramming.Core.nuspec * GA client not launching when terms not agreed (#10407) * GA client not launching when terms not agreed * Comments * Patch 283 (#10421) * Add WinVerityTrust wrapper * Utilzie new WinTrustWrapper method for cert verification * Add negative test * Add Package with faked certificate * Create sub namespace for WinVerityInteropp * Update the WinTrustInterop * Upate method call name * Add specific exceptions to the CertificateVerfication class * formating * Cover Test for Configuration Folder (#10444) * Cover Test for Configuration Folder * Update DynamoCoreTests.csproj * Added a couple of asserts for the properties. (#10437) * Add Test for Properties and removed getter and setter from WorkspaceDependencyViewExtension.DependencyView property. * Update WorkspaceDependencyViewExtension.cs * Fix for crash while drawing Point manipulator (gizmo) when LibG fails to load (#10148) * fix for crash in DM when LibG fails to load * return from recursive loop once we find the first non-null point * cache enabled flag for manipulator * more fixes * add documentation * add documentation Co-authored-by: DynamoEngOps <[email protected]> Co-authored-by: Craig Long <[email protected]> Co-authored-by: aparajit-pratap <[email protected]> Co-authored-by: Aaron (Qilong) <[email protected]> Co-authored-by: reddyashish <[email protected]> Co-authored-by: StarLee <[email protected]> Co-authored-by: Sylvester Knudsen <[email protected]> * Mesh display using shaders (#10462) * LibG Binaries Update (#10295) * "LibG/ASM224,7418555f" * "LibG/ASM224.4,918b3d73" * "LibG/ASM225,2b68d3dd" * "LibG/ASM226,2b308956" * Change mechanism to retreive the certificate from assembly (#10301) * DYN-2225 - Marshaling Performance optimization - Heap Cleanup (#10026) * fast path for zero size heap allocation * Cache mechanism for marshalling lookups * Do not allocate heap stack values for class properties for CLR objects * Test removing getter heap interaction for CLR object * Remove unused Heap Object set * make variables non-static * remove GetterFunctionPointer class Co-authored-by: aparajit-pratap <[email protected]> * DYN-2289: Fix crash with NodeToCode (#10305) * search for property by getter if not found * add test * Geometry Color Tests More (#10291) * Add geometry color check for Display_ByGeometryColor_HasColoredMesh Add geometry color check for Display_ByGeometryColor_HasColoredMesh * Test updates * Add Geometry Transparency Test * Update test name * update newly added test (#10313) * DYN-2286: fix for crash upon unresolved node undo (#10315) * fix for crash upon unresolved node undo * override Equals in PortModel * add recorded test * DYN-2328 Add test for geometry labeling (#10311) * DYN-2328 Add test for geometry lablling * DYN-2328 Add test for geometry labeling * Removing extra assignments * updating the test and the test dyn file. * Removing the extra variable that is not being used * First Github Action (#10131) This Github Action will greet Github users who submit a PR or issue first time to our repo * Removal of PR trigger for now (#10323) * Analytics Agreement Workflow Update (#10314) * Initial Commit to Update Analytics Agreement Workflow * update * Add unit test for deserializing analytics setting * Update instrumentation default agreement setting in unit test * Add more comments * Add missing resource string (#10329) * LibG Binaries Update (#10331) * "LibG/ASM224,7418555f" * "LibG/ASM224.4,918b3d73" * "LibG/ASM225,2b68d3dd" * "LibG/ASM226,5c8f1fdd" * Fix the library view display issues introduced by MS WebBrowser (#10316) * Disable the context menu on the library viewer. * Zoom the libarary view to adapt the current DPI scale. * Disable the horizontal scroll bar on the bottom of the library view. * Disable the library view is zoomed by keyboard or mouse wheel. * Zoom the library bar to adapt the current DPI scale. * Hide the extra search text bar close button. * [DYN-2382] LibraryViewExtensionMSWebBrowser does not scale correctly when using display scaling (#10335) * Disable the context menu on the library viewer. * Zoom the libarary view to adapt the current DPI scale. * Disable the horizontal scroll bar on the bottom of the library view. * Disable the library view is zoomed by keyboard or mouse wheel. * Zoom the library bar to adapt the current DPI scale. * Hide the extra search text bar close button. * Unsubscribing the event handler in dispose method * working color change on selection for points. * Skip GA Client Tear Down Process if NOT Necessary (#10340) * Skip Analytics Client Tear down if it is not needed * Add unit test covering analytics tear down * Touch test naming * [Analytics] Update Tracking Conditions (#10345) * Update Tracking Conditions * Add same check to ReportingUsage * Add properties comments * PR comment (#10347) * Code improvements: (#10348) 1. Unsubscribe DpiChanged event handler in the browser Dispose method. 2. Move the overflow-x style setting from script to html to avoid to set it when the script method is called every time. 3. Add necessary comments. * lots of cleanup work to do but this works isolate correctly sets all geo to low alpha, and the selected geo sets back to whatever other state it was in without isolate. * start adding morecolor tests * fix test * add more tests add cleanup to color cache * fix watch3d background color converter fix watch3d background color test fix watch3d image export function * need to move branches - saving work * give up on image comparison tests, will file that as followup, resize function in helix does not work. * break out some util methods need to rerun tests * review comments all tests pass * review comment * add show line numbers when watermarkLabel is collapsed (#10362) * Visual Identifier on Optional Inputs (#10361) * change port text to italic if using default input * Update Ports.xaml * Update README.md (#10387) * Update README.md * Update README.md * Update README.md * Update DynamoVisualProgramming.Core.nuspec * Update DynamoVisualProgramming.Core.nuspec * GA client not launching when terms not agreed (#10407) * GA client not launching when terms not agreed * Comments * Patch 283 (#10421) * Add WinVerityTrust wrapper * Utilzie new WinTrustWrapper method for cert verification * Add negative test * Add Package with faked certificate * Create sub namespace for WinVerityInteropp * Update the WinTrustInterop * Upate method call name * Add specific exceptions to the CertificateVerfication class * formating * fix summary * Cover Test for Configuration Folder (#10444) * Cover Test for Configuration Folder * Update DynamoCoreTests.csproj * Added a couple of asserts for the properties. (#10437) * Add Test for Properties and removed getter and setter from WorkspaceDependencyViewExtension.DependencyView property. * Update WorkspaceDependencyViewExtension.cs * this is working to link 2 simple shaders - they are just for testing though. (vertex shaders with lighting) embed testing shaders add technique that uses our 2 shaders add core and node classes for dynamo mesh which will set data on shader based on attached properties. * Fix for crash while drawing Point manipulator (gizmo) when LibG fails to load (#10148) * fix for crash in DM when LibG fails to load * return from recursive loop once we find the first non-null point * cache enabled flag for manipulator * more fixes * add documentation * add documentation * update shader names add handle mesh method to attached properties replacing all the material setting add code for setting bit flags and setting data on struct that actually makes it to shader add helix shader structs and functions that we need to compile our shaders add readme * fix broken tests dude to bad merge conflict fix * remove commented out vertex shader code * fix bug in shader fix comment and some todos * remove tested transofmrable interface * update comments * review comments * review comments2 Co-authored-by: DynamoEngOps <[email protected]> Co-authored-by: Craig Long <[email protected]> Co-authored-by: aparajit-pratap <[email protected]> Co-authored-by: Aaron (Qilong) <[email protected]> Co-authored-by: reddyashish <[email protected]> Co-authored-by: StarLee <[email protected]> Co-authored-by: Sylvester Knudsen <[email protected]> * Headlight bound to Camera LookDirection (#10466) * LibG Binaries Update (#10295) * "LibG/ASM224,7418555f" * "LibG/ASM224.4,918b3d73" * "LibG/ASM225,2b68d3dd" * "LibG/ASM226,2b308956" * Change mechanism to retreive the certificate from assembly (#10301) * DYN-2225 - Marshaling Performance optimization - Heap Cleanup (#10026) * fast path for zero size heap allocation * Cache mechanism for marshalling lookups * Do not allocate heap stack values for class properties for CLR objects * Test removing getter heap interaction for CLR object * Remove unused Heap Object set * make variables non-static * remove GetterFunctionPointer class Co-authored-by: aparajit-pratap <[email protected]> * DYN-2289: Fix crash with NodeToCode (#10305) * search for property by getter if not found * add test * Geometry Color Tests More (#10291) * Add geometry color check for Display_ByGeometryColor_HasColoredMesh Add geometry color check for Display_ByGeometryColor_HasColoredMesh * Test updates * Add Geometry Transparency Test * Update test name * update newly added test (#10313) * DYN-2286: fix for crash upon unresolved node undo (#10315) * fix for crash upon unresolved node undo * override Equals in PortModel * add recorded test * DYN-2328 Add test for geometry labeling (#10311) * DYN-2328 Add test for geometry lablling * DYN-2328 Add test for geometry labeling * Removing extra assignments * updating the test and the test dyn file. * Removing the extra variable that is not being used * First Github Action (#10131) This Github Action will greet Github users who submit a PR or issue first time to our repo * Removal of PR trigger for now (#10323) * Analytics Agreement Workflow Update (#10314) * Initial Commit to Update Analytics Agreement Workflow * update * Add unit test for deserializing analytics setting * Update instrumentation default agreement setting in unit test * Add more comments * Add missing resource string (#10329) * LibG Binaries Update (#10331) * "LibG/ASM224,7418555f" * "LibG/ASM224.4,918b3d73" * "LibG/ASM225,2b68d3dd" * "LibG/ASM226,5c8f1fdd" * Fix the library view display issues introduced by MS WebBrowser (#10316) * Disable the context menu on the library viewer. * Zoom the libarary view to adapt the current DPI scale. * Disable the horizontal scroll bar on the bottom of the library view. * Disable the library view is zoomed by keyboard or mouse wheel. * Zoom the library bar to adapt the current DPI scale. * Hide the extra search text bar close button. * [DYN-2382] LibraryViewExtensionMSWebBrowser does not scale correctly when using display scaling (#10335) * Disable the context menu on the library viewer. * Zoom the libarary view to adapt the current DPI scale. * Disable the horizontal scroll bar on the bottom of the library view. * Disable the library view is zoomed by keyboard or mouse wheel. * Zoom the library bar to adapt the current DPI scale. * Hide the extra search text bar close button. * Unsubscribing the event handler in dispose method * working color change on selection for points. * Skip GA Client Tear Down Process if NOT Necessary (#10340) * Skip Analytics Client Tear down if it is not needed * Add unit test covering analytics tear down * Touch test naming * [Analytics] Update Tracking Conditions (#10345) * Update Tracking Conditions * Add same check to ReportingUsage * Add properties comments * PR comment (#10347) * Code improvements: (#10348) 1. Unsubscribe DpiChanged event handler in the browser Dispose method. 2. Move the overflow-x style setting from script to html to avoid to set it when the script method is called every time. 3. Add necessary comments. * lots of cleanup work to do but this works isolate correctly sets all geo to low alpha, and the selected geo sets back to whatever other state it was in without isolate. * start adding morecolor tests * fix test * add more tests add cleanup to color cache * fix watch3d background color converter fix watch3d background color test fix watch3d image export function * need to move branches - saving work * give up on image comparison tests, will file that as followup, resize function in helix does not work. * break out some util methods need to rerun tests * review comments all tests pass * review comment * add show line numbers when watermarkLabel is collapsed (#10362) * Visual Identifier on Optional Inputs (#10361) * change port text to italic if using default input * Update Ports.xaml * Update README.md (#10387) * Update README.md * Update README.md * Update README.md * Update DynamoVisualProgramming.Core.nuspec * Update DynamoVisualProgramming.Core.nuspec * GA client not launching when terms not agreed (#10407) * GA client not launching when terms not agreed * Comments * Patch 283 (#10421) * Add WinVerityTrust wrapper * Utilzie new WinTrustWrapper method for cert verification * Add negative test * Add Package with faked certificate * Create sub namespace for WinVerityInteropp * Update the WinTrustInterop * Upate method call name * Add specific exceptions to the CertificateVerfication class * formating * fix summary * Cover Test for Configuration Folder (#10444) * Cover Test for Configuration Folder * Update DynamoCoreTests.csproj * Added a couple of asserts for the properties. (#10437) * Add Test for Properties and removed getter and setter from WorkspaceDependencyViewExtension.DependencyView property. * Update WorkspaceDependencyViewExtension.cs * this is working to link 2 simple shaders - they are just for testing though. (vertex shaders with lighting) embed testing shaders add technique that uses our 2 shaders add core and node classes for dynamo mesh which will set data on shader based on attached properties. * Fix for crash while drawing Point manipulator (gizmo) when LibG fails to load (#10148) * fix for crash in DM when LibG fails to load * return from recursive loop once we find the first non-null point * cache enabled flag for manipulator * more fixes * add documentation * add documentation * update shader names add handle mesh method to attached properties replacing all the material setting add code for setting bit flags and setting data on struct that actually makes it to shader add helix shader structs and functions that we need to compile our shaders add readme * fix broken tests dude to bad merge conflict fix * remove commented out vertex shader code * fix bug in shader fix comment and some todos * remove tested transofmrable interface * update comments * fix binding add test * flip normal if back facing tri update shader * make sure compiled shader up to date. Co-authored-by: DynamoEngOps <[email protected]> Co-authored-by: Craig Long <[email protected]> Co-authored-by: aparajit-pratap <[email protected]> Co-authored-by: Aaron (Qilong) <[email protected]> Co-authored-by: reddyashish <[email protected]> Co-authored-by: StarLee <[email protected]> Co-authored-by: Sylvester Knudsen <[email protected]> * special render packages should render with materials colors only (#10481) * special render packages should render with materials add test update shader * fix comment * update comments * Update ProtoGeometry.config (#10483) * Avoid rendering Gizmo multiple times on rotate (#10479) A change of behavior in helix when upgrading from v2015 is that the CameraChanged event gets fired several times, once for each individual property of Camera that changed. In order to avoid rendering the Gizmo several times, which leads to choppy camera rotation, we limit the rendering of the Gizmo to only be done when the position of the camera changed. Use C# 6 to support build machines * add 3d graphics image comparison tests (#10487) * special render packages should render with materials add test update shader * fix comment * update comments * lower intensity of directional light add new image comp tests add new color dyn files that are easy to modify on the fly add first set of reference images * add new tests add ref images all pass local * comment * refactor tests correct comment * unused usings * target shader model 4 to avoid crash when user does not have GPU. (#10497) * special render packages should render with materials add test update shader * fix comment * update comments * lower intensity of directional light add new image comp tests add new color dyn files that are easy to modify on the fly add first set of reference images * add new tests add ref images all pass local * comment * drop to shader model 4 to avoid crash on WARP devices * fix shader interpolation and make image comparison tests more tolerant. (#10506) * add debug save image mode add percent diff assertion add log of percent and each diff * enable save fix build errors fix path errors * update shaders to fix them on WARP/real hardware remove dynamo ps input add color distance and percent dist check to make tests more tolerant of changes * rename function, rename params * Handle memory outage on render (cherry pick) (#10569) This brings the fix from master to the helix-upgrade branch. The only difference is that the test now mocks the AggregateRenderPackage function directly, because the function mocked in master no longer exists. The visibility was changed to internal virtual in order to be able to mock it, also using InternalsVisibleTo. * Add Image Comparison Test for Surface. (#10579) * Added Surface image comparison test and corrected indentation * Update to include .sat file * Format code lines * Remove Dup entry * Comments * Comments * Comments * Revert test file name change Co-authored-by: Michael Dewberry <[email protected]> Co-authored-by: aparajit-pratap <[email protected]> Co-authored-by: michael kirschner <[email protected]> Co-authored-by: reddyashish <[email protected]> Co-authored-by: manuelsaldivar525 <[email protected]> Co-authored-by: ZiyunShang <[email protected]> Co-authored-by: DynamoEngOps <[email protected]> Co-authored-by: Craig Long <[email protected]> Co-authored-by: StarLee <[email protected]> Co-authored-by: Sylvester Knudsen <[email protected]> Co-authored-by: Martin Misol Monzo <[email protected]> Co-authored-by: Ashish Aggarwal <[email protected]>
Purpose
The purpose of the PR is too improve the performance of Dynamo in the Marshaling process of .NET objects created my CLR Functions (Such as zero-touch or Node Model nodes). This optimization specifically changes two aspects:
Removes unused interactions with the DesignScript VM's Heap. Currently, when .Net objects are created by CLR type functions invocations in Dynamo, the Heap is allocating an array of un-initialized stack values for each public property of the CLR object. For example, a ProtoGeometry
Point
would create an array of 6StackValue
objects because a Point has 6 public properties (X, Y, Z, BoundingBox, ContextCoordinateSystem, and scaleFactor). Later, if you also call a Getter type function on that object (Point.BoundingBox for example) and access a reference type property then it'sStackValue
Pointer is updated on the Heap. For getter's accessing value type properties, (Point.X for example) no changes are made to the array ofStackValues
on the Heap. All that being said, at Runtime, Dynamo does not read the any of these values in the Heap. No stack values need to be allocated or updated as access to CLR objects and their public properties is handled via a different mechanism. The only pertinent reference in the Heap is it index so that the VM can properly GC expired CLR objects. This PR removes the the unnecessary array allocation and value type updates for Getters to the HEAP for CLR objects.This PR also adds a caching mechanism for repeated marshaling of the same type. The repeated recursive lookup in the ClassTable can be short circuited when the same type is repeatedly being marshaled.
TODO:
Declarations
Check these if you believe they are true
*.resx
filesReviewers
@mjkkirschner @aparajit-pratap
FYIs
@QilongTang