[Bf-committers] Building with OpenVDB and OSL: a Boost case
Hi all, I mail here because it can affect anyone who builds Blender, not just the Cycles freaks ;) As a reminder, OpenVDB is making use of, and relies on libraries making use of, C++ built-in run-time type information (RTTI). On the other hand, LLVM (used by OSL) has a home brew version and does not want to hear about the built-in one by default. The most straightforward way to address this is by building LLVM with RTTI enabled, and build OSL accordingly. But that's maybe not a possibility (because of a lot of reasons), so RTTI usage in VDB will need to be taken care of. By compiling Cycles with both VDB and OSL it appears that most RTTI symbols that give issues are in everyone's favorite library: Boost (I have version 1.54 here). There's also one in TBB, but it can be avoided by disabling the use exceptions there. Although patching OpenVDB so it compiles fine with RTTI disabled is a no-brainer (~10 changes), we will need to upgrade boost to at least version 1.57. Which should also comprise the fix for the Windows compile issue raised by Antony. I've just installed it, and as far as I can tell, it seems to work fine (_YMMV_). I've forked the openvdb repository, so to test things out you can get my changes from there (https://github.com/diekev/openvdb [1]) in the 'cycles_fixes' branch (it will also contain fixes for implicit float conversions happening in the library, which make Cycles grumpy). So if we go with boost 1.57, or above, and everything goes fine on all platforms, I'll make a pull request. That's it from me for the moment, Cheers, Kévin. Links: -- [1] https://github.com/diekev/openvdb ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Building with OpenVDB and OSL: a Boost case
Hi Kevin, I want to do a coordinated effort to upgrade the windows and OS X libraries after 2.75 is out the door. In addition to openvdb, Alembic might need to be included, also updates to llvm, boost, osl, oiio, and maybe other might be in order. (OpenSubDiv and PTex I am now sure about (for ptex we use OIIO i think ?)) I am fine with bumping boost to 1.57 for windows / OS X but I am not sure about linux. For Linux It seems to me that it is to new and that we should try to keep boost 1.48 minimal requirement if we can. If that is unfeasible we should bump no higher then 1.54 for linux as then we have debian and ubuntu stable to consider. Martijn On Mon, Jun 15, 2015 at 4:09 AM, Kévin Dietrich wrote: > > > Hi all, > > I mail here because it can affect anyone who builds Blender, not just > the Cycles freaks ;) > > As a reminder, OpenVDB is making use of, and relies on libraries making > use of, C++ built-in run-time type information (RTTI). On the other > hand, LLVM (used by OSL) has a home brew version and does not want to > hear about the built-in one by default. > > The most straightforward way to address this is by building LLVM with > RTTI enabled, and build OSL accordingly. > > But that's maybe not a possibility (because of a lot of reasons), so > RTTI usage in VDB will need to be taken care of. By compiling Cycles > with both VDB and OSL it appears that most RTTI symbols that give issues > are in everyone's favorite library: Boost (I have version 1.54 here). > There's also one in TBB, but it can be avoided by disabling the use > exceptions there. > > Although patching OpenVDB so it compiles fine with RTTI disabled is a > no-brainer (~10 changes), we will need to upgrade boost to at least > version 1.57. Which should also comprise the fix for the Windows compile > issue raised by Antony. > > I've just installed it, and as far as I can tell, it seems to work fine > (_YMMV_). I've forked the openvdb repository, so to test things out you > can get my changes from there (https://github.com/diekev/openvdb [1]) in > the 'cycles_fixes' branch (it will also contain fixes for implicit float > conversions happening in the library, which make Cycles grumpy). So if > we go with boost 1.57, or above, and everything goes fine on all > platforms, I'll make a pull request. > > That's it from me for the moment, > Cheers, > Kévin. > > > Links: > -- > [1] https://github.com/diekev/openvdb > ___ > Bf-committers mailing list > Bf-committers@blender.org > http://lists.blender.org/mailman/listinfo/bf-committers > ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Building with OpenVDB and OSL: a Boost case
Hi, On Mon, Jun 15, 2015 at 4:09 AM, Kévin Dietrich wrote: > > > Although patching OpenVDB so it compiles fine with RTTI disabled is a > no-brainer (~10 changes), we will need to upgrade boost to at least > version 1.57. Which should also comprise the fix for the Windows compile > issue raised by Antony. > > I think we should try to upstream this change so other can also benefit from it and we will not have to maintain a patch set for OpenVDB Maritjn ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Building with OpenVDB and OSL: a Boost case
If Boost 1.57 on Linux isn't really feasible (I had to compile it for instance), then there isn't that much options. It's either patch Boost and ask people to compile that or reimplement in OpenVDB (to be clean) the stuffs in boost that cause problem (should resolve to copy-paste + replace/remove typeid thingy). The later case means we'll likely have to maintain our own set of patches for VDB for until newer boost is in official Linux repos as I hardly see such a change being accepted upstream (as it's already in newer Boost or whatever). Still worth a try though. In the end, that depends on people's motivation. Le 2015-06-15 09:43, Martijn Berger a écrit : > Hi Kevin, > > I want to do a coordinated effort to upgrade the windows and OS X libraries > after 2.75 is out the door. > In addition to openvdb, Alembic might need to be included, also updates to > llvm, boost, osl, oiio, and maybe other might be in order. > (OpenSubDiv and PTex I am now sure about (for ptex we use OIIO i think ?)) > > I am fine with bumping boost to 1.57 for windows / OS X but I am not sure > about linux. > For Linux It seems to me that it is to new and that we should try to keep > boost 1.48 minimal requirement if we can. > If that is unfeasible we should bump no higher then 1.54 for linux as then > we have debian and ubuntu stable to consider. > > Martijn > > On Mon, Jun 15, 2015 at 4:09 AM, Kévin Dietrich > wrote: > >> Hi all, >> >> I mail here because it can affect anyone who builds Blender, not just >> the Cycles freaks ;) >> >> As a reminder, OpenVDB is making use of, and relies on libraries making >> use of, C++ built-in run-time type information (RTTI). On the other >> hand, LLVM (used by OSL) has a home brew version and does not want to >> hear about the built-in one by default. >> >> The most straightforward way to address this is by building LLVM with >> RTTI enabled, and build OSL accordingly. >> >> But that's maybe not a possibility (because of a lot of reasons), so >> RTTI usage in VDB will need to be taken care of. By compiling Cycles >> with both VDB and OSL it appears that most RTTI symbols that give issues >> are in everyone's favorite library: Boost (I have version 1.54 here). >> There's also one in TBB, but it can be avoided by disabling the use >> exceptions there. >> >> Although patching OpenVDB so it compiles fine with RTTI disabled is a >> no-brainer (~10 changes), we will need to upgrade boost to at least >> version 1.57. Which should also comprise the fix for the Windows compile >> issue raised by Antony. >> >> I've just installed it, and as far as I can tell, it seems to work fine >> (_YMMV_). I've forked the openvdb repository, so to test things out you >> can get my changes from there (https://github.com/diekev/openvdb [1] [1 >> [1]]) in >> the 'cycles_fixes' branch (it will also contain fixes for implicit float >> conversions happening in the library, which make Cycles grumpy). So if >> we go with boost 1.57, or above, and everything goes fine on all >> platforms, I'll make a pull request. >> >> That's it from me for the moment, >> Cheers, >> Kévin. >> >> Links: >> -- >> [1] https://github.com/diekev/openvdb [1] >> ___ >> Bf-committers mailing list >> Bf-committers@blender.org >> http://lists.blender.org/mailman/listinfo/bf-committers [2] > ___ > Bf-committers mailing list > Bf-committers@blender.org > http://lists.blender.org/mailman/listinfo/bf-committers [2] Links: -- [1] https://github.com/diekev/openvdb [2] http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Building with OpenVDB and OSL: a Boost case
Generally we'll need to update OIIO/OSL (due to the fixes), which could happen together with Boost update if really needed. But one thing is not totally clear to me after reading this discussion -- why do we need to bump boost requirement on Linux? On Mon, Jun 15, 2015 at 11:08 AM, Kévin Dietrich wrote: > > > If Boost 1.57 on Linux isn't really feasible (I had to compile it for > instance), then there isn't that much options. It's either patch Boost > and ask people to compile that or reimplement in OpenVDB (to be clean) > the stuffs in boost that cause problem (should resolve to copy-paste + > replace/remove typeid thingy). The later case means we'll likely have to > maintain our own set of patches for VDB for until newer boost is in > official Linux repos as I hardly see such a change being accepted > upstream (as it's already in newer Boost or whatever). Still worth a try > though. In the end, that depends on people's motivation. > > Le 2015-06-15 09:43, Martijn Berger a écrit : > > > Hi Kevin, > > > > I want to do a coordinated effort to upgrade the windows and OS X > libraries > > after 2.75 is out the door. > > In addition to openvdb, Alembic might need to be included, also updates > to > > llvm, boost, osl, oiio, and maybe other might be in order. > > (OpenSubDiv and PTex I am now sure about (for ptex we use OIIO i think > ?)) > > > > I am fine with bumping boost to 1.57 for windows / OS X but I am not sure > > about linux. > > For Linux It seems to me that it is to new and that we should try to keep > > boost 1.48 minimal requirement if we can. > > If that is unfeasible we should bump no higher then 1.54 for linux as > then > > we have debian and ubuntu stable to consider. > > > > Martijn > > > > On Mon, Jun 15, 2015 at 4:09 AM, Kévin Dietrich < > kevin.dietr...@mailoo.org> > > wrote: > > > >> Hi all, > >> > >> I mail here because it can affect anyone who builds Blender, not just > >> the Cycles freaks ;) > >> > >> As a reminder, OpenVDB is making use of, and relies on libraries making > >> use of, C++ built-in run-time type information (RTTI). On the other > >> hand, LLVM (used by OSL) has a home brew version and does not want to > >> hear about the built-in one by default. > >> > >> The most straightforward way to address this is by building LLVM with > >> RTTI enabled, and build OSL accordingly. > >> > >> But that's maybe not a possibility (because of a lot of reasons), so > >> RTTI usage in VDB will need to be taken care of. By compiling Cycles > >> with both VDB and OSL it appears that most RTTI symbols that give issues > >> are in everyone's favorite library: Boost (I have version 1.54 here). > >> There's also one in TBB, but it can be avoided by disabling the use > >> exceptions there. > >> > >> Although patching OpenVDB so it compiles fine with RTTI disabled is a > >> no-brainer (~10 changes), we will need to upgrade boost to at least > >> version 1.57. Which should also comprise the fix for the Windows compile > >> issue raised by Antony. > >> > >> I've just installed it, and as far as I can tell, it seems to work fine > >> (_YMMV_). I've forked the openvdb repository, so to test things out you > >> can get my changes from there (https://github.com/diekev/openvdb [1] > [1 [1]]) in > >> the 'cycles_fixes' branch (it will also contain fixes for implicit float > >> conversions happening in the library, which make Cycles grumpy). So if > >> we go with boost 1.57, or above, and everything goes fine on all > >> platforms, I'll make a pull request. > >> > >> That's it from me for the moment, > >> Cheers, > >> Kévin. > >> > >> Links: > >> -- > >> [1] https://github.com/diekev/openvdb [1] > >> ___ > >> Bf-committers mailing list > >> Bf-committers@blender.org > >> http://lists.blender.org/mailman/listinfo/bf-committers [2] > > ___ > > Bf-committers mailing list > > Bf-committers@blender.org > > http://lists.blender.org/mailman/listinfo/bf-committers [2] > > > > Links: > -- > [1] https://github.com/diekev/openvdb > [2] http://lists.blender.org/mailman/listinfo/bf-committers > ___ > Bf-committers mailing list > Bf-committers@blender.org > http://lists.blender.org/mailman/listinfo/bf-committers > -- With best regards, Sergey Sharybin ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Building with OpenVDB and OSL: a Boost case
Le 2015-06-15 11:57, Sergey Sharybin a écrit : > But one thing is not totally clear to me after reading this discussion -- > why do we need to bump boost requirement on Linux? I would say because after taming rtti usage in OpenVDB itself, Cycles is still complaining about rtti stuff in boost. For example, in some place OpenVDB is making use of boost::any which calls typeid, std::type_info ... there are also a few other places in boost with problematic rtti usage, and those are addressed in boost 1.57, some were addressed in 1.56. So something must be done here. That is when/if OpenVDB becomes officially supported in Cycles of course. ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Building with OpenVDB and OSL: a Boost case
Hi Martijn and Kevin, What heppened to this boost update? Python was updated, OpenGL requirements too, Windows XP is dropped, lets use 2.77 to move everything up for the upcoming development. OpenVDB is a really much needed addition for the simulation and volumetrics parts. Regards, Mat Am 15/06/2015 um 09:43 schrieb Martijn Berger: > Hi Kevin, > > I want to do a coordinated effort to upgrade the windows and OS X libraries > after 2.75 is out the door. > In addition to openvdb, Alembic might need to be included, also updates to > llvm, boost, osl, oiio, and maybe other might be in order. > (OpenSubDiv and PTex I am now sure about (for ptex we use OIIO i think ?)) > > I am fine with bumping boost to 1.57 for windows / OS X but I am not sure > about linux. > For Linux It seems to me that it is to new and that we should try to keep > boost 1.48 minimal requirement if we can. > If that is unfeasible we should bump no higher then 1.54 for linux as then > we have debian and ubuntu stable to consider. > > Martijn > > > > > > On Mon, Jun 15, 2015 at 4:09 AM, Kévin Dietrich > wrote: > >> >> Hi all, >> >> I mail here because it can affect anyone who builds Blender, not just >> the Cycles freaks ;) >> >> As a reminder, OpenVDB is making use of, and relies on libraries making >> use of, C++ built-in run-time type information (RTTI). On the other >> hand, LLVM (used by OSL) has a home brew version and does not want to >> hear about the built-in one by default. >> >> The most straightforward way to address this is by building LLVM with >> RTTI enabled, and build OSL accordingly. >> >> But that's maybe not a possibility (because of a lot of reasons), so >> RTTI usage in VDB will need to be taken care of. By compiling Cycles >> with both VDB and OSL it appears that most RTTI symbols that give issues >> are in everyone's favorite library: Boost (I have version 1.54 here). >> There's also one in TBB, but it can be avoided by disabling the use >> exceptions there. >> >> Although patching OpenVDB so it compiles fine with RTTI disabled is a >> no-brainer (~10 changes), we will need to upgrade boost to at least >> version 1.57. Which should also comprise the fix for the Windows compile >> issue raised by Antony. >> >> I've just installed it, and as far as I can tell, it seems to work fine >> (_YMMV_). I've forked the openvdb repository, so to test things out you >> can get my changes from there (https://github.com/diekev/openvdb [1]) in >> the 'cycles_fixes' branch (it will also contain fixes for implicit float >> conversions happening in the library, which make Cycles grumpy). So if >> we go with boost 1.57, or above, and everything goes fine on all >> platforms, I'll make a pull request. >> >> That's it from me for the moment, >> Cheers, >> Kévin. >> >> >> Links: >> -- >> [1] https://github.com/diekev/openvdb >> ___ >> Bf-committers mailing list >> Bf-committers@blender.org >> http://lists.blender.org/mailman/listinfo/bf-committers >> > ___ > Bf-committers mailing list > Bf-committers@blender.org > http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Building with OpenVDB and OSL: a Boost case
Le 2015-12-17 08:43, matmenu a écrit : > Hi Martijn and Kevin, > What heppened to this boost update? Python was updated, OpenGL > requirements too, Windows XP is dropped, lets use 2.77 to move > everything up for the upcoming development. OpenVDB is a really much > needed addition for the simulation and volumetrics parts. > Regards, > Mat Hi, Well, at the moment updating Boost would be irrelevant, for two reasons: 1) when I first opened this discussion, I had just finished implementing volume sampling and decided it could be enough for a first step. Then, as I had more time, I started working on ray intersection (accelerated ray marching/empty space optimization), and that's not finished... so let's first wrap that up. 2) the main reason, the OpenVDB team at DWA reverted my patch removing RTTI symbols in the OpenVDB library (because reasons). The only reason to update Boost is to remove the couple of troublesome RTTI symbols in there, but if we still have such symbols in OpenVDB, it's pointless. In any case, let's first finish the implementation in Cycles, and then try again to find a way to compile everything together nicely. Cheers, Kévin. > Am 15/06/2015 um 09:43 schrieb Martijn Berger: Hi Kevin, > > I want to do a coordinated effort to upgrade the windows and OS X libraries > after 2.75 is out the door. > In addition to openvdb, Alembic might need to be included, also updates to > llvm, boost, osl, oiio, and maybe other might be in order. > (OpenSubDiv and PTex I am now sure about (for ptex we use OIIO i think ?)) > > I am fine with bumping boost to 1.57 for windows / OS X but I am not sure > about linux. > For Linux It seems to me that it is to new and that we should try to keep > boost 1.48 minimal requirement if we can. > If that is unfeasible we should bump no higher then 1.54 for linux as then > we have debian and ubuntu stable to consider. > > Martijn > > On Mon, Jun 15, 2015 at 4:09 AM, Kévin Dietrich > wrote: > > Hi all, > > I mail here because it can affect anyone who builds Blender, not just > the Cycles freaks ;) > > As a reminder, OpenVDB is making use of, and relies on libraries making > use of, C++ built-in run-time type information (RTTI). On the other > hand, LLVM (used by OSL) has a home brew version and does not want to > hear about the built-in one by default. > > The most straightforward way to address this is by building LLVM with > RTTI enabled, and build OSL accordingly. > > But that's maybe not a possibility (because of a lot of reasons), so > RTTI usage in VDB will need to be taken care of. By compiling Cycles > with both VDB and OSL it appears that most RTTI symbols that give issues > are in everyone's favorite library: Boost (I have version 1.54 here). > There's also one in TBB, but it can be avoided by disabling the use > exceptions there. > > Although patching OpenVDB so it compiles fine with RTTI disabled is a > no-brainer (~10 changes), we will need to upgrade boost to at least > version 1.57. Which should also comprise the fix for the Windows compile > issue raised by Antony. > > I've just installed it, and as far as I can tell, it seems to work fine > (_YMMV_). I've forked the openvdb repository, so to test things out you > can get my changes from there (https://github.com/diekev/openvdb [1 [1]]) in > the 'cycles_fixes' branch (it will also contain fixes for implicit float > conversions happening in the library, which make Cycles grumpy). So if > we go with boost 1.57, or above, and everything goes fine on all > platforms, I'll make a pull request. > > That's it from me for the moment, > Cheers, > Kévin. > > Links: > -- > [1] https://github.com/diekev/openvdb > ___ > Bf-committers mailing list > Bf-committers@blender.org > http://lists.blender.org/mailman/listinfo/bf-committers > > ___ > Bf-committers mailing list > Bf-committers@blender.org > http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers Links: -- [1] https://github.com/diekev/openvdb ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers