ACES set up for Blender using OCIO

Hey, I was curious about the problem and tried to reproduce it on my side.

tldr

I can reproduce the probleme exclusively on 8bit png textures, 16bit png are not affected.
The problem appear on CPU and GPU rendering with cycles.
This looks to be a Blender issue if we trust my comparison against oiiotool which is not affected.

test results

software used:

  • ACES config : cg-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio
  • Blender: Blender-4.1.1-windows-x64
    • render-engine: cycles
    • cycles-devices: CUDA

blender with aces config

Image statistics:
  Textures:
    Total memory: 132.00M (138,412,032)
        checker.float32.exr              64.00M (67,108,864)
        checker.uint8.png                32.00M (33,554,432)
        checker.uint16.png               32.00M (33,554,432)
        checker-gray.uint8.png           4.00M (4,194,304)

blender with default config

Image statistics:
  Textures:
    Total memory: 116.00M (121,634,816)
        checker.float32.exr              64.00M (67,108,864)
        checker.uint16.png               32.00M (33,554,432)
        checker.uint8.png                16.00M (16,777,216)
        checker-gray.uint8.png           4.00M (4,194,304)

oiiotool aces config

Reading G:\temp\bl-ocio-mem-issue\work\\textures\checker.uint8.png
Performing 'colorconvert' with args:  "--colorconvert", "sRGB - Texture", "scene_linear"
    colorconvert took 0.02s  (total time 0.08s, mem 127.0 MB)

Threads: 8
oiiotool runtime statistics:
  Total time: 0.09s
      -i           :  0.00
      colorconvert :  0.02
      unaccounted  :  0.06
  Peak memory:    127.0 MB
  Current memory: 78.9 MB

OpenImageIO ImageCache statistics (shared) ver 2.3.10
  Options:  max_memory_MB=4096.0 max_open_files=100 autotile=0
            autoscanline=0 automip=0 forcefloat=1 accept_untiled=1
            accept_unmipped=1 deduplicate=1 unassociatedalpha=0
            failure_retries=0
  Images : 1 unique
    ImageInputs : 1 created, 0 current, 1 peak
    Total pixel data size of all images referenced : 12.0 MB
    Total actual file size of all images referenced : 30 KB
    Pixel data read : 0 B
    Peak cache memory : 0 B
  Image file statistics:
        opens   tiles    MB read   --redundant--   I/O time  res              File
      1    1        0        0.0                       0.0s  2048x2048x3.u8   G:\temp\bl-ocio-mem-issue\work\\textures\checker.uint8.png  UNTILED

oiiotool blender default config

Reading G:\temp\bl-ocio-mem-issue\work\\textures\checker.uint8.png
Performing 'colorconvert' with args:  "--colorconvert", "sRGB", "scene_linear"
    colorconvert took 0.03s  (total time 0.10s, mem 127.6 MB)

Threads: 8
oiiotool runtime statistics:
  Total time: 0.10s
      -i           :  0.00
      colorconvert :  0.03
      unaccounted  :  0.07
  Peak memory:    127.6 MB
  Current memory: 79.5 MB

OpenImageIO ImageCache statistics (shared) ver 2.3.10
  Options:  max_memory_MB=4096.0 max_open_files=100 autotile=0
            autoscanline=0 automip=0 forcefloat=1 accept_untiled=1
            accept_unmipped=1 deduplicate=1 unassociatedalpha=0
            failure_retries=0
  Images : 1 unique
    ImageInputs : 1 created, 0 current, 1 peak
    Total pixel data size of all images referenced : 12.0 MB
    Total actual file size of all images referenced : 30 KB
    Pixel data read : 0 B
    Peak cache memory : 0 B
  Image file statistics:
        opens   tiles    MB read   --redundant--   I/O time  res              File
      1    1        0        0.0                       0.0s  2048x2048x3.u8   G:\temp\bl-ocio-mem-issue\work\\textures\checker.uint8.png  UNTILED

test files

I upload a minimal test scene for reproduction here (for Windows system):

Feel free to use it for reporting a bug to Blender developers (if its one).


Probably doesn’t help much as I don’t provide explanations neither solutions, but I thought it could be interesting to share.
Cheers,
Liam

2 Likes