Problem summary
Within the Nuke NDK, Nuke appears to needlessly re-run deepEngine() calls on mouse-over.
Viewer_Window::update_color_display function, which is called when the color picker needs to show the pixel color under the mouse cursor in the viewer, has a call to deepEngine which gets called under a complicated set of conditions. In practice, this leads to many extra calls to deepEngine when the user moves the mouse over the screen.
It should be investigated what purpose this call has, what the equivalent call for Iop path does and whether this deepEngine call can be omitted.
Customer reported version
NukeX 10.5v7, 11.2v4
Customer reported platform
CentOS Linux release 7.4.1708
Reproduced by support
This bug has been reproduced in:
( reproduced via Nuke team )
Earliest version tested
- This issue appears to be in all versions of the product
Expected behaviour
The calls should not be needlessly called on mouse-over
Actual behaviour
Engine() calls are sent needlessly on mouse-over
Additional notes for testing
The appropriate version of the customer's plugin will need to be copied to Nuke's binary folder before testing, as follows:
Windows: copy tie2d.dll to <Nuke >\bin (to test against Nuke 12.0 or 12.1 copy the appropriate DLL and rename it to tie2d.dll)
Linux: copy tie2d.so to <Nuke>/bin
MacOS: copy tie2d.dylib to <Nuke>.app/Contents/MacOS/plugins
To test, load the supplied tie2.nk script, connect the viewer to each of the following nodes in turn, mousing over the viewer window and observing the terminal output for each one:
1. tie2d1
2. Multiply1
3. DeepSample1
4. DeepSample2
The behaviour reported by the customer is present if you see the following output:
tie2d1 getDeepRequests channels rgba,deep
tie2d1 doDeepEngine 2
tie2d1 getDeepRequests channels rgba,deep
tie2d1 getDeepRequests channels rgba,deep
Previously this was visible for numbers 2 and 4 in the list. After the bug fix this text should only appear for number 4.
Numbers 1 and 3 are there to make sure we haven't broken anything (they worked before the fix and should still work afterwards).