ID 245237 - Material node produces scene graph changes when marked for edit

Follow

Problem summary
Material nodes contain a hidden group parameter named '__unused'. This group is used to store locally-set shader parameter values that do not apply to the current shader. In some situations, shader parameters can be moved to this group even if the parameters are valid for the current shader. Editing the Material node (and therefore doing the equivalent of checkDynamicParameters()) will fix the problem and produce the correct scene graph. Simply marking a node as edited should probably not affect the produced scene graph.

Customer reported version
Katana.3.1v5

Customer reported platform
Centos 7

Steps to reproduce
A reproduction project is attached, but at time of writing it is not understood how the project got into this state.

1) Open Katana with the Renderman renderer.

2) Open the attached Katana project file.

3) Set the view flag on the "GafferThree_override_broken".

4) In the SceneGraph tab, select "/root/world/lgt/gaffer/rig_upperDecks_uplights/lgt_upperDecks_uplights3".

5) In the Attributes tab, observe the attribute "material.prmanLightShader.basic.exposure". Note that the Exposure value is at '-1'.

6) In the Parameters tab, expand the "rig_upperDecks_uplights" rig and observe that the exposure attribute has changed to '-3'.

Expected behaviour
The Shaders parameters are applied to the Shader 

Actual behaviour
The Material needs to be updated for the parameters to be applied to to the shader.

Workaround
Setting the Editing flag or calling checkDynamicParameters() on the Material node will fix the problem.

Reproduced by support
This bug has been reproduced in:

Katana5.0v3 - Windows 10
Katana4.5v3 - Windows 10
Katana4.0v8 - Windows 10
Katana3.2v2 - Windows 7, CentOS 7
Katana3.2v1 - Windows 7
Katana3.1v7 - Windows 7
Katana3.1v1 - Windows 7
Katana3.0v1 - Windows 7
Katana2.5v1 - Windows 7

Earliest version tested
Katana2.5v1 - This issue appears to be in all versions of the product
 

    We're sorry to hear that

    Please tell us why