Hide Forgot
Blender does not appear to be compatible with OpenColorIO 2.0... /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc: In member function 'virtual const char* OCIOImpl::configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr__**, const char*, const char*)': /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:397:43: error: 'using element_type = const class OpenColorIO_v2_0::Config' {aka 'const class OpenColorIO_v2_0::Config'} has no member named 'getDisplayColorSpaceName'; did you mean 'getDisplayViewColorSpaceName'? 397 | return (*(ConstConfigRcPtr *)config)->getDisplayColorSpaceName(display, view); | ^~~~~~~~~~~~~~~~~~~~~~~~ | getDisplayViewColorSpaceName /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc: In member function 'virtual void OCIOImpl::configGetDefaultLumaCoefs(OCIO_ConstConfigRcPtr__**, float*)': /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:409:56: error: cannot convert 'float*' to 'double*' 409 | (*(ConstConfigRcPtr *)config)->getDefaultLumaCoefs(rgb); | ^~~ | | | float* In file included from /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:29: /usr/include/OpenColorIO/OpenColorIO.h:874:39: note: initializing argument 1 of 'void OpenColorIO_v2_0::Config::getDefaultLumaCoefs(double*) const' 874 | void getDefaultLumaCoefs(double * rgb) const; | ~~~~~~~~~^~~ /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc: In member function 'virtual void OCIOImpl::configGetXYZtoRGB(OCIO_ConstConfigRcPtr__**, float (*)[3])': /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:436:25: error: 'using element_type = const class OpenColorIO_v2_0::Processor' {aka 'const class OpenColorIO_v2_0::Processor'} has no member named 'applyRGB' 436 | to_rgb_processor->applyRGB(xyz_to_rgb[0]); | ^~~~~~~~ /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:437:25: error: 'using element_type = const class OpenColorIO_v2_0::Processor' {aka 'const class OpenColorIO_v2_0::Processor'} has no member named 'applyRGB' 437 | to_rgb_processor->applyRGB(xyz_to_rgb[1]); | ^~~~~~~~ /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:438:25: error: 'using element_type = const class OpenColorIO_v2_0::Processor' {aka 'const class OpenColorIO_v2_0::Processor'} has no member named 'applyRGB' 438 | to_rgb_processor->applyRGB(xyz_to_rgb[2]); | ^~~~~~~~ /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc: In member function 'virtual void OCIOImpl::colorSpaceIsBuiltin(OCIO_ConstConfigRcPtr__**, OCIO_ConstColorSpaceRcPtr__**, bool&, bool&)': /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:570:16: error: 'using element_type = const class OpenColorIO_v2_0::Processor' {aka 'const class OpenColorIO_v2_0::Processor'} has no member named 'applyRGB' 570 | processor->applyRGB(cR); | ^~~~~~~~ /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:571:16: error: 'using element_type = const class OpenColorIO_v2_0::Processor' {aka 'const class OpenColorIO_v2_0::Processor'} has no member named 'applyRGB' 571 | processor->applyRGB(cG); | ^~~~~~~~ /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:572:16: error: 'using element_type = const class OpenColorIO_v2_0::Processor' {aka 'const class OpenColorIO_v2_0::Processor'} has no member named 'applyRGB' 572 | processor->applyRGB(cB); | ^~~~~~~~ /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:573:16: error: 'using element_type = const class OpenColorIO_v2_0::Processor' {aka 'const class OpenColorIO_v2_0::Processor'} has no member named 'applyRGB' 573 | processor->applyRGB(cW); | ^~~~~~~~ /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc: In member function 'virtual void OCIOImpl::processorApply(OCIO_ConstProcessorRcPtr__**, OCIO_PackedImageDesc__**)': /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:655:42: error: 'using element_type = const class OpenColorIO_v2_0::Processor' {aka 'const class OpenColorIO_v2_0::Processor'} has no member named 'apply' 655 | (*(ConstProcessorRcPtr *)processor)->apply(*(PackedImageDesc *)img); | ^~~~~ /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc: In member function 'virtual void OCIOImpl::processorApply_predivide(OCIO_ConstProcessorRcPtr__**, OCIO_PackedImageDesc__**)': /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:670:35: error: invalid conversion from 'void*' to 'float*' [-fpermissive] 670 | float *pixels = img->getData(); | ~~~~~~~~~~~~^~ | | | void* /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:684:44: error: 'using element_type = const class OpenColorIO_v2_0::Processor' {aka 'const class OpenColorIO_v2_0::Processor'} has no member named 'apply' 684 | (*(ConstProcessorRcPtr *)processor)->apply(*img); | ^~~~~ /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc: In member function 'virtual void OCIOImpl::processorApplyRGB(OCIO_ConstProcessorRcPtr__**, float*)': /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:694:40: error: 'using element_type = const class OpenColorIO_v2_0::Processor' {aka 'const class OpenColorIO_v2_0::Processor'} has no member named 'applyRGB' 694 | (*(ConstProcessorRcPtr *)processor)->applyRGB(pixel); | ^~~~~~~~ /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc: In member function 'virtual void OCIOImpl::processorApplyRGBA(OCIO_ConstProcessorRcPtr__**, float*)': /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:699:40: error: 'using element_type = const class OpenColorIO_v2_0::Processor' {aka 'const class OpenColorIO_v2_0::Processor'} has no member named 'applyRGBA' 699 | (*(ConstProcessorRcPtr *)processor)->applyRGBA(pixel); | ^~~~~~~~~ /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc: In member function 'virtual void OCIOImpl::processorApplyRGBA_predivide(OCIO_ConstProcessorRcPtr__**, float*)': /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:705:42: error: 'using element_type = const class OpenColorIO_v2_0::Processor' {aka 'const class OpenColorIO_v2_0::Processor'} has no member named 'applyRGBA' 705 | (*(ConstProcessorRcPtr *)processor)->applyRGBA(pixel); | ^~~~~~~~~ /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:717:42: error: 'using element_type = const class OpenColorIO_v2_0::Processor' {aka 'const class OpenColorIO_v2_0::Processor'} has no member named 'applyRGBA' 717 | (*(ConstProcessorRcPtr *)processor)->applyRGBA(pixel); | ^~~~~~~~~ /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc: In member function 'virtual OCIO_DisplayTransformRcPtr__** OCIOImpl::createDisplayTransform()': /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:747:3: error: 'DisplayTransformRcPtr' was not declared in this scope; did you mean 'OCIO_DisplayTransformRcPtr'? 747 | DisplayTransformRcPtr *dt = OBJECT_GUARDED_NEW(DisplayTransformRcPtr); | ^~~~~~~~~~~~~~~~~~~~~ | OCIO_DisplayTransformRcPtr /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:747:26: error: 'dt' was not declared in this scope 747 | DisplayTransformRcPtr *dt = OBJECT_GUARDED_NEW(DisplayTransformRcPtr); | ^~ In file included from /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:36: /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:747:50: error: expected type-specifier before 'DisplayTransformRcPtr' 747 | DisplayTransformRcPtr *dt = OBJECT_GUARDED_NEW(DisplayTransformRcPtr); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/blender-2.91.2/intern/guardedalloc/MEM_guardedalloc.h:278:89: note: in definition of macro 'OBJECT_GUARDED_NEW' 278 | # define OBJECT_GUARDED_NEW(type, args...) new (MEM_mallocN(sizeof(type), __func__)) type(args) | ^~~~ /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:749:9: error: 'DisplayTransform' has not been declared 749 | *dt = DisplayTransform::Create(); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc: In member function 'virtual void OCIOImpl::displayTransformSetInputColorSpaceName(OCIO_DisplayTransformRcPtr__**, const char*)': /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:757:6: error: 'DisplayTransformRcPtr' was not declared in this scope; did you mean 'OCIO_DisplayTransformRcPtr'? 757 | (*(DisplayTransformRcPtr *)dt)->setInputColorSpaceName(name); | ^~~~~~~~~~~~~~~~~~~~~ | OCIO_DisplayTransformRcPtr /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:757:29: error: expected primary-expression before ')' token 757 | (*(DisplayTransformRcPtr *)dt)->setInputColorSpaceName(name); | ^ /builddir/build/BUILD/blender-2.91.2/intern/opencolorio/ocio_impl.cc:757:30: error: expected ')' before 'dt' 757 | (*(DisplayTransformRcPtr *)dt)->setInputColorSpaceName(name); Full log: https://download.copr.fedorainfracloud.org/results/hobbes1069/OIIO/fedora-rawhide-x86_64/02014083-blender/builder-live.log.gz
Bug filed upstream on https://developer.blender.org/T85940 Upstream set OpenColorIO 2.0.0 on their master branch (https://developer.blender.org/diffusion/B/browse/master/build_files/build_environment/cmake/versions.cmake) but not 2.91.2 (https://developer.blender.org/diffusion/B/browse/blender-v2.92-release/build_files/build_environment/cmake/versions.cmake).
From the ticket on comment #2, upstream refused to backport the compatibility to 2.91.2 and suggest to build on 2.93.0 which will be available on May 2021 according to the schedule (https://developer.blender.org/project/view/125). The alternative will be a patch on future 2.92 which will be out in a few week or wait for 2.93.
Another suggestion is to set a package OCIO 1.1.1 as a stopgap until Blender reaches 2.93.
(In reply to Luya Tshimbalanga from comment #2) > From the ticket on comment #2, upstream refused to backport the > compatibility to 2.91.2 and suggest to build on 2.93.0 which will be > available on May 2021 according to the schedule This looks possible for f34+ if dependencies (LuxRender, others) are compatible. Of build with openvdb support dropped until moving to 2.93 ? This could be done with a copr.
I don't mind waiting a little while, but May seems a bit long. If you want to do some testing I can add you to my COPR.
Feel free to find an effective method. Another option is something like OpenColorIO1 for dependency as a stopgap until Blender 2.93 lands.
This is where things get confusing for me. Would we also need a OpenImageIO compatibility package linked with OCIO 1.x instead of 2.x? The only consumers of OCIO right now are: Blender - not compatible Krita - builds look to be failing for Boost related reasons so I haven't tested OpenImageIO - Builds fine
(In reply to Richard Shaw from comment #7) > This is where things get confusing for me. Would we also need a OpenImageIO > compatibility package linked with OCIO 1.x instead of 2.x? > > The only consumers of OCIO right now are: > Blender - not compatible > Krita - builds look to be failing for Boost related reasons so I haven't > tested > OpenImageIO - Builds fine According to the Blender version.cmake (https://developer.blender.org/diffusion/B/browse/blender-v2.92-release/build_files/build_environment/cmake/versions.cmake), it seems the case. I had similar case with embree 2.x in the past. Perhaps using upstream patch may help : https://developer.blender.org/diffusion/B/browse/master/build_files/build_environment/cmake/
Blender 2.93.0 is released. I already pushed the commit on all Fedora release. Feel free to rebuild Blender with OCIO 2.x.
Thanks for following up. I'm still working on Krita, and a new dependency usd.
Do you need access to usd commit? Maybe so options need to get disabled.
No, I'm a PP, I just kinda gave up. The API has changed significantly in the 2.0 release and porting the projects myself is not practical. I do need to file some bugs upstream so they hopefully at least know about it and will adopt it at some point in the near future.
(In reply to Richard Shaw from comment #12) > No, I'm a PP, I just kinda gave up. The API has changed significantly in the > 2.0 release and porting the projects myself is not practical. I do need to > file some bugs upstream so they hopefully at least know about it and will > adopt it at some point in the near future. Since Krita is the only dependent package for OCIO 1.x, it would be nice to push 2.x in the repository while making OCIO1.x as a stopgap for time being. The new version of Blender will refuse to support 1.x.
Bah, I may have to do that. Currently fighting a similar problem with OpenEXR 2.x vs 3.x.
This bug appears to have been reported against 'rawhide' during the Fedora 35 development cycle. Changing version to 35.
So I looked into this little thicket a bit as I was looking at failed image builds, and blender being FTBFS prevents the design suite image building. It looks to me like to make Blender build with current OpenEXR, we need OpenColorIO 2.x plus this PR: https://github.com/AcademySoftwareFoundation/OpenColorIO/pull/1432 to deal with OpenEXR no longer having the "half" library that OCIO needs (that PR makes it use a half library from IMath instead, which we do seem to have packaged). https://bugs.kde.org/show_bug.cgi?id=435474 seems to be the upstream bug for Krita, who don't seem inclined to get around to porting it any time soon.
so basically I guess we either need to bump the main OpenColorIO lib for Blender and add a 1.x compat build for Krita, or possibly we could drop *OpenEXR* back down to 2.x until Krita is ready?
Hah, I need to see if I actually built it, but I've already gotten a opencolorio1 compat repo. Until very recently I was mostly fighting the OpenEXR/Imath disaster but it looks like the two are now converging.
Ok, so usd is tied up in the OpenEXR/Imath update so if it can't be made to work with OCIO 2.0 then I'm not sure the whole stack can be upgraded... Bah.
Well crap. I was hoping to push off the OpenEXR/Imath 3.1.x update until at least the dust settles but it looks like I need to update Imath at least... CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find Imath: Found unsuitable version "3.0.2", but required is at least "3.0.5" (found /usr/lib64/libImath-3_0.so)
FYI, I forced it to 3.0.2 and it built... Also, here's my working COPR if anyone wants to request access: https://copr.fedorainfracloud.org/coprs/hobbes1069/OIIO/builds/
FEDORA-2021-aef49a8d94 has been pushed to the Fedora 36 stable repository. If problem still persists, please make note of it in this bug report.