https://bugzilla.redhat.com/show_bug.cgi?id=1932124
Bug ID: 1932124 Summary: Blender not compatible with OpenColorIO 2.0 Product: Fedora Version: rawhide Status: NEW Component: blender Assignee: luya_tfz@thefinalzone.net Reporter: hobbes1069@gmail.com QA Contact: extras-qa@fedoraproject.org CC: design-devel@lists.fedoraproject.org, kwizart@gmail.com, luya_tfz@thefinalzone.net, negativo17@gmail.com, promac@gmail.com Target Milestone: --- Classification: Fedora
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-ra...
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
Luya Tshimbalanga luya_tfz@thefinalzone.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Doc Type|--- |If docs needed, set a value
--- Comment #1 from Luya Tshimbalanga luya_tfz@thefinalzone.net --- 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_en...) but not 2.91.2 (https://developer.blender.org/diffusion/B/browse/blender-v2.92-release/build...).
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
Richard Shaw hobbes1069@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1901430
Referenced Bugs:
https://bugzilla.redhat.com/show_bug.cgi?id=1901430 [Bug 1901430] OpenColorIO-2.0.0 is available
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
--- Comment #2 from Luya Tshimbalanga luya_tfz@thefinalzone.net --- 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.
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
--- Comment #3 from Luya Tshimbalanga luya_tfz@thefinalzone.net --- Another suggestion is to set a package OCIO 1.1.1 as a stopgap until Blender reaches 2.93.
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
Luya Tshimbalanga luya_tfz@thefinalzone.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |Upstream, VerifiedUpstream
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
--- Comment #4 from Nicolas Chauvet (kwizart) kwizart@gmail.com --- (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.
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
--- Comment #5 from Richard Shaw hobbes1069@gmail.com --- 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.
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
--- Comment #6 from Luya Tshimbalanga luya_tfz@thefinalzone.net --- Feel free to find an effective method. Another option is something like OpenColorIO1 for dependency as a stopgap until Blender 2.93 lands.
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
--- Comment #7 from Richard Shaw hobbes1069@gmail.com --- 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
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
--- Comment #8 from Luya Tshimbalanga luya_tfz@thefinalzone.net --- (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...), 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_en...
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
Luya Tshimbalanga luya_tfz@thefinalzone.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags| |needinfo?(hobbes1069@gmail. | |com)
--- Comment #9 from Luya Tshimbalanga luya_tfz@thefinalzone.net --- Blender 2.93.0 is released. I already pushed the commit on all Fedora release. Feel free to rebuild Blender with OCIO 2.x.
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
Richard Shaw hobbes1069@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags|needinfo?(hobbes1069@gmail. | |com) |
--- Comment #10 from Richard Shaw hobbes1069@gmail.com --- Thanks for following up. I'm still working on Krita, and a new dependency usd.
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
Luya Tshimbalanga luya_tfz@thefinalzone.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1972119
Referenced Bugs:
https://bugzilla.redhat.com/show_bug.cgi?id=1972119 [Bug 1972119] F35FailsToInstall: blender
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
Luya Tshimbalanga luya_tfz@thefinalzone.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags| |needinfo?(hobbes1069@gmail. | |com)
--- Comment #11 from Luya Tshimbalanga luya_tfz@thefinalzone.net --- Do you need access to usd commit? Maybe so options need to get disabled.
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
Richard Shaw hobbes1069@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags|needinfo?(hobbes1069@gmail. | |com) |
--- Comment #12 from Richard Shaw hobbes1069@gmail.com --- 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.
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
--- Comment #13 from Luya Tshimbalanga luya_tfz@thefinalzone.net --- (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.
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
--- Comment #14 from Richard Shaw hobbes1069@gmail.com --- Bah, I may have to do that. Currently fighting a similar problem with OpenEXR 2.x vs 3.x.
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
Adam Williamson awilliam@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |awilliam@redhat.com
--- Comment #16 from Adam Williamson awilliam@redhat.com --- 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.
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
--- Comment #17 from Adam Williamson awilliam@redhat.com --- 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?
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
--- Comment #18 from Richard Shaw hobbes1069@gmail.com --- 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.
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
--- Comment #19 from Richard Shaw hobbes1069@gmail.com --- 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.
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
--- Comment #20 from Richard Shaw hobbes1069@gmail.com --- 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)
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
--- Comment #21 from Richard Shaw hobbes1069@gmail.com --- 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/
https://bugzilla.redhat.com/show_bug.cgi?id=1932124
Fedora Update System updates@fedoraproject.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |CLOSED Fixed In Version| |blender-2.93.3-7.fc36 Resolution|--- |ERRATA Last Closed| |2021-08-24 22:25:46
--- Comment #22 from Fedora Update System updates@fedoraproject.org --- 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.
design-devel@lists.fedoraproject.org