CTL Bug related to bools?

Hey all …

I’m trying to track down a report of bug related to the use of the bool data type in CTL.

It’s been reported that using CTL files with an if statement based on the value of a bool variable can cause the if statement to be evaluated inconsistently.

Unfortunately, I can’t reproduce the problem on my system.

I’ve tried using the attached CTL to see if the if statement is randomly evaluated incorrectly as reported in the bug, but the results look good to me.

Has anyone else see this issue?


boolTest.ctl (389 Bytes)

Here’s what I get…

$ ctlrender -verbose -ctl ~/Downloads/boolTest.ctl ~/Downloads/CMS.exr /tmp/blah.exr 
global ctl parameters:

source file: /home/zlewis/Downloads/CMS.exr
  destination file: /tmp/blah.exr
destination format: exr
       input scale: default
      output scale: default

   ctl script file: /home/zlewis/Downloads/boolTest.ctl
     function name: main
   input arguments:
               rIn: float (varying)
               gIn: float (varying)
               bIn: float (varying)
               aIn: float (varying)
                 X: bool (defaulted)
  output arguments:
              rOut: float (varying)
              gOut: float (varying)
              bOut: float (varying)
              aOut: float (varying)

@zachlewis. Thanks Zach. I’m getting the same thing. The bug report indicates an issue with the full / legal switch in the rec709 ODT. They state the if statement is executed differently for each pixel group. I think this test should catch that, but I’m not seeing the issue.

This is the issue as we have reported is - it’s a Windows based application for ACES.

The last working version of ACES was 1.0.2.
All versions since show the problem we highlighted when 1.0.3 was released.
The details are outlined in the link provided.


@steve, I am using a Mac, not Windows, but I cannot replicate the issue you describe. I can render an image using ctlrender of a linear ramp passed through the exact chain of LogC IDT > RRT > Rec.709 ODT that you show, with the legalRange parameter set to either 1 or 0, and I get the expected result, without any of the random variation shown on your plot.

And that’s why I stated it was a Windows environment…
We have had a number of Windows related ACES issues we had to overcome, but as this looks to be an issues with the CTL Rendered, there is nothing we can do to fix it.

May I suggest testing in a Windows environment?