The bug revolves around the ‘Execution Stack’ for Control Rigs. Anytime a public function from another Control Rig is used inside a local function, it no longer shows on the ‘Execution Stack’. Clicking on the local function from the Rig Graph will show the contents of that function in the ‘Execution Stack’ but once you open that function up, it no longer shows. This is a big issue for our ability to debug our control rig’s efficiently as we’ve been moving projects from 5.7 over to 5.8. The bug doesn’t exist in 5.7. I’ve attached a screenshot below laying out the issue.
[Attachment Removed]
Steps to Reproduce
All you need is two Control Rigs, ‘CR_TEST_01’ & ‘CR_TEST_02’. In CR_TEST_02, make a public function with a simple print inside it. Then add that function into CR_TEST_01. If you drag off from forward solve and add the CR_TEST_02 function you made, you will see the print show up on the execution stack when clicked. However, if you put that CR_TEST_02 function inside of a new function within CR_TEST_01, the CR_TEST_02 function will no longer direct to any execution stack instructions if you have clicked on it from inside the new CR_TEST_01 function you made. It will however show the execution stack instructions if you click on the new CR_TEST_01 function from the Rig Graph.
[Attachment Removed]
Hi, thanks for reporting this. It turns out this is fallout from the new Callables system implemented for 5.8 (though it is off by default in that release). That changed how the rigvm bytecode is generated so function calls are no longer always inlined as was the case previously. As part of that, we changed how the callstack data, used by the execution stack panel, is generated, so that it no longer includes the local function name. And that in turn breaks selection within the execution stack panel.
If you’re able to make source changes, I have a potential fix shelved in Perforce at CL 57764587. And I’ve also attached a patch. I haven’t had this reviewed by the dev team yet though, so I’ll follow up once that’s happened.
[Attachment Removed]
Hi Euan,
I’ve tested the patch and it’s fixed a lot of the issues however I noticed that the ‘Ctrl + G, Go To Instruction’ feature is no longer working. The keyboard shortcut does open the window but if I type an instruction number and click go, it won’t jump to that instruction.
Best,
[Attachment Removed]
Hi, that issue turns out to be a different bug from the one with the bytecode callstack. It looks like that dialog may have been broken for a while, but we just happen to have fixed it in Main in the last few days. The CL is 58082105, and I’ll attach a patch in case that’s easier. It looks like this should integrate straight into 5.8
[Attachment Removed]