Library changes for Blender 4.1 #113157

Closed
opened 2023-10-02 16:54:52 +02:00 by Brecht Van Lommel · 66 comments

Here is the list of all changes to our libraries for the Blender 4.1 release.

temp branch: tmp_libupdate_41

Summary

  • Upgrade to VFX platform CY2024
    • Python 3.11
    • Numpy 1.24
    • OpenEXR 3.2
    • OpenSubdiv 3.6
    • OpenVDB 11.x
    • OpenColorIO 2.3
    • Boost 1.82
  • Other Libraries
    • Wayland Protocols 1.32
    • Mesa 23.3.0 (required for new LLVM)
    • OpenAL-soft 1.23.1 (quiets error message)

Preliminary Libraries

  • nothing yet

New Libraries

  • LibDeflate 1.18

Removed Libraries

  • Freeglut, was used by cycles-standalone in the past, but it is no longer used.

Changed Libraries

  • OSL now links dynamically (changes have been done)
  • FFmpeg links dynamically on mac+linux (postponed)

To Do

WIP

Done yy-mm-dd

Done 24-03-17

Superseded 2024-03-15

  • OpenImageDenoise 2.2.1
    • Update CMake deps builder (#119095)
    • Add Package file to SVN
    • Add precompiled libraries
    • Update install_linux_packages script (N/A)

Done

  • OpenImageDenoise 2.1.0

    • Update CMake deps builder (#112143)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (r63572)
      • Linux (r63562).
      • macOS Intel (63571)
      • macOS Arm (63571)
    • Update install_linux_packages script (90f83f71f2)
  • wayland_protocols 1.32

    • Update CMake deps builder (7aa3d967ba)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries (r63582).
      • Windows NA
      • Linux (r63562).
      • macOS Intel NA
      • macOS Arm NA
    • Update install_linux_packages script (N/A)
  • mesa 23.3.0

    • Update CMake deps builder
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows NA
      • Linux r63591
      • macOS Intel NA
      • macOS Arm NA
    • Update install_linux_packages script (N/A)
  • Python 3.11.6

    • Update CMake deps builder (in temp branch)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows
      • Linux (r63591)
      • macOS Intel (r63597)
      • macOS Arm (r63597)
    • Update install_linux_packages script (90f83f71f2)
  • Numpy 1.24.3

    • Update CMake deps builder (in temp branch)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (r63592)
      • Linux (r63591)
      • macOS Intel (r63597)
      • macOS Arm (r63597)
    • Update install_linux_packages script (90f83f71f2)
  • SQLite 3.42.0

    • Update CMake deps builder (in temp branch)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (r63592)
      • Linux (r63591)
      • macOS Intel (r63597)
      • macOS Arm (r63597)
    • Update install_linux_packages script (N/A)
  • FFI 3.3.4

    • Update CMake deps builder (in temp branch)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (r63592)
      • Linux (r63591)
      • macOS Intel (r63597)
      • macOS Arm (r63597)
    • Update install_linux_packages script (N/A)
  • MaterialX 1.38.8

    • Update CMake deps builder (in temp branch)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (r63592)
      • Linux (r63591)
      • macOS Intel (r63597)
      • macOS Arm (r63597)
    • Update install_linux_packages script (90f83f71f2)
  • boost 1.82

    • Update CMake deps builder (in temp branch)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (r63592)
      • Linux (r63591)
      • macOS Intel (r63597)
      • macOS Arm (r63597)
    • Update install_linux_packages script (90f83f71f2)
  • openexr 3.2.1

    • Update CMake deps builder (in temp branch)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (r63592)
      • Linux (r63591)
      • macOS Intel (r63597)
      • macOS Arm (r63597)
    • Update install_linux_packages script (90f83f71f2)
  • libdeflate 1.18

    • Update CMake deps builder (in temp branch)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (r63592)
      • Linux (r63591)
      • macOS Intel (r63597)
      • macOS Arm (r63597)
    • Update install_linux_packages script (dfc00e8a18)
  • opencolorio 2.3.0

    • Update CMake deps builder (in temp branch)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (r63592)
      • Linux (r63591)
      • macOS Intel (r63597)
      • macOS Arm (r63597)
    • Update install_linux_packages script (90f83f71f2)
  • openvdb 11.0

    • Update CMake deps builder (in temp branch)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (r63592)
      • Linux (r63591)
      • macOS Intel (r63597)
      • macOS Arm (r63597)
    • Update install_linux_packages script (90f83f71f2)
  • Vulkan Headers v1.3.270

    • Update CMake deps builder (in temp branch)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (r63592)
      • Linux (r63591)
      • macOS Intel (r63597)
      • macOS Arm (r63597)
    • Update install_linux_packages script (N/A)
  • Vulkan Loader v1.3.270

    • Update CMake deps builder (in temp branch)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (r63592)
      • Linux (r63591)
      • macOS Intel (r63597)
      • macOS Arm (r63597)
    • Update install_linux_packages script (N/A)
  • llvm 17.0.6

    • Update CMake deps builder (in temp branch)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (r63592)
      • Linux (r63591)
      • macOS Intel (r63597)
      • macOS Arm (r63597)
    • Update install_linux_packages script (ec5594ec7f)
  • osl 1a7670600c8b08c2443a78d03c8c27e9a1149140 (this is what #110708 had, we can likely bump further than this)

    • Update CMake deps builder (in temp branch / #110708)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (r63592)
      • Linux (r63591)
      • macOS Intel (r63597)
      • macOS Arm (r63597)
    • Update install_linux_packages script (ec5594ec7f - not exact since not released yet)
  • ispc 1.21.1

    • Update CMake deps builder (in temp branch)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (r63592)
      • Linux (r63591)
      • macOS Intel (r63597)
      • macOS Arm (r63597)
    • Update install_linux_packages script (N/A)
  • ocloc patch

    • Update CMake deps builder (#115750)
    • Add Package file to SVN (N/A)
    • Add precompiled libraries
      • Windows (binary on the buildbot to be updated by Brecht or Sergey)
      • Linux (r63591)
      • macOS Intel (N/A)
      • macOS Arm (N/A)
    • Update install_linux_packages script (N/A)
  • libxml2 2.12.3

    • Update CMake deps builder (in temp branch)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (r63592)
      • Linux (r63591)
      • macOS Intel (r63597)
      • macOS Arm (r63597)
    • Update install_linux_packages script (N/A)
  • OpenImageIO 2.5.6.0

    • Update CMake deps builder (in temp branch)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (r63592)
      • Linux (r63591)
      • macOS Intel (r63597)
      • macOS Arm (r63597)
    • Update install_linux_packages script (ec5594ec7f)
  • USD 23.11

    • Update CMake deps builder (in temp branch)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (r63592)
      • Linux (r63591)
      • macOS Intel (r63597)
      • macOS Arm (r63597)
    • Update install_linux_packages script (ec5594ec7f)
  • sse2neon cfaa59fc04fecb117c0a0f3fe9c82dece6f359ad

    • Update CMake deps builder (in temp branch)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (N/A)
      • Linux (N/A)
      • macOS Intel (N/A)
      • macOS Arm (r63597)
    • Update install_linux_packages script (N/A)
  • opensubdiv 3.6.0

    • Update CMake deps builder (in temp branch)
    • Add Package file to SVN (r63596)
    • Add precompiled libraries
      • Windows (r63592)
      • Linux (r63591)
      • macOS Intel (r63597)
      • macOS Arm (r63597)
    • Update install_linux_packages script (90f83f71f2)
  • openal 1.23.1

    • Update CMake deps builder (r63600)
    • Add Package file to SVN (r63655)
    • Add precompiled libraries
      • Windows (r63654)
      • Linux (r63600)
      • macOS Intel
      • macOS Arm (r63644)
    • Update install_linux_packages script (N/A)
  • openimagedenoise 2.2rc

    • Update CMake deps builder (#117752)
    • Add Package file to SVN (r63655)
    • Add precompiled libraries
      • Windows (r63654)
      • Linux (r63666)
      • macOS Intel
      • macOS Arm (r63644)
    • Update install_linux_packages script (a48e825c1e)
  • level zero 1.15.8

    • Update CMake deps builder (#117752)
    • Add Package file to SVN (r63655)
    • Add precompiled libraries
      • Windows (r63654)
      • Linux (r63666)
      • macOS Intel (N/A)
      • macOS Arm (N/A)
    • Update install_linux_packages script (a48e825c1e)
  • opencolorio 2.3.2

    • Update CMake deps builder (deb4273565)
    • Add Package file to SVN (r63655)
    • Add precompiled libraries
      • Windows (r63654)
      • Linux (r63666)
      • macOS Intel
      • macOS Arm (r63644)
    • Update install_linux_packages script (a48e825c1e)
  • dpcpp patch for caching

    • Update CMake deps builder (#117844)
    • Add Package file to SVN (N/A)
    • Add precompiled libraries
      • Windows (r63654)
      • Linux (r63666)
      • macOS Intel (N/A)
      • macOS Arm (N/A)
    • Update install_linux_packages script (N/A)
  • python 3.11.7

    • Update CMake deps builder (#117866)
    • Add Package file to SVN (r63655)
    • Add precompiled libraries
      • Windows (r63654)
      • Linux (r63666)
      • macOS Intel
      • macOS Arm
    • Update install_linux_packages script (N/A)
  • vpx 1.14.0

    • Update CMake deps builder (#117866)
    • Add Package file to SVN (r63655)
    • Add precompiled libraries
      • Windows (r63654)
      • Linux (r63666)
      • macOS Intel
      • macOS Arm
    • Update install_linux_packages script (N/A)
  • ffmpeg 6.1.1

    • Update CMake deps builder (#117866)
    • Add Package file to SVN (r63655)
    • Add precompiled libraries
      • Windows (r63654)
      • Linux (r63666)
      • macOS Intel
      • macOS Arm
    • Update install_linux_packages script (N/A)
  • openssl 3.1.5

    • Update CMake deps builder (#117866)
    • Add Package file to SVN (r63655)
    • Add precompiled libraries
      • Windows (r63654)
      • Linux (r63666)
      • macOS Intel
      • macOS Arm
    • Update install_linux_packages script (N/A)
  • sqlite 3.45.1

    • Update CMake deps builder (#117866)
    • Add Package file to SVN (r63655)
    • Add precompiled libraries
      • Windows (r63654)
      • Linux (r63666)
      • macOS Intel
      • macOS Arm
    • Update install_linux_packages script (N/A)

Done 24-02-16

  • OSL (rebuild to fix OptiX not enabled)
    • Update CMake deps builder (#118234)
    • Add Package file to SVN (N/A)
    • Add precompiled libraries
      • Windows (r63592, r63690)
      • Linux (r63676, r63677)
      • macOS Intel (N/A)
      • macOS Arm (N/A)
    • Update install_linux_packages script (N/A)
Here is the list of all changes to our libraries for the Blender 4.1 release. temp branch: `tmp_libupdate_41` ### Summary - Upgrade to [VFX platform CY2024](https://vfxplatform.com/) - Python 3.11 - Numpy 1.24 - OpenEXR 3.2 - OpenSubdiv 3.6 - OpenVDB 11.x - OpenColorIO 2.3 - Boost 1.82 - Other Libraries - Wayland Protocols 1.32 - Mesa 23.3.0 (required for new LLVM) - OpenAL-soft 1.23.1 (quiets error message) ### Preliminary Libraries * nothing yet ### New Libraries - LibDeflate 1.18 ### Removed Libraries - Freeglut, was used by cycles-standalone in the past, but it is no longer used. ### Changed Libraries - OSL now links dynamically (changes have been done) - FFmpeg links dynamically on mac+linux (postponed) #### To Do #### WIP ### Done yy-mm-dd ### Done 24-03-17 - [x] OSL 1.13.7.0 - [x] Update CMake deps builder (#119095) - [x] Add Package file to SVN ( blender/lib-source@03aee469f3) - [x] Add precompiled libraries - [x] Windows ( blender/lib-windows_x64@eed1bd0a11b434182b3ba7c9f3ecaf752f4e3736 ) - [x] Linux - [x] macOS Intel - [x] macOS Arm - [x] Update `install_linux_packages` script (N/A) - [x] OpenImageDenoise 2.2.2 - [x] Update CMake deps builder b32554e53b - [x] Add Package file to SVN ( blender/lib-source@03aee469f3) - [x] Add precompiled libraries - [x] Windows ( blender/lib-windows_x64@6310c7b986 ) - [x] Linux ( blender/lib-linux_x64@42ada8a615 ) - [x] macOS Intel ( blender/lib-macos_x64@69d61acf96 ) - [x] macOS Arm ( blender/lib-macos_arm64@3cb32dc5bc ) - [x] Update `install_linux_packages` script (N/A) ## Superseded 2024-03-15 - [ ] OpenImageDenoise 2.2.1 - [x] Update CMake deps builder (#119095) - [ ] Add Package file to SVN - [x] Add precompiled libraries - [x] Windows ( blender/lib-windows_x64@eed1bd0a11b434182b3ba7c9f3ecaf752f4e3736 ) - [x] Linux - [x] macOS Intel - [x] macOS Arm - [x] Update `install_linux_packages` script (N/A) ## Done - [x] OpenImageDenoise 2.1.0 - [x] Update CMake deps builder (#112143) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (r63572) - [x] Linux (r63562). - [x] macOS Intel (63571) - [x] macOS Arm (63571) - [x] Update `install_linux_packages` script (90f83f71f2) - [x] wayland_protocols 1.32 - [x] Update CMake deps builder (7aa3d967bab6af61dbe151b3a72ee04d6d294de9) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries (r63582). - [x] Windows NA - [x] Linux (r63562). - [x] macOS Intel NA - [x] macOS Arm NA - [x] Update `install_linux_packages` script (N/A) - [x] mesa 23.3.0 - [x] Update CMake deps builder - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows NA - [x] Linux r63591 - [x] macOS Intel NA - [x] macOS Arm NA - [x] Update `install_linux_packages` script (N/A) - [x] Python 3.11.6 - [x] Update CMake deps builder (in temp branch) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows - [x] Linux (r63591) - [x] macOS Intel (r63597) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (90f83f71f2) - [x] Numpy 1.24.3 - [x] Update CMake deps builder (in temp branch) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (r63592) - [x] Linux (r63591) - [x] macOS Intel (r63597) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (90f83f71f2) - [x] SQLite 3.42.0 - [x] Update CMake deps builder (in temp branch) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (r63592) - [x] Linux (r63591) - [x] macOS Intel (r63597) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (N/A) - [x] FFI 3.3.4 - [x] Update CMake deps builder (in temp branch) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (r63592) - [x] Linux (r63591) - [x] macOS Intel (r63597) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (N/A) - [x] MaterialX 1.38.8 - [x] Update CMake deps builder (in temp branch) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (r63592) - [x] Linux (r63591) - [x] macOS Intel (r63597) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (90f83f71f2) - [x] boost 1.82 - [x] Update CMake deps builder (in temp branch) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (r63592) - [x] Linux (r63591) - [x] macOS Intel (r63597) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (90f83f71f2) - [x] openexr 3.2.1 - [x] Update CMake deps builder (in temp branch) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (r63592) - [x] Linux (r63591) - [x] macOS Intel (r63597) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (90f83f71f2) - [x] libdeflate 1.18 - [x] Update CMake deps builder (in temp branch) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (r63592) - [x] Linux (r63591) - [x] macOS Intel (r63597) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (dfc00e8a18) - [x] opencolorio 2.3.0 - [x] Update CMake deps builder (in temp branch) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (r63592) - [x] Linux (r63591) - [x] macOS Intel (r63597) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (90f83f71f2) - [x] openvdb 11.0 - [x] Update CMake deps builder (in temp branch) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (r63592) - [x] Linux (r63591) - [x] macOS Intel (r63597) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (90f83f71f2) - [x] Vulkan Headers v1.3.270 - [x] Update CMake deps builder (in temp branch) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (r63592) - [x] Linux (r63591) - [x] macOS Intel (r63597) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (N/A) - [x] Vulkan Loader v1.3.270 - [x] Update CMake deps builder (in temp branch) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (r63592) - [x] Linux (r63591) - [x] macOS Intel (r63597) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (N/A) - [x] llvm 17.0.6 - [x] Update CMake deps builder (in temp branch) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (r63592) - [x] Linux (r63591) - [x] macOS Intel (r63597) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (ec5594ec7f0da2) - [x] osl 1a7670600c8b08c2443a78d03c8c27e9a1149140 (this is what #110708 had, we can likely bump further than this) - [x] Update CMake deps builder (in temp branch / #110708) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (r63592) - [x] Linux (r63591) - [x] macOS Intel (r63597) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (ec5594ec7f0da2 - not exact since not released yet) - [x] ispc 1.21.1 - [x] Update CMake deps builder (in temp branch) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (r63592) - [x] Linux (r63591) - [x] macOS Intel (r63597) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (N/A) - [x] ocloc patch - [x] Update CMake deps builder (#115750) - [x] Add Package file to SVN (N/A) - [x] Add precompiled libraries - [x] Windows (binary on the buildbot to be updated by Brecht or Sergey) - [x] Linux (r63591) - [x] macOS Intel (N/A) - [x] macOS Arm (N/A) - [x] Update `install_linux_packages` script (N/A) - [x] libxml2 2.12.3 - [x] Update CMake deps builder (in temp branch) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (r63592) - [x] Linux (r63591) - [x] macOS Intel (r63597) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (N/A) - [x] OpenImageIO 2.5.6.0 - [x] Update CMake deps builder (in temp branch) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (r63592) - [x] Linux (r63591) - [x] macOS Intel (r63597) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (ec5594ec7f0da2) - [x] USD 23.11 - [x] Update CMake deps builder (in temp branch) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (r63592) - [x] Linux (r63591) - [x] macOS Intel (r63597) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (ec5594ec7f0da2) - [x] sse2neon cfaa59fc04fecb117c0a0f3fe9c82dece6f359ad - [x] Update CMake deps builder (in temp branch) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (N/A) - [x] Linux (N/A) - [x] macOS Intel (N/A) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (N/A) - [x] opensubdiv 3.6.0 - [x] Update CMake deps builder (in temp branch) - [x] Add Package file to SVN (r63596) - [x] Add precompiled libraries - [x] Windows (r63592) - [x] Linux (r63591) - [x] macOS Intel (r63597) - [x] macOS Arm (r63597) - [x] Update `install_linux_packages` script (90f83f71f2) - [x] openal 1.23.1 - [x] Update CMake deps builder (r63600) - [x] Add Package file to SVN (r63655) - [x] Add precompiled libraries - [x] Windows (r63654) - [x] Linux (r63600) - [x] macOS Intel - [x] macOS Arm (r63644) - [x] Update `install_linux_packages` script (N/A) - [x] openimagedenoise 2.2rc - [x] Update CMake deps builder (#117752) - [x] Add Package file to SVN (r63655) - [x] Add precompiled libraries - [x] Windows (r63654) - [x] Linux (r63666) - [x] macOS Intel - [x] macOS Arm (r63644) - [x] Update `install_linux_packages` script (a48e825c1e82) - [x] level zero 1.15.8 - [x] Update CMake deps builder (#117752) - [x] Add Package file to SVN (r63655) - [x] Add precompiled libraries - [x] Windows (r63654) - [x] Linux (r63666) - [x] macOS Intel (N/A) - [x] macOS Arm (N/A) - [x] Update `install_linux_packages` script (a48e825c1e82) - [x] opencolorio 2.3.2 - [x] Update CMake deps builder (deb4273565e105b86c7660466e64504f5ae0eef1) - [x] Add Package file to SVN (r63655) - [x] Add precompiled libraries - [x] Windows (r63654) - [x] Linux (r63666) - [x] macOS Intel - [x] macOS Arm (r63644) - [x] Update `install_linux_packages` script (a48e825c1e82) - [x] dpcpp patch for caching - [x] Update CMake deps builder (#117844) - [x] Add Package file to SVN (N/A) - [x] Add precompiled libraries - [x] Windows (r63654) - [x] Linux (r63666) - [x] macOS Intel (N/A) - [x] macOS Arm (N/A) - [x] Update `install_linux_packages` script (N/A) - [x] python 3.11.7 - [x] Update CMake deps builder (#117866) - [x] Add Package file to SVN (r63655) - [x] Add precompiled libraries - [x] Windows (r63654) - [x] Linux (r63666) - [x] macOS Intel - [x] macOS Arm - [x] Update `install_linux_packages` script (N/A) - [x] vpx 1.14.0 - [x] Update CMake deps builder (#117866) - [x] Add Package file to SVN (r63655) - [x] Add precompiled libraries - [x] Windows (r63654) - [x] Linux (r63666) - [x] macOS Intel - [x] macOS Arm - [x] Update `install_linux_packages` script (N/A) - [x] ffmpeg 6.1.1 - [x] Update CMake deps builder (#117866) - [x] Add Package file to SVN (r63655) - [x] Add precompiled libraries - [x] Windows (r63654) - [x] Linux (r63666) - [x] macOS Intel - [x] macOS Arm - [x] Update `install_linux_packages` script (N/A) - [x] openssl 3.1.5 - [x] Update CMake deps builder (#117866) - [x] Add Package file to SVN (r63655) - [x] Add precompiled libraries - [x] Windows (r63654) - [x] Linux (r63666) - [x] macOS Intel - [x] macOS Arm - [x] Update `install_linux_packages` script (N/A) - [x] sqlite 3.45.1 - [x] Update CMake deps builder (#117866) - [x] Add Package file to SVN (r63655) - [x] Add precompiled libraries - [x] Windows (r63654) - [x] Linux (r63666) - [x] macOS Intel - [x] macOS Arm - [x] Update `install_linux_packages` script (N/A) ### Done 24-02-16 - [x] OSL (rebuild to fix OptiX not enabled) - [x] Update CMake deps builder (#118234) - [x] Add Package file to SVN (N/A) - [x] Add precompiled libraries - [x] Windows (r63592, r63690) - [x] Linux (r63676, r63677) - [x] macOS Intel (N/A) - [x] macOS Arm (N/A) - [x] Update `install_linux_packages` script (N/A)
Brecht Van Lommel added the
Module
Platforms, Builds & Tests
Type
To Do
labels 2023-10-02 16:54:53 +02:00
Author
Owner

CC @LazyDodo @ideasman42

I have no plans to start working on this immediately, but just so we have an issue to track things. The VFX platform upgrades should be straightforward, especially compared to last year.

CC @LazyDodo @ideasman42 I have no plans to start working on this immediately, but just so we have an issue to track things. The VFX platform upgrades should be straightforward, especially compared to last year.
Member

Saw some people trying to build against a newer OCIO and having issues, there may be some reintegration work needed there.

Saw some people trying to build against a newer OCIO and having issues, there may be some reintegration work needed there.
Brecht Van Lommel added this to the 4.1 milestone 2023-11-08 14:52:44 +01:00
Member

started a working branch in tmp_libupdate_41 sofar only bumped the builder side for python. ffi and sqlite were updated to match pythons versions, materialX required an update to support building against py3.11. ffi's URI changed to github as the location we were using did not have the new release.

started a working branch in `tmp_libupdate_41` sofar only bumped the builder side for python. ffi and sqlite were updated to match pythons versions, materialX required an update to support building against py3.11. ffi's URI changed to github as the location we were using did not have the new release.
Member

openexr 3.2.1

OpenExr dropped zlib and gained a new dependency libdeflate 1.18
which it was determined to either download itself from git which is a
hard no for us, or use pkg_config to find it, which windows doesn't
use/have.

we were not the first ones to run into this, someone posted a
patch in an upstream ticket over at

https://github.com/AcademySoftwareFoundation/openexr/issues/1588

patch was used almost used verbatim with the sole change being
using the static version for the following reasons:

  • there are currently no other consumers of this library
  • I'm lazy and short on time, it being static doesn't require any
    work harvesting and distributing the build artefacts on the blender
    side of things.

I picked deflate 1.18 since it's what openexr defaults to 1.19 is
available though, unsure what we want to do here.

openexr 3.2.1 OpenExr dropped zlib and gained a new dependency libdeflate 1.18 which it was determined to either download itself from git which is a hard no for us, or use pkg_config to find it, which windows doesn't use/have. we were not the first ones to run into this, someone posted a patch in an upstream ticket over at https://github.com/AcademySoftwareFoundation/openexr/issues/1588 patch was used almost used verbatim with the sole change being using the static version for the following reasons: - there are currently no other consumers of this library - I'm lazy and short on time, it being static doesn't require any work harvesting and distributing the build artefacts on the blender side of things. I picked deflate 1.18 since it's what openexr defaults to 1.19 is available though, unsure what we want to do here.
Member

deps_builder: opencolorio 2.3.0

the patch for share/cmake/modules/Findpystring.cmake no longer applies
and could not be updated since none of the surrounding code appears
to be there any more, this was mac only, so @brecht may need to
take a look there.

deps_builder: opencolorio 2.3.0 the patch for share/cmake/modules/Findpystring.cmake no longer applies and could not be updated since none of the surrounding code appears to be there any more, this was mac only, so @brecht may need to take a look there.
Author
Owner

The OpenColorIO patch can be eliminated completely.

For the OpenEXR deflate issue, I'll try to get it merged upstream, so that we can eliminate the patch in the future.

As part of this update I would also like to make OSL and FFmpeg dynamic, to resolve #113892. We could also upgrade to the latest OSL along with this, but it is not out yet though should be soon. I will need to do some work for API compatibility there.

The OpenColorIO patch can be eliminated completely. For the OpenEXR deflate issue, I'll try to get it merged upstream, so that we can eliminate the patch in the future. As part of this update I would also like to make OSL and FFmpeg dynamic, to resolve #113892. We could also upgrade to the latest OSL along with this, but it is not out yet though should be soon. I will need to do some work for API compatibility there.
Member

Given we're likely gonna land all updates at once, any objections on landing #110708 in the temp branch? I'd rather have everything in single place.

Given we're likely gonna land all updates at once, any objections on landing #110708 in the temp branch? I'd rather have everything in single place.
Author
Owner

No objections, the more of these updates we can batch together the easier for me.

No objections, the more of these updates we can batch together the easier for me.

A polite request for the following also in addition to these (they will help my ARM64 efforts):

  • FreeGLUT, any commit >= d3d23ef3caf77239f463d305ffb87e68ed852ea7 - sadly the SF version in versions.cmake is way out of date now, and they haven't versioned for over a year on github, so it's currently a random commit hash
  • ISPC >= v1.19.0 (double check if you go higher than this as IIRC OIDN2 disabled a specific version as it was broken - .19 I know works)
  • sse2neon >= 00c6f241d4e79673392ef8dea5730e4037d728b3
  • Vulkan >= v1.3.259

These (and a few of the ones you are already working on) are ones I use in my ARM64 port: https://gitlab.com/Linaro/windowsonarm/forks/blender/-/merge_requests/34/diffs#965e56bce6e484b139c6fd9e40899b4d75784c6f

A polite request for the following also in addition to these (they will help my ARM64 efforts): * FreeGLUT, any commit >= `d3d23ef3caf77239f463d305ffb87e68ed852ea7` - sadly the SF version in `versions.cmake` is way out of date now, and they haven't versioned for over a year on [github](https://github.com/FreeGLUTProject/freeglut), so it's currently a random commit hash * ISPC >= v1.19.0 (double check if you go higher than this as IIRC OIDN2 disabled a specific version as it was broken - .19 I know works) * sse2neon >= `00c6f241d4e79673392ef8dea5730e4037d728b3` * Vulkan >= v1.3.259 These (and a few of the ones you are already working on) are ones I use in my ARM64 port: https://gitlab.com/Linaro/windowsonarm/forks/blender/-/merge_requests/34/diffs#965e56bce6e484b139c6fd9e40899b4d75784c6f
Member
  • FreeGLUT historically was only used for standalone cycles, i haven't checked up there in a while, i don't think it uses it anymore, we may be able to drop it all together, @brecht can you confirm this?

  • ISPC lists 1.21, 1.20 and 1.19 are working, we can probably just bump to 1.21 there, 1.21.1 is not listed as working, but has some oneapi fixes for linux, @xavierh you have any strong opinions on a preferred version here?

  • sse2neon no opinion, think this is a relatively trouble free dep

  • Vulkan , no opinion, @Jeroen-Bakker do you have any objections to bumping the SDK version?

- FreeGLUT historically was only used for standalone cycles, i haven't checked up there in a while, i don't think it uses it anymore, we may be able to drop it all together, @brecht can you confirm this? - ISPC [lists](https://github.com/OpenImageDenoise/oidn/blob/master/cmake/oidn_ispc.cmake#L5) 1.21, 1.20 and 1.19 are working, we can probably just bump to 1.21 there, 1.21.1 is not listed as working, but has some oneapi fixes for linux, @xavierh you have any strong opinions on a preferred version here? - sse2neon no opinion, think this is a relatively trouble free dep - Vulkan , no opinion, @Jeroen-Bakker do you have any objections to bumping the SDK version?
Member

I have no strong opinion for ISPC version, 1.21.1 is a good choice.

I have no strong opinion for ISPC version, 1.21.1 is a good choice.
Author
Owner

FreeGLUT can indeed be removed.

Bumping sse2neon should be fine too.

FreeGLUT can indeed be removed. Bumping sse2neon should be fine too.
Member

We can go to the latest vulkan 1.3 release. Will make it easier to add optional features in case we need them.

We can go to the latest vulkan 1.3 release. Will make it easier to add optional features in case we need them.
Member

Excellent! thanks guys! i'll get those updates going

Excellent! thanks guys! i'll get those updates going
Member

I bumped llvm+OSL to what we had in #110708 we can likely bump further than that, i think we're waiting on a new release of OSL there. llvm may need some ispc patches applied, i have not looked at this yet in details, figured i'd wait until the llvm version solidifies.

I bumped llvm+OSL to what we had in #110708 we can likely bump further than that, i think we're waiting on a new release of OSL there. llvm may need some ispc patches applied, i have not looked at this yet in details, figured i'd wait until the llvm version solidifies.
Member

There will have to be some reintegration work for openvdb 11, cycles ccl::ToNanoOp is throwing some template error while building, building with WITH_NANOVDB=Off works fine though, so the work be likely minor in nature.

There will have to be some reintegration work for openvdb 11, cycles `ccl::ToNanoOp` is throwing some template error while building, building with `WITH_NANOVDB=Off` works fine though, so the work be likely minor in nature.
Author
Owner

I pushed changes to the tmp_libupdate_41 branch:

  • Work to support latest OSL and OpenVDB 11 was committed to main and merged.
  • Many changes for making Linux and macOS build.
  • Update OSL to 1.13.5

Getting Python to use our own libraries for ssl, sqlite was tricky due to Python build system changes. It works for me on Ubuntu, hopefully works on Rocky as well.

We'll want to update OpenImageDenoise as well for CUDA, HIP and possibly Metal support. But this is not ready and would happen later in the release cycle.

I pushed changes to the `tmp_libupdate_41` branch: * Work to support latest OSL and OpenVDB 11 was committed to main and merged. * Many changes for making Linux and macOS build. * Update OSL to 1.13.5 Getting Python to use our own libraries for ssl, sqlite was tricky due to Python build system changes. It works for me on Ubuntu, hopefully works on Rocky as well. We'll want to update OpenImageDenoise as well for CUDA, HIP and possibly Metal support. But this is not ready and would happen later in the release cycle.
Author
Owner

After upgrading LLVM make format shows changes in hundreds of files. Previously we have been able to keep results nearly the same across a few versions. Ideally we can figure out a way to do the same here. Or we will need to take some care in landing the clang-format binaries for all platforms around the same time?

Maybe @ideasman42 wants to take a look at this or remembers something about this? Most changes seem to be about placement of { after if statements.

After upgrading LLVM `make format` shows changes in hundreds of files. Previously we have been able to keep results nearly the same across a few versions. Ideally we can figure out a way to do the same here. Or we will need to take some care in landing the clang-format binaries for all platforms around the same time? Maybe @ideasman42 wants to take a look at this or remembers something about this? Most changes seem to be about placement of `{` after if statements.
Member

We're on llvm15 currently since that's what the old patch had, given llvm bumps tend to be disruptive in the formatting department, do we want to bump to 16 or 17 so we have a little longer stable period?

We're on llvm15 currently since that's what the old patch had, given llvm bumps tend to be disruptive in the formatting department, do we want to bump to 16 or 17 so we have a little longer stable period?
Author
Owner

I've added an ocloc update for Linux in the list, that would be good to do along with the other libraries. This does not affect Windows or macOS.

I've added an ocloc update for Linux in the list, that would be good to do along with the other libraries. This does not affect Windows or macOS.
Author
Owner

For LLVM and clang-format, I guess we might as well update to the latest?

For LLVM and clang-format, I guess we might as well update to the latest?

Regarding clang-format, AFAICS the only practical option is to try to update LLVM for platforms at once - as I don't think there is a way to keep the old behavior.

Regarding clang-format, AFAICS the only practical option is to try to update LLVM for platforms at once - as I don't think there is a way to keep the old behavior.
Member

Think my longest libs upload was shortly over 14 hours, landing "at the same time" will likely be impossible, I suspect the best we can do is land on the same day and tell people not to commit make format changes if the number of changes seem unreasonable.

Think my longest libs upload was shortly over 14 hours, landing "at the same time" will likely be impossible, I suspect the best we can do is land on the same day and tell people not to commit make format changes if the number of changes seem unreasonable.
Member

I bumped llvm to 17.0..6 and osl and ipsc/oidn seem to build, but i have not yet had the time to do build/test blender against these libs

I bumped llvm to 17.0..6 and osl and ipsc/oidn seem to build, but i have not yet had the time to do build/test blender against these libs
Author
Owner

Think my longest libs upload was shortly over 14 hours, landing "at the same time" will likely be impossible, I suspect the best we can do is land on the same day and tell people not to commit make format changes if the number of changes seem unreasonable.

clang-format is statically linked and should not depend on anything else, so we could land it before or after the rest of the libs. I can even gather the binaries from all platforms and commit them myself in one go.

> Think my longest libs upload was shortly over 14 hours, landing "at the same time" will likely be impossible, I suspect the best we can do is land on the same day and tell people not to commit make format changes if the number of changes seem unreasonable. clang-format is statically linked and should not depend on anything else, so we could land it before or after the rest of the libs. I can even gather the binaries from all platforms and commit them myself in one go.

Builds on Linux & tests pass.

Committed an update to mesa which was needed as building with an old mesa was failing with the new LLVM.

Builds on Linux & tests pass. Committed an update to mesa which was needed as building with an old mesa was failing with the new LLVM.
Author
Owner

macOS is ok too with the latest change.

I suggest the following plan:

  • Ray checks everything is ok on Windows
  • I open a pull request for tmp_libupdate_41, verify it builds ok with current libs on buildbot, and land the changes in main
  • We all commits libraries as soon as we can, but we leave out changes to clang-format binary
  • Campbell and Ray attach the new Windows and Linux clang-format binaries to this issue
  • I commit the new clang-format binaries for all platforms and the corresponding make format changes at the same moment

@LazyDodo @ideasman42, what do you think?

macOS is ok too with the latest change. I suggest the following plan: * Ray checks everything is ok on Windows * I open a pull request for `tmp_libupdate_41`, verify it builds ok with current libs on buildbot, and land the changes in main * We all commits libraries as soon as we can, but we leave out changes to `clang-format` binary * Campbell and Ray attach the new Windows and Linux `clang-format` binaries to this issue * I commit the new `clang-format` binaries for all platforms and the corresponding `make format` changes at the same moment @LazyDodo @ideasman42, what do you think?
Member

That's pretty clever, sounds good!

Do you still want to turn ffmpeg shared on linux/mac? or do you want to carry that over to 4.2? (has always been shared on windows, no change there)

That's pretty clever, sounds good! Do you still want to turn ffmpeg shared on linux/mac? or do you want to carry that over to 4.2? (has always been shared on windows, no change there)
Author
Owner

I forgot about ffmpeg. I think just making LLVM dynamic is enough to fix #113892, and it's not so important to do the same for ffmpeg.

I forgot about ffmpeg. I think just making LLVM dynamic is enough to fix #113892, and it's not so important to do the same for ffmpeg.
Member

I open a pull request for tmp_libupdate_41, verify it builds ok with current libs on buildbot, and land the changes in main

It won't, I think we were a bit too enthusiastic requiring py 3.11 in the main CMakeLists.txt, this should probably be done "a little while"(tbd) after landing the lib update.

> I open a pull request for tmp_libupdate_41, verify it builds ok with current libs on buildbot, and land the changes in main It won't, I think we were a bit too enthusiastic requiring py 3.11 in the main CMakeLists.txt, this should probably be done "a little while"(tbd) after landing the lib update.
Author
Owner

@LazyDodo @ideasman42 right, I reverted that Python bump to 3.11 commit now.

@LazyDodo @ideasman42 right, I reverted that Python bump to 3.11 commit now.

@brecht sounds good, clang-format binary is self contained so this should work.

@brecht sounds good, `clang-format` binary is self contained so this should work.
Member

I have hit a snag, I have a single failing test on a single architecture, the trouble maker is

image

this renders like this on my ivy-lake box, on my Skylake-U this appears to render correctly using the same set of blender binaries

my first instinct was to disable the AVX2 kernel for cycles on the skylake box with CYCLES_CPU_NO_AVX2=1 to see if it started failing there, but still a good render, validated it was using the sse4 kernels

I1213 17:42:32.913323 17388 debug.cpp:32] Disabling avx2 instruction set.
I1213 17:42:33.116176 17388 device_impl.cpp:63] Using SSE4.1 CPU kernels.

well, i thought it was pretty clear at this point it HAS to be embree/ispc, as openvdb doesn't have any sse4/avx/avx2 specializations

disabled embree, logs mention .

I1213 18:46:35.137224 47056 geometry_bvh.cpp:127] Using BVH2 layout.

.....still blocks.... to be super sure made a build with WITH_CYCLES_EMBREE=Off and ......still blocks....

got a copy of SDE

on the ivy box emulating skylake using sde renders correctly
on the skylake box emulating ivy using sde renders..... correctly... (and yes, validated it was indeed using the sse4 kernels)

I'm stumped...

I have hit a snag, I have a single failing test on a single architecture, the trouble maker is ![image](/attachments/b6456006-2a93-4a94-90ea-866dc2a51ca5) this renders like this on my ivy-lake box, on my Skylake-U this appears to render correctly using the same set of blender binaries my first instinct was to disable the AVX2 kernel for cycles on the skylake box with ` CYCLES_CPU_NO_AVX2=1` to see if it started failing there, but still a good render, validated it was using the sse4 kernels ``` I1213 17:42:32.913323 17388 debug.cpp:32] Disabling avx2 instruction set. I1213 17:42:33.116176 17388 device_impl.cpp:63] Using SSE4.1 CPU kernels. ``` well, i thought it was pretty clear at this point it *HAS* to be embree/ispc, as openvdb doesn't have any sse4/avx/avx2 specializations disabled embree, logs mention . ``` I1213 18:46:35.137224 47056 geometry_bvh.cpp:127] Using BVH2 layout. ``` .....still blocks.... to be super sure made a build with `WITH_CYCLES_EMBREE=Off` and ......still blocks.... got a copy of [SDE](https://www.intel.com/content/www/us/en/download/684897/intel-software-development-emulator.html) on the ivy box emulating skylake using sde renders correctly on the skylake box emulating ivy using sde renders..... correctly... (and yes, validated it was indeed using the sse4 kernels) I'm stumped...
116 KiB
Member

Ivy Bridge has AVX but not AVX2. CYCLES_CPU_NO_AVX2 maybe doesn't do 100% of what it's supposed to do? I'm stumped it's happening with lib updates, as a next step I'd still recommend checking the openvdb upgrade in isolation?

Ivy _Bridge_ has AVX but not AVX2. `CYCLES_CPU_NO_AVX2` maybe doesn't do 100% of what it's supposed to do? I'm stumped it's happening with lib updates, as a next step I'd still recommend checking the openvdb upgrade in isolation?
Author
Owner

To be sure, is it really the new libraries that are causing the problem, or maybe it happens main / daily builds too and had not be discovered yet?

I completely changed the kernel side NanoVDB sampling in 8ba474d and 6cdb431 a few days ago.

To be sure, is it really the new libraries that are causing the problem, or maybe it happens `main` / daily builds too and had not be discovered yet? I completely changed the kernel side NanoVDB sampling in 8ba474d and 6cdb431 a few days ago.
Author
Owner

ASAN on Linux found some undefined behavior, looking into it, in the hope it fixes this problem.

ASAN on Linux found some undefined behavior, looking into it, in the hope it fixes this problem.
Member

To be sure, is it really the new libraries that are causing the problem, or maybe it happens main / daily builds too and had not be discovered yet?

I started my build validations by validating tmp_libupdate_41 builds against main libs, this was done against either 5a5561b3b5 or something really close to it and that passed all tests.

I'm still no closer to figuring out what's going on, but it appears the problem could be on the loading end of things, just opening up the test file with the UI gives a rather different looking result between the two archs

ivy skylake
image image
> To be sure, is it really the new libraries that are causing the problem, or maybe it happens main / daily builds too and had not be discovered yet? I started my build validations by validating `tmp_libupdate_41` builds against main libs, this was done against either 5a5561b3b59f1f570fdbebbd7bb3982c28752d1a or something really close to it and that passed all tests. I'm still no closer to figuring out what's going on, but it appears the problem could be on the loading end of things, just opening up the test file with the UI gives a rather different looking result between the two archs |ivy|skylake| |-|-| |![image](/attachments/112297c6-892b-4da9-ad61-1e6f89e7edce)|![image](/attachments/6604d840-a004-4382-8364-c5b74f7bc417)|
Author
Owner

ASAN on Linux found some undefined behavior, looking into it, in the hope it fixes this problem.

This was a false positive as far as I can tell. If the Blender viewport shows problem, it doesn't seem like a NanoVDB problem anyway, since that's not used there.

I looked through the OpenVDB changes between 10 and 11 but could not find anything particularly suspicious, although many lines of code changed.

Right now I don't have a better suggestion than bisecting the OpenVDB changes between v10 and v11.

> ASAN on Linux found some undefined behavior, looking into it, in the hope it fixes this problem. This was a false positive as far as I can tell. If the Blender viewport shows problem, it doesn't seem like a NanoVDB problem anyway, since that's not used there. I looked through the OpenVDB changes between 10 and 11 but could not find anything particularly suspicious, although many lines of code changed. Right now I don't have a better suggestion than bisecting the OpenVDB changes between v10 and v11.
Member

More of a status update than anything note worthy to report

  • Debug vs Release builds have the same behaviour
  • openvdb build with O2 vs O0 have the same behaviour
  • blender is in the clear, it's something on the openvdb side of things as i an repro with a small python script and the smoke file from the tests and running it with the regular python.exe
import pyopenvdb as vdb
import numpy as numpy 
grids, metadata = vdb.readAll('smoke.vdb')
grd = grids[0]
print(grd.evalActiveVoxelBoundingBox())
vecarray = numpy.ndarray((128, 256, 128), float)
vecarray.fill(0)
grd.copyToArray(vecarray)
print("min  :" , vecarray.min())
print("max  :" , vecarray.max())
print("mean :" , vecarray.mean())

Ivy:

((1, 2, 1), (111, 223, 112))
min  : -2.076918743413931e+34
max  : 2.076918743413931e+34
mean : -4.4096083063916935e+29

skylake:

((1, 2, 1), (111, 223, 112))
min  : 0.0
max  : 5.71484375
mean : 0.040888713722551984
More of a status update than anything note worthy to report - Debug vs Release builds have the same behaviour - openvdb build with O2 vs O0 have the same behaviour - blender is in the clear, it's something on the openvdb side of things as i an repro with a small python script and the smoke file from the tests and running it with the regular python.exe ``` import pyopenvdb as vdb import numpy as numpy grids, metadata = vdb.readAll('smoke.vdb') grd = grids[0] print(grd.evalActiveVoxelBoundingBox()) vecarray = numpy.ndarray((128, 256, 128), float) vecarray.fill(0) grd.copyToArray(vecarray) print("min :" , vecarray.min()) print("max :" , vecarray.max()) print("mean :" , vecarray.mean()) ``` Ivy: ``` ((1, 2, 1), (111, 223, 112)) min : -2.076918743413931e+34 max : 2.076918743413931e+34 mean : -4.4096083063916935e+29 ``` skylake: ``` ((1, 2, 1), (111, 223, 112)) min : 0.0 max : 5.71484375 mean : 0.040888713722551984 ```
Member

Update: problem found!

https://github.com/AcademySoftwareFoundation/Imath/blob/main/src/Imath/half.h#L332

__lzcnt is haswell+ , on ivy it executes without an invalid instruction exception, but performs a bitscanreverse instead source

i'm out of town for the weekend, but in a quicktest borrowing some cycles code

#    if defined(_MSC_VER) && (_M_IX86 || _M_X64)
        unsigned long leading_zero = 0;
        _BitScanReverse(&leading_zero, hexpmant);
        lc = (31 - leading_zero);
#    elif defined(__GNUC__) || defined(__clang__)

solves the issue in my test code, for blender we'll need to patch both openvdb (they copy/pasted a chuck of imath into their own source tree) and imath in the following locations

https://github.com/AcademySoftwareFoundation/Imath/blob/main/src/Imath/half.h#L332
https://github.com/AcademySoftwareFoundation/openvdb/blob/master/openvdb/openvdb/math/Half.h#L345

if no-one picks this off this weekend, i'll get that patched up on monday.

Update: problem found! https://github.com/AcademySoftwareFoundation/Imath/blob/main/src/Imath/half.h#L332 `__lzcnt` is haswell+ , on ivy it executes without an invalid instruction exception, but performs a bitscanreverse instead [source](https://learn.microsoft.com/en-us/cpp/intrinsics/lzcnt16-lzcnt-lzcnt64?view=msvc-170) i'm out of town for the weekend, but in a quicktest borrowing some cycles code ``` # if defined(_MSC_VER) && (_M_IX86 || _M_X64) unsigned long leading_zero = 0; _BitScanReverse(&leading_zero, hexpmant); lc = (31 - leading_zero); # elif defined(__GNUC__) || defined(__clang__) ``` solves the issue in my test code, for blender we'll need to patch both openvdb (they copy/pasted a chuck of imath into their own source tree) and imath in the following locations https://github.com/AcademySoftwareFoundation/Imath/blob/main/src/Imath/half.h#L332 https://github.com/AcademySoftwareFoundation/openvdb/blob/master/openvdb/openvdb/math/Half.h#L345 if no-one picks this off this weekend, i'll get that patched up on monday.
Author
Owner
Upstream fixes: https://github.com/AcademySoftwareFoundation/Imath/pull/358 https://github.com/AcademySoftwareFoundation/openvdb/pull/1733
Member

The upstream conversation reminds me, we still haven't bumped our flags to target sse42 (mostly since i didn't get word of this, the admin meeting notes where this got decided used the words "it was suggested" while someone attending the meeting a few weeks ago clarified this was actually decided) given this is not as easy as just "bump the flags in cmake" (as i very much would like to prevent a steady stream of "blender crashes at startup" tickets on the tracker) i'll make a design/discuss ticket next week and we'll target 4.2 for the actual bump?

The upstream conversation reminds me, we still haven't bumped our flags to target sse42 (mostly since i didn't get word of this, the admin meeting notes where this got decided used the words "it was suggested" while someone attending the meeting a few weeks ago clarified this was actually decided) given this is not as easy as just "bump the flags in cmake" (as i very much would like to prevent a steady stream of "blender crashes at startup" tickets on the tracker) i'll make a design/discuss ticket next week and we'll target 4.2 for the actual bump?
Author
Owner

Yes, I thought about that too. I don't think it's going to make a immediate big difference in performance to bump our flags to sse4.2 for external libraries, so not a big deal to postpone it. As far as I'm concerned we can even leave that for the end of next year, or whenever we happen to update many libraries and it doesn't add much extra work.

Updating Blender itself to sse4.2 could be done any time before that, but indeed a check in the Blender launchers on Windows and Linux would be good.

Yes, I thought about that too. I don't think it's going to make a immediate big difference in performance to bump our flags to sse4.2 for external libraries, so not a big deal to postpone it. As far as I'm concerned we can even leave that for the end of next year, or whenever we happen to update many libraries and it doesn't add much extra work. Updating Blender itself to sse4.2 could be done any time before that, but indeed a check in the Blender launchers on Windows and Linux would be good.

I'd like to request a bump of OIIO to 2.5.x. Ray provided a build for me to check and things seem fine wrt our tests and some cursory performance scenarios I tried.
This allows us to remove some of our patches, fixes an additional DDS bug, and provides a better base for some small tweaks and investigations I'd like to do early next year.

There is a bit of extra terminal spew that is solved with a tiny blender-side change that could wait until after the libs are committed as it doesn't impact the tests or performance.

I'd like to request a bump of OIIO to 2.5.x. Ray provided a build for me to check and things seem fine wrt our tests and some cursory performance scenarios I tried. This allows us to remove some of our patches, fixes an additional DDS bug, and provides a better base for some small tweaks and investigations I'd like to do early next year. There is a bit of extra terminal spew that is solved with a tiny blender-side change that could wait until after the libs are committed as it doesn't impact the tests or performance.
Author
Owner

Fine with me. I guess you already have the changes you can push to the branch?

Fine with me. I guess you already have the changes you can push to the branch?
Member

Applied the upstream patches for both openexr and imath, also bumped libxml2 as the version we had was leaking exports into the blender binary. which just leaves oiio to be dealt with.

@deadpin I can either land the patch you send me last week, or you can make whatever changes you need in the 41 temp branch your self, either way works for me just let us know.

Applied the upstream patches for both openexr and imath, also bumped libxml2 as the version we had was leaking exports into the blender binary. which just leaves oiio to be dealt with. @deadpin I can either land the patch you send me last week, or you can make whatever changes you need in the 41 temp branch your self, either way works for me just let us know.

@LazyDodo The patch from last week is good. Can you land it since you're already setup?

@LazyDodo The patch from last week is good. Can you land it since you're already setup?
Member

not a problem, on it done!

not a problem, ~~on it~~ done!
Member

@brecht took a bit but can confirm that with the current state of tmp_libupdate_41 all tests are passing on windows, there are no more outstanding issues that i'm aware of, I think we can proceed with your plan.

@brecht took a bit but can confirm that with the current state of `tmp_libupdate_41` all tests are passing on windows, there are no more outstanding issues that i'm aware of, I think we can proceed with your plan.
Author
Owner

The branch has been merged. Precompiled libraries can now be committed for all platforms, and remember to leave out clang-format.

I will do the macOS libraries in the week of January 2-5.

The branch has been merged. Precompiled libraries can now be committed for all platforms, and remember to leave out `clang-format`. I will do the macOS libraries in the week of January 2-5.

Committing 4.1 Linux libraries to SVN:

The clang-format has been held back, this is the newly built version for 4.1:
https://download.blender.org/ftp/ideasman42/temp/clang-format.xz

Committing 4.1 Linux libraries to SVN: The clang-format has been held back, this is the newly built version for 4.1: https://download.blender.org/ftp/ideasman42/temp/clang-format.xz
Member

here's mine

here's mine
Member

OIIO was including imath's half.h when it didn't need to, which lead to build errors on lite builds, this has been fixed already upstream in OIIO PR 4062 i added the PR to our build and validated the issue to be solved. this does however mean the linux/windows libs that already have landed need a rebuild.

OIIO was including imath's `half.h` when it didn't need to, which lead to build errors on lite builds, this has been fixed already upstream in [OIIO PR 4062](https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4062) i added the PR to our build and validated the issue to be solved. this does however mean the linux/windows libs that already have landed need a rebuild.

Looks like sse2neon has versioned if you want to swap the random hash for that: https://github.com/DLTcollab/sse2neon/releases/tag/v1.7.0

Looks like sse2neon has versioned if you want to swap the random hash for that: https://github.com/DLTcollab/sse2neon/releases/tag/v1.7.0
Member

I'll leave it up to @brecht as this doesn't affect linux+windows at this point, bumping it would require no rework there, if he has the libs done already just not uploaded, it's unlikely to be worth the trouble though.

I'll leave it up to @brecht as this doesn't affect linux+windows at this point, bumping it would require no rework there, if he has the libs done already just not uploaded, it's unlikely to be worth the trouble though.

this does however mean the linux/windows libs that already have landed need a rebuild.

Linux OIIO has been rebuilt.

> this does however mean the linux/windows libs that already have landed need a rebuild. Linux OIIO has been rebuilt.
Author
Owner

macOS libs, packages and clang format have all landed.

For macOS Arm, I'm still investigating some failing tests with sse2neon and maybe opensubdiv. For this reason the sse2neon update has been temporarily reverted.

macOS libs, packages and clang format have all landed. For macOS Arm, I'm still investigating some failing tests with sse2neon and maybe opensubdiv. For this reason the sse2neon update has been temporarily reverted.
Author
Owner

I'm not sure if it's completely new, but I'm noticing this message more after the Linux libs upgrade:

[ALSOFT] (EE) Failed to set real-time priority for thread: Operation not permitted (1)

Apparently this is solved since OpenAL 1.22.0, while we are on 1.21.1. We could upgrade.
https://github.com/kcat/openal-soft/issues/554

I'm not sure if it's completely new, but I'm noticing this message more after the Linux libs upgrade: ``` [ALSOFT] (EE) Failed to set real-time priority for thread: Operation not permitted (1) ``` Apparently this is solved since OpenAL 1.22.0, while we are on 1.21.1. We could upgrade. https://github.com/kcat/openal-soft/issues/554
Member

best to upgrade, even if it's a harmless warn, people reporting on the tracker generally latch on to the first failure they see which in this case is a bit of a red herring

best to upgrade, even if it's a harmless warn, people reporting on the tracker generally latch on to the first failure they see which in this case is a bit of a red herring

Confirmed the error happens on Linux & updating resolves the problem.
Submitted a PR that uses the latest version of OpenAL !116877.

Confirmed the error happens on Linux & updating resolves the problem. Submitted a PR that uses the latest version of OpenAL !116877.
Author
Owner

@LazyDodo @ideasman42 I updated the to do list for opencolorio, openimagedenoise and level zero changes.

I will land the macOS libs shortly.

@LazyDodo @ideasman42 I updated the to do list for opencolorio, openimagedenoise and level zero changes. I will land the macOS libs shortly.
Author
Owner

Also, I had to make a change to our pystring patch to get OpenColorIO to build. So if you are doing some partial update to an existing build folder, be sure to rebuild that as well or you might get a build error in OpenColorIO.

Also, I had to make a change to our pystring patch to get OpenColorIO to build. So if you are doing some partial update to an existing build folder, be sure to rebuild that as well or you might get a build error in OpenColorIO.
Author
Owner

@LazyDodo @ideasman42 there's a patch for dpcpp now as well, hopefully not too much work to include that too.

@LazyDodo @ideasman42 there's a patch for dpcpp now as well, hopefully not too much work to include that too.

Not sure when it will next version (a question for the intel guys maybe), but the next release of OIDN2 (commits currently in devel branch) has ARM64 support which would be extremely useful to me if we could get it included!

Also has a bunch of speedups for x64 CPU denoising, and has removed DNNL completely, so a bit more lighweight also AFAICT.

Not sure when it will next version (a question for the intel guys maybe), but the next release of OIDN2 (commits currently in devel branch) has ARM64 support which would be extremely useful to me if we could get it included! Also has a bunch of speedups for x64 CPU denoising, and has removed DNNL completely, so a bit more lighweight also AFAICT.
Member

we've bumped to the 2.2RC a few days ago, which i think includes all of that?

we've bumped to the 2.2RC a few days ago, which i think includes all of that?

You're absolutely right, apparently I managed to completely miss that - will rework my stuff for it

You're absolutely right, apparently I managed to completely miss that - will rework my stuff for it
Blender Bot added the
Status
Archived
label 2024-04-23 12:23:37 +02:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
7 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#113157
No description provided.