Nuke + RV OCIO confusion

Hi there,
I thought I was getting on top of working with Aces, but I’ve hit a bit of a brick wall in terms of understanding.

The source image is aces2065-1, so my readnode is set to aces2065-1.
ocio roles are :
roles:
color_picking: Output - sRGB
color_timing: ACES - ACEScc
compositing_linear: ACES - ACEScg
compositing_log: Input - Sony - Curve - S-Log3
data: Utility - Raw
default: ACES - ACEScg
matte_paint: Utility - sRGB - Texture
reference: Utility - Raw
rendering: ACES - ACEScg
scene_linear: ACES - ACEScg
texture_paint: ACES - ACEScc

So I’m assuming, that nuke is working ACEScg. This is confirmed by checking the ocio confi8g in nuke and under “working space” it’s set to ACES - ACEScg.

In Nuke, I have a shot profile that I’m using to apply a working space -> log, and then a cdl, and then a lut.
This looks like this :

- !<ColorSpace>
    name: Shot
    family: Blah
    equalitygroup: ""
    bitdepth: 32f
    description: |
      Blah Default Shot Display LUT for sRGB
    isdata: false
    allocation: uniform
    allocationvars: [0, 1]
    from_reference: !<GroupTransform>
      children:
        - !<ColorSpaceTransform> {src: ACES - ACEScg, dst: Input - Sony - Curve - S-Log3}
        - !<FileTransform> {src: "${CDL}", interpolation: linear, cccid: 0}
        - !<FileTransform> {src: "${LUT}", interpolation: linear}

Note that this is “from_reference”.

In RV, the only way I could get this to work is apply the profile as a OCIOFile node and in this case its much the same, except it’s “to_reference” :

  • !
    name: Shot (RV)
    family: Blah
    equalitygroup: “”
    bitdepth: 32f
    description: |
    Blah
    isdata: false
    allocation: uniform
    allocationvars: [0, 1]
    to_reference: !
    children:
    - ! {src: ACES - ACEScg, dst: Input - Sony - Curve - S-Log3}
    - ! {src: “${CDL}”, interpolation: linear, cccid: 0}
    - ! {src: “${LUT}”, interpolation: linear}

To view/compare the results of these, I’m setting the viewerprocess in nuke to Raw and the display in RV to raw. In Nuke I’m adding a OCIODisplay node after the readnode and setting the input colorspace to ACEScg (as that’s the working space we are in in nuke), and the view transform to “Shot”. This should replicate how our viewerprocess would display when set to the “shot” profile.

What’s odd is that in Nuke, I’m not getting what I expected, the image looks like it’s not being processed in AcesCG space. I CAN get the correct result if I set the input colorspace to aces2065-1… but as we’re already processing the input image into acesCG this doesn’t make any sense to me, and although it works, I’m not happy that it seems like something is going wrong.

RV on the otherhand appears to be displaying the ocio profile correctly.

So what am I doing wrong?
One other question, why do I need to use “to_reference” for the RV profile and not “from_reference” ? Is there any way for me to use the same profile in both nuke and rv ?

Thanks in advance for your help!
p.