-
Notifications
You must be signed in to change notification settings - Fork 53
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
Fix for loss of GLTF override data due to objects eviction from the rendered scene #2063
base: develop
Are you sure you want to change the base?
Conversation
…endered scene Commit 64c541f introduced a bug causing the indue removal of GLTF override data whenever an object is 'killed' when not rendered any more (e.g. an object in a connected neighbour region finding itself out of draw distance when the user moves or cams around). Since this data is not resent by the sim server until the next reconnection of the said sim, the object may re-rez later with missing overrides. This commit simply comments out the culprit line.
Just a note that, after the code is fixed and when you are ready to run the fixed viewer, you need to clear the objects cache to see the fix working in already visited regions (else you pick up corrupted/missing cache object data); maybe an object cache version increment would be a good thing to do, so that users running the future fixed viewer will automatically have their old corrupted cache wiped out... |
Thank you for the contribution! |
// session (e.g. for neighbour region objects, depending on draw | ||
// distance, while moving or caming around) and its override may | ||
// not be re-sent by the simulator, causing a loss in the override | ||
// data ! HB |
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 need to test this more to fully understand these cases, but the object cache probably needs a larger redesign to properly handle the neighbor region object cases. the main correctness criteria after cache eviction should be that if the overrides get evicted from the cache then the object itself will also be evicted from the cache, and when the viewer sends the cache miss message to the simulator the full object update and overrides will be re-sent.
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 fix, which has been in place in my viewer for weeks, resulted from the direct observation and reliable reproduction of the problem by me. Since the bug I observed happened just after the inclusion of that line in my code base, I could easily identify it as the culprit (the benefit of weekly releases is that such bugs are quickly identified and easy to trace back to a culprit code change).
However, I did not try and diagnose what happened at the cache level, but could also see issues with this line active, after relogs and missing overrides.
This pull request is stale because it has been open 30 days with no activity. Remove stale label or comment or it will be closed in 7 days |
Commit 64c541f introduced a bug causing the indue removal of GLTF override data whenever an object is 'killed' when not rendered any more (e.g. an object in a connected neighbour region finding itself out of draw distance when the user moves or cams around).
Since this data is not resent by the sim server until the next reconnection of the said sim, the object may re-rez later with missing overrides.
This commit simply comments out the culprit line.