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