[Bf-committers] Building with OpenVDB and OSL: a Boost case

Kévin Dietrich kevin.dietrich at mailoo.org
Mon Jun 15 11:08:57 CEST 2015


 

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.dietrich at 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 at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers [2]
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at 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


More information about the Bf-committers mailing list