OpenUSD icon indicating copy to clipboard operation
OpenUSD copied to clipboard

Fails to find oneTBB-2021.3.0

Open yurivict opened this issue 4 years ago • 23 comments

USD-21.08 fails:

CMake Error at cmake/modules/FindTBB.cmake:200 (file):
  file failed to open for reading (No such file or directory):

    /usr/local/include/tbb/tbb_stddef.h
Call Stack (most recent call first):
  cmake/defaults/Packages.cmake:135 (find_package)
  CMakeLists.txt:23 (include)

oneTBB doesn't install /usr/local/include/tbb/tbb_stddef.h.

OS: FreeBSD 13

yurivict avatar Oct 11 '21 19:10 yurivict

Filed as internal issue #USD-6958

jilliene avatar Oct 13 '21 15:10 jilliene

Hi @yurivict -- we don't currently support oneTBB yet, we track the https://vfxplatform.com specifications, so we will eventually have to support it, but it's not on the immediate time horizon.

c64kernal avatar Oct 13 '21 22:10 c64kernal

oneTBB replaced TBB - eventually all distros will remove TBB.

There's no benefit in waiting.

yurivict avatar Oct 14 '21 17:10 yurivict

Is there any update on this issue? This blocks enabling USD support in blender for openSUSE Tumbleweed.

darix avatar Dec 04 '21 16:12 darix

I am surprised to hear that, @darix , as I thought that blender followed the vfx reference platform. To speak to @yurivict 's comment "There's no benefit in waiting". Well, the software landscape for big vfx studios is complicated, with the need to maintain plugins against many different vendors' DCC's, and the reference platform was created to help make that process more sane, and judging by how much it has helped at Pixar, I'd say it has been successful, because the vendors mostly stick to it (or at least trail it fairly closely).

TBB is the CPU resource manager of choice in all the vfx DCC's, but it only works as a resource manager if all plugins adhere to it also. Since USD is meant to plug into all the DCC's by design, it must use the very same TBB as the DCC's, and therefore USD adherence to the reference platform is important. OneTBB is a big change for engineering-strapped VFX studios to absorb, and so, like the change to python3, the reference platform moves more slowly than some would like.

So that is why we wait, and thanks for your patience!

spiffmon avatar Dec 04 '21 18:12 spiffmon

not everyone is building blender with that vfxplatform. Distributions are trying to avoid multiple versions of the same library if possible. openSUSE Tumbleweed is pretty much a distro with the latest version of every library.

I can understand why moving the vfxplatform at a slower pace is desirable. But allowing to build against newer versions can be achieved in a way that also supports building against older versions.

FWIW: I was actually pondering for a while to use https://build.opensuse.org/ to build all the packages to run the vfxplatform on openSUSE/SLES. I just wasnt sure how helpful it would be.

darix avatar Dec 04 '21 19:12 darix

Yes, it should be possible to have a USD distro that can build either way. We were ecstatic to accept help from Nvidia to make USD python 2.7/3.x compatible in advance of Pixar’s full codebase switch, which is only now ip.

However, TBB is a lot more sensitive, because we have many strict performance gates, and tbb is at the heart of many of our most sensitive performance code. So upgrading will need to be done very carefully, internally, as resources allow. Engaged folks have pointed out specific deprecated things we could start attempting to replace, and we’ll address them bit by bit as we can.

spiffmon avatar Dec 04 '21 19:12 spiffmon

well first problem seems to be some components of TBB got renamed or dropped. i hacked out the parsing TBB_*_VERSION as those defines are also dropped but then it failed on the trying test for the subcomponents and thats when i started to check if someone maybe had an upstream patch already to port to the newer version and i ended up here :)

My main goal is always making tools work on openSUSE so it is easier for users to use our distro as base for their work.

darix avatar Dec 04 '21 19:12 darix

Another option is to allow to build without TBB so that it would be single-threaded. This way platforms with oneTBB can at least have the USD port.

Currently the TBB dependency is required.

yurivict avatar Dec 04 '21 20:12 yurivict

i mean in doubt something like other libraries do: have a check if you are running with the same version as it was compiled with. then you would notice if different TBB versions are used.

nokogiri e.g. does that for libxml2

darix avatar Dec 04 '21 23:12 darix

having the same issue with 23.05 on debian sid amd64

alexmyczko avatar Jun 20 '23 21:06 alexmyczko

Same issue with OpenUSD 24.05 here in 2024. No progress on this? The link on the github landing page takes you directly to oneTBB which might lead someone to think that oneTBB is what you're supposed to build against.

robo-todd avatar May 15 '24 18:05 robo-todd

Changes have been landing over the last couple of weeks, and should be complete for our next release.

spiffmon avatar May 17 '24 01:05 spiffmon

That would be fantastic for an integration point of view. Good to know for planning!

robo-todd avatar May 17 '24 14:05 robo-todd

Any news?

VVD avatar Aug 18 '24 13:08 VVD

24.08 on debian sid, arm64 builds fine for me, with libtbb-dev:arm64 2021.12.0-1

[100%] Built target hdTiny_headerfiles
[100%] Building CXX object extras/imaging/examples/hdTiny/CMakeFiles/hdTiny.dir/mesh.cpp.o
[100%] Building CXX object extras/imaging/examples/hdTiny/CMakeFiles/hdTiny.dir/renderDelegate.cpp.o
[100%] Building CXX object extras/imaging/examples/hdTiny/CMakeFiles/hdTiny.dir/rendererPlugin.cpp.o
[100%] Building CXX object extras/imaging/examples/hdTiny/CMakeFiles/hdTiny.dir/renderPass.cpp.o
[100%] Linking CXX shared library hdTiny.so
[100%] Built target hdTiny
[100%] Building CXX object extras/imaging/examples/hdTiny/CMakeFiles/testHdTiny.dir/testenv/testHdTiny.cpp.o
[100%] Linking CXX executable testHdTiny
[100%] Built target testHdTiny

alexmyczko avatar Aug 19 '24 10:08 alexmyczko

Added "--onetbb" option to use oneTBB instead of TBB. https://github.com/PixarAnimationStudios/OpenUSD/blob/v24.08/CHANGELOG.md I'll test…

VVD avatar Aug 19 '24 11:08 VVD

It looks like support of the FreeBSD is completely broken.

VVD avatar Aug 19 '24 19:08 VVD

That's likely - we do not officially support FreeBSD and the author of a PR to attempt to add support never provided us with a CLA.

spiffmon avatar Aug 20 '24 16:08 spiffmon

What is CLA? I posted "patches" ("hacks") here: https://github.com/PixarAnimationStudios/OpenUSD/issues/1706#issuecomment-2297777281. Build on FreeBSD 14.1 amd64 without errors. Didn't tested runtime.

VVD avatar Aug 20 '24 17:08 VVD

@VVD https://openusd.org/release/contributing_to_usd.html It's the Contributor License Agreement

dgovil avatar Aug 20 '24 18:08 dgovil

That's likely - we do not officially support FreeBSD and the author of a PR to attempt to add support never provided us with a CLA.

https://github.com/PixarAnimationStudios/OpenUSD/pull/1705#issuecomment-1107713218

VVD avatar Aug 21 '24 00:08 VVD

Apologies I must have confused this with a different issue!

On Tue, Aug 20, 2024 at 5:43 PM VVD @.***> wrote:

That's likely - we do not officially support FreeBSD and the author of a PR to attempt to add support never provided us with a CLA.

#1705 (comment) https://github.com/PixarAnimationStudios/OpenUSD/pull/1705#issuecomment-1107713218

— Reply to this email directly, view it on GitHub https://github.com/PixarAnimationStudios/OpenUSD/issues/1650#issuecomment-2299998546, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABPOU2FFNGTDMY6EFSCE2C3ZSPPC5AVCNFSM5FY5C3T2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMRZHE4TSOBVGQ3A . You are receiving this because you commented.Message ID: @.***>

spiffmon avatar Aug 21 '24 04:08 spiffmon