summaryrefslogtreecommitdiff
path: root/media-libs
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-04-02 14:14:14 +0100
committerV3n3RiX <venerix@koprulu.sector>2024-04-02 14:14:14 +0100
commit29e3ef4590d6bee24c4a3798d12a3cfef750bd54 (patch)
tree69809f1aec2e43091c328b92a308318c4c3affab /media-libs
parent77ebfe74c4b5125f8717ec29632589942911c594 (diff)
gentoo auto-resync : 02:04:2024 - 14:14:14
Diffstat (limited to 'media-libs')
-rw-r--r--media-libs/Manifest.gzbin69516 -> 69516 bytes
-rw-r--r--media-libs/embree/Manifest6
-rw-r--r--media-libs/embree/embree-4.3.1.ebuild (renamed from media-libs/embree/embree-4.3.0.ebuild)54
-rw-r--r--media-libs/embree/files/embree-4.3.1-dont-install-tutorials.patch (renamed from media-libs/embree/files/embree-4.3.0-dont-install-tutorials.patch)13
-rw-r--r--media-libs/oidn/Manifest5
-rw-r--r--media-libs/oidn/files/oidn-2.2.2-amdgpu-targets.patch46
-rw-r--r--media-libs/oidn/metadata.xml3
-rw-r--r--media-libs/oidn/oidn-2.2.2.ebuild95
-rw-r--r--media-libs/openpgl/Manifest2
-rw-r--r--media-libs/openpgl/openpgl-0.5.0.ebuild2
-rw-r--r--media-libs/osl/Manifest6
-rw-r--r--media-libs/osl/metadata.xml5
-rw-r--r--media-libs/osl/osl-1.12.14.0-r1.ebuild384
-rw-r--r--media-libs/osl/osl-1.13.7.0.ebuild453
-rw-r--r--media-libs/osl/osl-9999.ebuild443
15 files changed, 1494 insertions, 23 deletions
diff --git a/media-libs/Manifest.gz b/media-libs/Manifest.gz
index 8e1d57fa7303..23c0a3382f0b 100644
--- a/media-libs/Manifest.gz
+++ b/media-libs/Manifest.gz
Binary files differ
diff --git a/media-libs/embree/Manifest b/media-libs/embree/Manifest
index e2a05e34260f..37e63a88b227 100644
--- a/media-libs/embree/Manifest
+++ b/media-libs/embree/Manifest
@@ -1,11 +1,11 @@
AUX embree-3.13.4-fix-openimageio-test.patch 4663 BLAKE2B 2b6a5422f51977317c1149673bc8624f56d363d8362f2d3678c86e661d1f9eb6a2319df241d736a0da8e586d86fa6ff524c3fc98fe564f511551efe756b80d7c SHA512 b3b414f8068af8f45ceca91653b9e8cd2f06cfd7cafbd25a9b97ac6e3f30a27f22bbb121be34ee154e9910d3668f798d226199a843316762486ae85685a2ee9d
AUX embree-3.13.5-fix-arm64.patch 2739 BLAKE2B 9e636bc3f4e49564f156cc977c98466bb58efe772af099143feac8e887cb81b9124332268f08cc11e72e9fb4d316f20a44bda7e7a96c906e7091f19fc0408d21 SHA512 392848fce7faf2085eb1b06bd7c7490fd4f0e356d30f9967b18013376ab7f64e9b31bd4144ddbb1b5492c560044b354382fbdbc9377e7736961fe2dd37f893fe
AUX embree-3.13.5-fix-openimageio-test.patch 4526 BLAKE2B c1560a8122df45ad860ac9d19108cdc4920ab2e4d06c6ba968d6c43e88e4c6d47c26a463abf0f21db8290572172b6448b4ec579b6df9875b4e55688191cfed13 SHA512 f40d3cbcd62f16aea89e3d1873dccf020a2aa07679f5f99ae47f3fcc9e66dab9f2422c713a8cbc39dd1c09a2a838e3dbb4b859c785f503a154eee4cc244a3cc8
-AUX embree-4.3.0-dont-install-tutorials.patch 10219 BLAKE2B ec34fb2456972bb09dd5ce64fa771160b57f4266b834ba92542303817a799c1c2c799e99e3948f779fab3829d25e4776d603dcb6d7828f7505aeb1c9fe1e3a32 SHA512 b0a1bebce5ba6647969552ba1d5061ad8aa7db79fd5f8dc8ba4417b4749811ea2f0076359a61e0cd8bfd46e80e72af3cc6a6212a55e9690b45e45d013e270ae0
+AUX embree-4.3.1-dont-install-tutorials.patch 10020 BLAKE2B ec13bf359eb36059062df7ff1ec3dc9b96d5a3a24cf3de7462200fd5e9759c2697906a407909b6ada4c92a922da3b860e04953e8000d33fa49ba6173e03853be SHA512 82363ace042d6962f3e693178579b1deca709fd6de89b4e893f954b8ca15e17cc76bbb7c0ab0b89a7c91668029d257eee15d1ca86165d659daab120bbd23c4f2
DIST embree-3.13.4.tar.gz 13733908 BLAKE2B 4c6c24f62ee88a09149bd930716c71e91d54563eea5cc103c0346d3808c693e8470fc7ea98651e0df9e4423bda565d7ab1a23e16c9d0441c79e9ec9c8571b0fa SHA512 685c3935fabe1bfa7260ef148df26b686b085b75011d72011461471cbcef786a5ce7a0e85c57b2df05798489a2d4e80a8d3ee5df986029edad7df7511d99c0ca
DIST embree-3.13.5.tar.gz 13739115 BLAKE2B 52ad8e3520aa789f7987467c6979be06f883803757e842316ecf708deeed11214dd60570eda5708e701047b1a14ea37710d158df544817dc536bfda444a68218 SHA512 13ae19b1750197fb4887ba601c75d1b54b3c388224672b6561dd922bc9b9747139cf46ce554727e3afa13dcf152ce4d703935cb9105ced792b011f2d05fa3e95
-DIST embree-4.3.0.tar.gz 71028239 BLAKE2B 7834ed7851d36c32ce3e88a3ddb02e8316422699ec78a662ef81ef0eb9f66b260ce2f7438739531e2b63f817a931a19ba35da156e8e09a42a78e6c077314e615 SHA512 8f61401175464b34243e899464f44a196b520c08e1c44a417bf980cfa7b191859bbaab1029278123654e5ffb91e2f8a85af1d881affddcc7e344a7e8a8066262
+DIST embree-4.3.1.tar.gz 71110988 BLAKE2B 0ab183fe8fae3948b319c74a922c001d0567d223adab74da3a0f55fd4e4fd5c2c17afeb065da706d411238b7877e208e7041aad9430f109e606ed1a9dd23646f SHA512 da7710c6dfaa90970c223a503702fc7c7dd86c1397372b3d6f51c4377d28d8e62b90ee8c99b70e3aa49e16971a5789bb8f588ea924881b9dd5dd8d5fcd16518a
EBUILD embree-3.13.4.ebuild 3921 BLAKE2B ead945d61e7a2d09f42696fae28dae644a2a6cdcf6f525ab544f5b070c892b20d83c05c4363f2ae38f3719516ca275b1e7f4c310cc87f5cb618dc070c50b5759 SHA512 bb4f5fecceb3ff58e0ea55ce14a864fc7200833178e4e2e5f694a4840451b79c79d749bc9ea460e207daf8bf9ee49c9d19d344a69e78cbb8088c0abb35d32b85
EBUILD embree-3.13.5.ebuild 3864 BLAKE2B 3f461c95f8fddceccc32d73be5d5e2e47badfdd72cd34b464a5d85e2eb7e1251c6eb8c7ca4669fc7e6b3172f7eca9cb674254d64d3a0cd94bd83ae4e6170927c SHA512 d8081f7e2cd73825cc322b9843e64bf8bd0bd123b7ab7c87dc4e19daa5bce17589e434c129e3b1e30232a3bc6a54496a5635ce9d94a20ca3345e8c9ccb14bcf0
-EBUILD embree-4.3.0.ebuild 3544 BLAKE2B a05f9935034074cad3af13b4eb0e0b2dd5d443603660476c3d8a6d8fa88a79123f31320ae2e2b6a19fbfc350457e91dde3c29451080fc2233f0d02c3ab099622 SHA512 517f3c94682bfc2f255322fd5cb972671c4bdf10264580c62b55c5ff9bd98216078a5489b87a90d9b9eb23d5ee05b803d5d6f67dfa3c058a301806a395fccabe
+EBUILD embree-4.3.1.ebuild 5293 BLAKE2B 68660984698395d7d241beeda4deb7b675bf8e31e22ddf1bba090c7d4109d281258783886a1e6f721ecdb1165038801fda632e1f3e688e68f9078311d2098a7d SHA512 a4b55b55e55d2db9e3d96723d9ce13afab31d02c5ad7e1f7ad9f913deee0fc404fa70d08e9ee24b6280426cae9777f1f19e563464a2591837146f4fd726a6b55
MISC metadata.xml 1705 BLAKE2B 2785c8b8752e5730e014ce6edfdd1702a20565ab12c9ebee14c3cf603e267a63360eaa0428afb9e178091edad40fe82ea55e2a872339da744113e480b4eda6c2 SHA512 ebfa1a6d3f8a8fe6acc0cc06f54ad62efb86942b55e985542a049fde421663adddcffe2a78c7309774df9bbc714a2bb11dad73c94b89bf2d1cdf56b69d334f59
diff --git a/media-libs/embree/embree-4.3.0.ebuild b/media-libs/embree/embree-4.3.1.ebuild
index 04ed9ac7aeb6..4587a4b2855a 100644
--- a/media-libs/embree/embree-4.3.0.ebuild
+++ b/media-libs/embree/embree-4.3.1.ebuild
@@ -10,13 +10,16 @@ HOMEPAGE="https://github.com/embree/embree"
SRC_URI="https://github.com/embree/embree/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="Apache-2.0"
-SLOT="3"
+SLOT="$(ver_cut 1)"
KEYWORDS="-* ~amd64 ~arm64"
X86_CPU_FLAGS=( sse2 sse4_2 avx avx2 avx512dq )
-CPU_FLAGS=( cpu_flags_arm_neon ${X86_CPU_FLAGS[@]/#/cpu_flags_x86_} )
-IUSE="compact-polys ispc +raymask ssp +tbb test ${CPU_FLAGS[@]}"
+CPU_FLAGS=( cpu_flags_arm_neon "${X86_CPU_FLAGS[@]/#/cpu_flags_x86_}" )
+IUSE="compact-polys ispc +raymask ssp +tbb test ${CPU_FLAGS[*]}"
RESTRICT="!test? ( test )"
-REQUIRED_USE="|| ( ${CPU_FLAGS[@]} )"
+REQUIRED_USE="
+ amd64? ( || ( ${X86_CPU_FLAGS[*]/#/cpu_flags_x86_} ) )
+ arm64? ( cpu_flags_arm_neon )
+"
BDEPEND="
virtual/pkgconfig
@@ -30,7 +33,7 @@ DEPEND="${RDEPEND}"
DOCS=( CHANGELOG.md README.md readme.pdf )
PATCHES=(
- "${FILESDIR}"/embree-4.3.0-dont-install-tutorials.patch
+ "${FILESDIR}/embree-4.3.1-dont-install-tutorials.patch"
)
pkg_setup() {
@@ -46,6 +49,15 @@ src_prepare() {
# disable RPM package building
sed -e 's|CPACK_RPM_PACKAGE_RELEASE 1|CPACK_RPM_PACKAGE_RELEASE 0|' \
-i CMakeLists.txt || die
+
+ # raise cmake minimum version to silence warning
+ sed -e 's#CMAKE_MINIMUM_REQUIRED(VERSION 3.[0-9].0)#CMAKE_MINIMUM_REQUIRED(VERSION 3.5)#I' \
+ -i \
+ CMakeLists.txt \
+ kernels/rthwif/CMakeLists.txt \
+ tutorials/embree_info/CMakeLists.txt \
+ tutorials/minimal/CMakeLists.txt \
+ || die
}
src_configure() {
@@ -94,6 +106,9 @@ src_configure() {
-DEMBREE_ISPC_SUPPORT=$(usex ispc)
-DEMBREE_RAY_MASK=$(usex raymask)
+ # TODO figure out sycl support
+ -DEMBREE_SYCL_SUPPORT="no"
+
-DEMBREE_STACK_PROTECTOR=$(usex ssp)
-DEMBREE_STATIC_LIB=OFF
-DEMBREE_TASKING_SYSTEM:STRING=$(usex tbb "TBB" "INTERNAL")
@@ -116,8 +131,37 @@ src_configure() {
-DEMBREE_TUTORIALS_LIBJPEG=OFF
-DEMBREE_TUTORIALS_LIBPNG=OFF
-DEMBREE_TUTORIALS_OPENIMAGEIO=OFF
+ -DCMAKE_DISABLE_FIND_PACKAGE_OpenImageIO="yes"
)
fi
cmake_src_configure
}
+
+src_test() {
+ # NOTE Some Embree tests will fail due to EMBREE_BACKFACE_CULLING settings for blender...
+ local CMAKE_SKIP_TESTS=(
+ '^embree_verify$'
+ '^embree_verify_i2$'
+ '^viewer_models_curves_round_line_segments_3.ecs$'
+ '^viewer_models_curves_round_line_segments_7.ecs$'
+ '^viewer_models_curves_round_line_segments_8.ecs$'
+ '^viewer_models_curves_round_line_segments_9.ecs$'
+ '^viewer_coherent_models_curves_round_line_segments_3.ecs$'
+ '^viewer_coherent_models_curves_round_line_segments_7.ecs$'
+ '^viewer_coherent_models_curves_round_line_segments_8.ecs$'
+ '^viewer_coherent_models_curves_round_line_segments_9.ecs$'
+ '^viewer_quad_coherent_models_curves_round_line_segments_3.ecs$'
+ '^viewer_quad_coherent_models_curves_round_line_segments_7.ecs$'
+ '^viewer_quad_coherent_models_curves_round_line_segments_8.ecs$'
+ '^viewer_quad_coherent_models_curves_round_line_segments_9.ecs$'
+ '^viewer_grid_coherent_models_curves_round_line_segments_3.ecs$'
+ '^viewer_grid_coherent_models_curves_round_line_segments_7.ecs$'
+ '^viewer_grid_coherent_models_curves_round_line_segments_8.ecs$'
+ '^viewer_grid_coherent_models_curves_round_line_segments_9.ecs$'
+ '^hair_geometry$'
+ '^embree_tests$'
+ )
+
+ cmake_src_test
+}
diff --git a/media-libs/embree/files/embree-4.3.0-dont-install-tutorials.patch b/media-libs/embree/files/embree-4.3.1-dont-install-tutorials.patch
index 8643c7168a71..5f26533c5c44 100644
--- a/media-libs/embree/files/embree-4.3.0-dont-install-tutorials.patch
+++ b/media-libs/embree/files/embree-4.3.1-dont-install-tutorials.patch
@@ -16,7 +16,7 @@ diff --git a/common/cmake/package.cmake b/common/cmake/package.cmake
index f7a182f7f..92ac45de0 100644
--- a/common/cmake/package.cmake
+++ b/common/cmake/package.cmake
-@@ -145,7 +145,7 @@ ENDIF()
+@@ -151,7 +151,7 @@ ENDIF()
# Install Models
##############################################################
@@ -113,8 +113,8 @@ diff --git a/tutorials/embree_info/CMakeLists.txt b/tutorials/embree_info/CMakeL
index fa8b74b89..6d10279ff 100644
--- a/tutorials/embree_info/CMakeLists.txt
+++ b/tutorials/embree_info/CMakeLists.txt
-@@ -18,8 +18,10 @@ ADD_EXECUTABLE(embree_info embree_info.cpp)
- TARGET_LINK_LIBRARIES(embree_info embree)
+@@ -22,8 +22,10 @@ ELSE()
+ ENDIF()
SET_PROPERTY(TARGET embree_info PROPERTY FOLDER tutorials/single)
-INSTALL(TARGETS embree_info DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT examples)
@@ -126,13 +126,6 @@ index fa8b74b89..6d10279ff 100644
IF (EMBREE_SYCL_SUPPORT)
SET_PROPERTY(TARGET embree_info APPEND PROPERTY COMPILE_FLAGS "-fsycl -Xclang -fsycl-allow-func-ptr -fsycl-targets=spir64")
-@@ -31,4 +33,4 @@ IF (COMMAND SIGN_TARGET)
- SIGN_TARGET(embree_info)
- ENDIF()
-
--ENDIF()
-\ No newline at end of file
-+ENDIF()
diff --git a/tutorials/embree_tests/CMakeLists.txt b/tutorials/embree_tests/CMakeLists.txt
index ab62b1954..b3647bc2d 100644
--- a/tutorials/embree_tests/CMakeLists.txt
diff --git a/media-libs/oidn/Manifest b/media-libs/oidn/Manifest
index 62120afe6dfa..cc62d6dfbced 100644
--- a/media-libs/oidn/Manifest
+++ b/media-libs/oidn/Manifest
@@ -1,8 +1,11 @@
AUX oidn-2.1.0-amdgpu-targets.patch 2239 BLAKE2B 292b06c363157e42e43a03e237ed72d7d08cfb4cade8614908e5d5014c08cb6e77d936d3f33767c1c0a23bea5aa6df9a511381bf57dd7a23a236e1d689dd07ca SHA512 3fc3fc54cd1155c3142b04f75e5b038b347e4e84deab885a3ffed88b635df21a5d9148b0d7c9e1ca800c2a1826dffd9b99c1e2e9413e35687b97bf316ffd9373
+AUX oidn-2.2.2-amdgpu-targets.patch 2300 BLAKE2B eaddfe6493394c65b6960450ed3b9f60b26165687862c7ab51f8c8a97ae723e8bc887f082ac3f892ddba78e056e40e85fa5806e2d89d5ec32f8e80c1b4f6d6f9 SHA512 43b026e64e6e1f23ab6eacea0f1205ba4fd08dee30a5ad6e0e53b914ef04b8cfef01ba5fc736f355d5592c883f2319d83ebb239f84fdf3acf0e1ae2ca5cd5ef1
DIST oidn-1.4.2.tar.gz 54221996 BLAKE2B bb6593e2e15877f65d9224fc93dac72aff6d567a00d727b050a88a1add4dc1441e695dc38056dd796e004e20916054b43ed7d0e90f22a16597f6617cf6a119e7 SHA512 8b464cedc91ef7a88cfc97c3fde80275b12058cdd26b352718d90f8f20b3462c4ac65b2b1ad5548a520590fbd015fcc8ab9f964633bc8b89d72901fe8a13e352
DIST oidn-1.4.3.tar.gz 54222682 BLAKE2B f9b585c318258fd78e221a453b64e83965a3e5035a912baa49e4d5b48466441bf1d3c15291de2cd4d36e9da187ff7a643bb9d4af5282cdbb8b6bc99fb3cda0d0 SHA512 6fbdf347763c0734140195a523cf0878b1dbd91d4943c9ce4928f6991549f8b3d5ab4d57b90e20a8d04a87d00e3a1554ce73a3a3c1e64fcb016a3c1f8aa07982
DIST oidn-2.1.0.tar.gz 48977314 BLAKE2B 0fc32697df7fc6b8b367a78312a5b16ab68a5c88a2d19a8780e9de87c7e7096d7fe43dbd07928f2eba44c62fb4545338fc92f918dd4c33623259d0088a06a854 SHA512 508cb100f1a0a825774c2c01e0fc983e697341745fa0bfa48a99bfa70fc431f66fcdf17c3f170e40baefd7c3796a25d147f49cb17efbf1a1886556367c5c4566
+DIST oidn-2.2.2.tar.gz 49006605 BLAKE2B e3d32cc2112ded280e642c5d69fb2ef14db59df4f5224bff79e82ede207899c9dbfa43dc663ad9ccc15a6497e363df0b91b43660729962c410b7ec75ac1b3465 SHA512 eca18e9e22a40bc1381e75985e5f5e79f48cc6d168a2a703e54540967646487d347db290459e9a612d8ab4924e8d3c83d84664fd5318cca4f17745da1e47cf50
EBUILD oidn-1.4.2.ebuild 707 BLAKE2B c8c98d1a61c78ae0524100200c9eb02c5d700e6afe043084d30910f822b1e5fb06c41d915ad4c85d213807484199d1d89ae72e86bc723a807015f9a76268f5b7 SHA512 06b247c86ffab4c4bb7ca0e9c9ebb6a20057a3eff294995eb9062c086b7d7e41f3d9e39e1e89c69924a76d5aaea41c5a8e1319a18f77e1a53b6d9bd9e58ea874
EBUILD oidn-1.4.3.ebuild 709 BLAKE2B 83d6551d7c82d920a8339ff43a7ec966e4cd0179b5c0077624b889b600e9123de4cbb690003fffceed311928c333059c22e8f5e397c20763bdfeac47a2f32843 SHA512 90bcc6567182303fc1d15aee57784538e784c5eaae4c80abbc6d0d195162ffb9dd0b0dcfdd05bacea5895df060cd3946d34de2d01ae3f76dfdcc6cc80476d5f3
EBUILD oidn-2.1.0.ebuild 1541 BLAKE2B 4acca5cb50fb55ca815cf9223f4369222b7e52d0ffe2a32e9a8ae07d73590abc606e7d766d575c651e56995e54d29fcd7fe62fb4a3982148f29a49191a3cb2ff SHA512 4b0a917c7c4bcf58cbe2c2bfff6a45cdf57a2b5d4828ef4b8ee1ee74e145593a4b0418181483e36eb3bf83061643ba62fb2c19b40220e0dccc37356ae6de016a
-MISC metadata.xml 934 BLAKE2B 7f02f70c612c4a735cf3cb5b82628ca344bbeffed6f3cfa4edc1a0b006a87ff39ccf8462ef7c99aed909ee4bfbe3caa271b838f20307525449842f92cb276b15 SHA512 4b1eb1c719c01bd9e07b190e6a0b87c7095350bf683755f0e54fbd72dbd4ff695f2ff656850e397bbde4d347f370c89ec5fc9f888f13468568294a9a1a269c80
+EBUILD oidn-2.2.2.ebuild 2000 BLAKE2B c6643495f3ace4d382e4ab655e4e9e2409bed11752dedf3c96645ad1a30ab3304bffd1a7734e8731b0433f9b979f71ebfa56d607ca95c96496e78acce8b0f933 SHA512 898d4763a9d78788fc2c3887b5c2b6e1c685852c75e9df44d9d0cbd06966e2de8d38e99d5f526b8e0c53b076d3767c5f1a5a6236b74eb88407dabbe99dc07eb6
+MISC metadata.xml 1002 BLAKE2B 09f5331ff0755f9d90597922ee23547ba27ba799bc75e7371bc43c9127e5d9b04954fb9741adb8df264b151afac78e1f51d157fdd2a917b3fd7bd4247fe0bf90 SHA512 8facceffdbe156e4216d70cce518d0bc4806b82fa58aa23f1a2feab7f29543d53cb79f91e525f67cd994e5d328a646cf47321fd054a4d37a2b2dcfb35aa2c318
diff --git a/media-libs/oidn/files/oidn-2.2.2-amdgpu-targets.patch b/media-libs/oidn/files/oidn-2.2.2-amdgpu-targets.patch
new file mode 100644
index 000000000000..4a6c2ce607c2
--- /dev/null
+++ b/media-libs/oidn/files/oidn-2.2.2-amdgpu-targets.patch
@@ -0,0 +1,46 @@
+Allow specifying AMDGPU_TARGETS with CMake flags.
+Fix build when main compiler is set to GCC.
+--- a/devices/CMakeLists.txt
++++ b/devices/CMakeLists.txt
+@@ -129,6 +129,10 @@ if(OIDN_DEVICE_HIP)
+ )
+ mark_as_advanced(OIDN_DEVICE_HIP_COMPILER)
+
++ set(AMDGPU_TARGETS "gfx1030;gfx1031;gfx1032;gfx1033;gfx1034;gfx1035;gfx1036;gfx1100;gfx1101;gfx1102;gfx1103" CACHE STRING "AMD GPU targets to compile for")
++ mark_as_advanced(AMDGPU_TARGETS)
++ message(STATUS "AMD targets: ${AMDGPU_TARGETS}")
++
+ # Add ROCm to CMAKE_PREFIX_PATH
+ set(_hip_prefix_path CMAKE_PREFIX_PATH)
+ list(APPEND _hip_prefix_path ${ROCM_PATH}/hip ${ROCM_PATH})
+@@ -143,7 +147,6 @@ if(OIDN_DEVICE_HIP)
+ CMAKE_CACHE_ARGS
+ -DCMAKE_PREFIX_PATH:STRING=${_hip_prefix_path_str}
+ -DCMAKE_CXX_COMPILER:FILEPATH=${OIDN_DEVICE_HIP_COMPILER}
+- -DCMAKE_TOOLCHAIN_FILE:FILEPATH=${CMAKE_TOOLCHAIN_FILE}
+ -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+ -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_CURRENT_BINARY_DIR}/hip/preinstall
+ -DCMAKE_INSTALL_BINDIR:PATH=${CMAKE_INSTALL_BINDIR}
+@@ -155,6 +158,9 @@ if(OIDN_DEVICE_HIP)
+ -DOIDN_API_NAMESPACE:STRING=${OIDN_API_NAMESPACE}
+ -DOIDN_WARN_AS_ERRORS:BOOL=${OIDN_WARN_AS_ERRORS}
+ -DOIDN_SANITIZER:STRING=${OIDN_SANITIZER}
++ -DGPU_TARGETS:STRING=${AMDGPU_TARGETS}
++ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
++ -G "${CMAKE_GENERATOR}"
+ BUILD_ALWAYS TRUE
+ DEPENDS
+ OpenImageDenoise_core
+--- a/devices/hip/CMakeLists.txt
++++ b/devices/hip/CMakeLists.txt
+@@ -25,8 +25,8 @@ include(oidn_common_external)
+ # FIXME: Older versions of the HIP runtime have a bug which may cause a crash if the kernels are
+ # not compiled for all targets detected in the system (it seems mostly APUs/integrated GPUs).
+ # As a workaround, we compile for more targets then we actually support to avoid this crash.
+-set(GPU_TARGETS "gfx902,gfx909,gfx90c,gfx1030,gfx1031,gfx1032,gfx1033,gfx1034,gfx1035,gfx1036,gfx1100,gfx1101,gfx1102,gfx1103" CACHE INTERNAL "")
+-set(AMDGPU_TARGETS ${GPU_TARGETS} CACHE INTERNAL "")
++set(GPU_TARGETS "gfx902,gfx909,gfx90c,gfx1030,gfx1031,gfx1032,gfx1033,gfx1034,gfx1035,gfx1036,gfx1100,gfx1101,gfx1102,gfx1103" CACHE STRING "")
++set(AMDGPU_TARGETS ${GPU_TARGETS} CACHE STRING "")
+
+ # Find HIP
+ find_package(hip REQUIRED)
diff --git a/media-libs/oidn/metadata.xml b/media-libs/oidn/metadata.xml
index 448ccc40008f..228559585b99 100644
--- a/media-libs/oidn/metadata.xml
+++ b/media-libs/oidn/metadata.xml
@@ -21,6 +21,9 @@
<flag name="hip">
Build OIDN with AMD HIP support.
</flag>
+ <flag name="openimageio">
+ Enable OpenImageIO Support
+ </flag>
</use>
<upstream>
<remote-id type="github">OpenImageDenoise/oidn</remote-id>
diff --git a/media-libs/oidn/oidn-2.2.2.ebuild b/media-libs/oidn/oidn-2.2.2.ebuild
new file mode 100644
index 000000000000..27bf11543fa8
--- /dev/null
+++ b/media-libs/oidn/oidn-2.2.2.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+LLVM_COMPAT=( {15..17} )
+ROCM_VERSION=5.7
+
+inherit cuda cmake python-single-r1 llvm-r1 rocm
+
+DESCRIPTION="Intel(R) Open Image Denoise library"
+HOMEPAGE="https://www.openimagedenoise.org/"
+
+if [[ ${PV} = *9999 ]]; then
+ EGIT_REPO_URI="https://github.com/OpenImageDenoise/oidn.git"
+ EGIT_BRANCH="master"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/OpenImageDenoise/${PN}/releases/download/v${PV}/${P}.src.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ test? ( apps )
+"
+IUSE="apps cuda hip openimageio test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ dev-cpp/tbb:=
+ dev-lang/ispc
+ cuda? ( dev-util/nvidia-cuda-toolkit )
+ hip? ( dev-util/hip )
+ openimageio? ( media-libs/openimageio:= )
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.2.2-amdgpu-targets.patch"
+)
+
+src_prepare() {
+ if use cuda; then
+ cuda_src_prepare
+ addpredict "/proc/self/task/"
+ fi
+
+ sed -e "/^install.*llvm_macros.cmake.*cmake/d" -i CMakeLists.txt || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DOIDN_APPS="$(usex apps)"
+ -DOIDN_APPS_OPENIMAGEIO="$(usex apps "$(usex openimageio)")"
+
+ -DOIDN_DEVICE_CPU="yes"
+ -DOIDN_DEVICE_CUDA="$(usex cuda)"
+ -DOIDN_DEVICE_HIP="$(usex hip)"
+ # -DOIDN_DEVICE_SYCL="$(usex sycl)"
+ )
+
+ if use cuda; then
+ export CUDAHOSTCXX="$(cuda_gccdir)"
+ fi
+
+ if use hip; then
+ mycmakeargs+=(
+ -DROCM_PATH="${EPREFIX}/usr"
+ -DOIDN_DEVICE_HIP_COMPILER="$(get_llvm_prefix)/bin/clang++" # use HIPHOSTCOMPILER
+ -DAMDGPU_TARGETS="$(get_amdgpu_flags)"
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_test() {
+ "${BUILD_DIR}"/oidnTest || die "There were test faliures!"
+}
+
+src_install() {
+ cmake_src_install
+
+ if use hip || use cuda ; then
+ # remove garbage in /var/tmp left by subprojects
+ rm -rf "${ED}"/var || die
+ fi
+}
diff --git a/media-libs/openpgl/Manifest b/media-libs/openpgl/Manifest
index d40711308150..3e7bcb1c95b4 100644
--- a/media-libs/openpgl/Manifest
+++ b/media-libs/openpgl/Manifest
@@ -1,3 +1,3 @@
DIST openpgl-0.5.0.tar.gz 10767365 BLAKE2B 051b26c17300506dd20989ba9dc1aa83b0baf77c5f24650c74518ae56081b5a0ecca88c13d5d79a71cb0b6fa4a5b4841ee03e5223ec91ab16bb5655f2e52a9d7 SHA512 9b992ffa17ad6f9fcde48add5d9cc1e58be2daacd40478fb1babe0741a6c7a64f12f36c9c1f7d5ec6f79cdd847c082d39e03e58cfd9af1a903adca56f1ac19e1
-EBUILD openpgl-0.5.0.ebuild 1180 BLAKE2B 1005036c59886c341889a3db6613a0681038e8cb17e085cc30900ad6dcc750cbac8917ff66164f67b366672df46dfb8b8c172a1401d21d53bebd8b39ca629912 SHA512 991ae41643fc1c3a435ff44c118e554ab38f6861d620bfb83ccf01366a273962b38cb54aefe4c7ae97dfee2903613930ef6c114f655c538cca0cbcea2b9757e8
+EBUILD openpgl-0.5.0.ebuild 1182 BLAKE2B 40fc93a5719594cc55eed9eed8755e2693af6a8e2235629752a3998cfe4f68187045ba37c1b37a6d07d55a68644571f3d436b771ed8da44794d871844d3c915f SHA512 347ef4d8905378fdf5ba76a18a8a680fc4425a50aee17087e9896f34206ec29a03755f1215077f5f513b49d98771cd3d0c7632feffa205cd69e495ed686e8689
MISC metadata.xml 1011 BLAKE2B c88245ac6d49bf09e2a96754713dcf088ec1ba4700713d2551a8af4f9c509553edbde8e9775fb1bc410b2eec742df26527b07d5cd36194ae5a2b4c5c018b51b1 SHA512 ff6c48d3db9dfd2737410f5d689d08fcb49a062bc291eb0e5442851037723a701629c13d44929b6812df5098adda7695b1edbd1bae9ed3cca63cf04b710cfdf2
diff --git a/media-libs/openpgl/openpgl-0.5.0.ebuild b/media-libs/openpgl/openpgl-0.5.0.ebuild
index 02987ca560ce..2ee1fc5e7840 100644
--- a/media-libs/openpgl/openpgl-0.5.0.ebuild
+++ b/media-libs/openpgl/openpgl-0.5.0.ebuild
@@ -19,7 +19,7 @@ IUSE="${CPU_FLAGS[@]} debug"
REQUIRED_USE="|| ( ${CPU_FLAGS[@]} )"
RDEPEND="
- media-libs/embree
+ media-libs/embree:=
dev-cpp/tbb:=
"
DEPEND="${RDEPEND}"
diff --git a/media-libs/osl/Manifest b/media-libs/osl/Manifest
index 6da4bf37bbda..f14d1bcc7942 100644
--- a/media-libs/osl/Manifest
+++ b/media-libs/osl/Manifest
@@ -2,8 +2,12 @@ DIST osl-1.12.11.0.tar.gz 20287156 BLAKE2B 178db816980929cc61a0deea63f715a9f10ad
DIST osl-1.12.13.0.tar.gz 20286745 BLAKE2B 75a2a5d10000ba26cd11463dde710d5be3b8b2d227de45263d8bd39fd87ca064f7c6d2b2f9cea2fdb8f29ccaa94d3ef60e2ff2e0e6d867385e2298dd10ef61b6 SHA512 d7e6ab79f77f2854cbb4fa2fbe5fc92659bb015b1bbffcee2ef86185cf20235990fa3b20308601aa298fedc85d3fcd4451b7b7ff0df7def97027efe4fb8a02bc
DIST osl-1.12.14.0.tar.gz 20555853 BLAKE2B 4f6bc2084e4c1b25e707a37830961f20926e6ab5cb915c763cbd8126127e70f6368832077729ab5e044f573e8c38c4afb413eff8adccee5ea1ae96cb9be43b6e SHA512 51641e58fb0bba042853e3976c104decc788f1b1d3ec2e33a3f5504b11b05950dc38766ffb066b0f76edc4e0a8829d6b7dd408d9288b74d69380395b1d991bd5
DIST osl-1.12.7.0.tar.gz 20250356 BLAKE2B a9398243546b1bfc1e3f9602f6112a72a8e7cb6ace54e93d0e5f30d943474e82c3317596597d6a09e0f2cf04b1b21f05c31a2357e3d667d710cd2aa340f5fd63 SHA512 ec0391dfc95140fee4fa8332991cdcb0978dafc436f3e07d0293e2baa2014b8765e6b60631ae5a8bbd6e16dbcf37f04c076d7d6b2d8bfa58b78471f0d92c433f
+DIST osl-1.13.7.0.tar.gz 21774349 BLAKE2B 1fd731f14b8dce948d7995efadb63eec8ce028ed6b095db391d2dfedcbbd62ca3aad9cd5d7d40f94c9e358f952d841899103467a2f81b12a605ae8c8436a16ff SHA512 15ffc6a5eed44141672af3d7ddab5d97abacad2062cddb35ef2a8484538a9a9a86cbd7e7170deafcefd3b69df764bfd207685603ca17a2fbff4299ccd1afe569
EBUILD osl-1.12.11.0.ebuild 2654 BLAKE2B 03dbc702cf4ee912aaa9c8e6fc367c1d329e4197c921b83530ef067655bc5d9707709ff1faabccec73afc5cdca1c35e13b332f27c1753e995d15e175be27faa2 SHA512 eb64532b37668c315ece45468dff7de849a80cd4a4d977e9ec3fe248d844deb431eeefeb54e6cfdc886cdae8db25573cd6345e7df0ab09c8dd8a0844f5bc17bc
EBUILD osl-1.12.13.0.ebuild 2937 BLAKE2B d0cc000f15b02c06109d3bfeec16423da744b8b3aa4eae200cc2e34edc92d5aa9dc63652e6291e4deb37e96dc0c2815a936e920cbb560c72936543e63b977876 SHA512 d0293f173cbaff89eef8c7d00bf4a1c23b10af4cfe4091d9cf0dbda9a4321ebc8f8954e1fca40c59ca2f539583dfced2ac61f634a9d3a5579fdffde97a3defc9
+EBUILD osl-1.12.14.0-r1.ebuild 9613 BLAKE2B 04555418eaefc10e9e308f8ea1a53086953539e57eb2e17c4d1b5fd7e57a7a21c4f00ec8879c902ce65daf8ea5c30538791561830779660e9edfb6f3aaea4977 SHA512 e97f7b6f5e70be2c78d99ebc38c320c60722dbfb7534814ce60cba6fa6e4722683edbbbb8dfce403fe02ef89038ea645bb6de3b606dd7e9e1d6fb025d83ddfb9
EBUILD osl-1.12.14.0.ebuild 3696 BLAKE2B 73bf112684b06c5c75521a8df1e7963551a21caabb53754cc8455d949417079bca07afbf092f7c173490a5ed0003aa163a2731ce8a5b7be4bf4fbfaf36688024 SHA512 fe1b2b7bb061eeba5dbee874e9fa4a429430c8b9aadc473aaa6736ac824bd84389a0365154ad06e4ebb92ede7198c6611310772bc787b2c553683eb542f52a3c
EBUILD osl-1.12.7.0.ebuild 2761 BLAKE2B b70f2c5c5d7a8cd3d5031f35562e3266d21e5212a53ca5ea2ea4c8d2476651095e6140c6490648ab0fcc2c629e81d4ec628155bbea8d78899446e906596d065d SHA512 daede9ce4d5d366bcba462adfad893fe19d9d41b05adc807632b9d67422b452170a2cb453fefba826877f4bbafc4639311aab457f16ffc324b66f8688c0e517c
-MISC metadata.xml 930 BLAKE2B 2108a2c31a921fbf2cbeeeb2b06349b8a0f7d0229cdef29d6f48b3f12979f40eab9e2b735a2c4717b69b0661390b400414c20f77da3003ae3ba806d49e614d6f SHA512 b4aed7a6508c6e52a457c415a230658f2dbc33586f32fa4baa84217cf2603c8ebb9cd227ce317c75237d306284f2b066564941796e5ada0bfbc615337b84955a
+EBUILD osl-1.13.7.0.ebuild 11533 BLAKE2B 9320d920aff47d4395b269eb6be65dfe701167e17ea2a47cfd4de8ba04a89c403a83a0c5933d719c0a4dc6c4f304cad70f2fce4a6c6c8d26cf81025d99ec4217 SHA512 7d5a69ced126993510c6456e4e2fad3c47c41280093900faaabc7589f1f5cd3f714ae73e794c9a3a7ee2da0d4b8bf954a132706a2f43d1577f04a4eab4662165
+EBUILD osl-9999.ebuild 11256 BLAKE2B e40121253e1952e48d71027849c1b24c0053a2c4b7082ef01c07ac32cd3c1a242528a2affc3e665d68eb228725a231bddea4f1d333313cf6429a78c55deb1508 SHA512 d3aecb569f1a24f9e9c13c37b5829dbd422705e0df35404721687d32ee3675de0a37501d2641913ad79cfd31851b9506bea4047af71b66c39ab081c34a930659
+MISC metadata.xml 1162 BLAKE2B 56fc654915ef7d354844d8b9d99cbe1e2fa8ece1bf3ee2028847d8add16c663cab3110598ae78b7da05c6f3b06bc0926ff1797827c5b2750c03ec02d4c5effe2 SHA512 6e391782385aca530fb9526dd4675845aefd42d760555a7633b0daec2d2890e5d2ce93f39b4c297c1f1056e2c4607c228baba4a1875f05c47362abeb50455dba
diff --git a/media-libs/osl/metadata.xml b/media-libs/osl/metadata.xml
index 4e777e0e9393..4c2f57c8a0ed 100644
--- a/media-libs/osl/metadata.xml
+++ b/media-libs/osl/metadata.xml
@@ -15,8 +15,11 @@
lights, displacement, and pattern generation.
</longdescription>
<use>
- <flag name="partio">Use <pkg>media-libs/partio</pkg></flag>
<flag name="gui">Build the osltoy binary (with Qt5)</flag>
+ <flag name="libcxx">Build against <pkg>sys-libs/libcxx</pkg> when using clang</flag>
+ <flag name="nofma">Do not use Fuse-Multiply-Add operations</flag>
+ <flag name="optix">Add support for NVIDIA's OptiX Raytracing Engine</flag>
+ <flag name="partio">Use <pkg>media-libs/partio</pkg></flag>
<flag name="qt6">Build the osltoy binary (with Qt6)</flag>
</use>
<upstream>
diff --git a/media-libs/osl/osl-1.12.14.0-r1.ebuild b/media-libs/osl/osl-1.12.14.0-r1.ebuild
new file mode 100644
index 000000000000..66765c891954
--- /dev/null
+++ b/media-libs/osl/osl-1.12.14.0-r1.ebuild
@@ -0,0 +1,384 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+# Check this on updates
+LLVM_COMPAT=( {15..15} )
+
+inherit cmake flag-o-matic llvm-r1 toolchain-funcs python-single-r1
+
+DESCRIPTION="Advanced shading language for production GI renderers"
+HOMEPAGE="https://www.imageworks.com/technology/opensource https://github.com/AcademySoftwareFoundation/OpenShadingLanguage"
+
+if [[ ${PV} = *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/AcademySoftwareFoundation/OpenShadingLanguage.git"
+else
+ # If a development release, please don't keyword!
+ SRC_URI="https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64"
+fi
+
+S="${WORKDIR}/OpenShadingLanguage-${PV}"
+
+LICENSE="BSD"
+SLOT="0/$(ver_cut 1-3)"
+
+X86_CPU_FEATURES=(
+ sse2:sse2 sse3:sse3 ssse3:ssse3 sse4_1:sse4.1 sse4_2:sse4.2
+ avx:avx avx2:avx2 avx512f:avx512f f16c:f16c
+)
+CPU_FEATURES=( "${X86_CPU_FEATURES[@]/#/cpu_flags_x86_}" )
+
+IUSE="doc gui libcxx nofma partio qt6 test ${CPU_FEATURES[*]%:*} python"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ dev-libs/boost:=
+ dev-libs/pugixml
+ >=media-libs/openexr-3:0=
+ >=media-libs/openimageio-2.4:=
+ $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ')
+ sys-libs/zlib:=
+ python? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/pybind11[${PYTHON_USEDEP}]
+ media-libs/openimageio[python,${PYTHON_SINGLE_USEDEP}]
+ ')
+ )
+ partio? ( media-libs/partio )
+ gui? (
+ !qt6? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtopengl:5
+ )
+ qt6? (
+ dev-qt/qtbase:6[gui,widgets,opengl]
+ )
+ )
+"
+
+DEPEND="${RDEPEND}"
+BDEPEND="
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+"
+
+pkg_setup() {
+ llvm-r1_pkg_setup
+
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ sed -e "/^install.*llvm_macros.cmake.*cmake/d" -i CMakeLists.txt || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ # pick the highest we support
+ local mysimd=()
+ if use cpu_flags_x86_avx512f; then
+ mysimd+=( avx512f )
+ elif use cpu_flags_x86_avx2 ; then
+ mysimd+=( avx2 )
+ if use cpu_flags_x86_f16c ; then
+ mysimd+=( f16c )
+ fi
+ elif use cpu_flags_x86_avx ; then
+ mysimd+=( avx )
+ elif use cpu_flags_x86_sse4_2 ; then
+ mysimd+=( sse4.2 )
+ elif use cpu_flags_x86_sse4_1 ; then
+ mysimd+=( sse4.1 )
+ elif use cpu_flags_x86_ssse3 ; then
+ mysimd+=( ssse3 )
+ elif use cpu_flags_x86_sse3 ; then
+ mysimd+=( sse3 )
+ elif use cpu_flags_x86_sse2 ; then
+ mysimd+=( sse2 )
+ fi
+
+ local mybatched=()
+ if use cpu_flags_x86_avx512f || use cpu_flags_x86_avx2 ; then
+ if use cpu_flags_x86_avx512f ; then
+ if use nofma; then
+ mybatched+=(
+ "b8_AVX512_noFMA"
+ "b16_AVX512_noFMA"
+ )
+ else
+ mybatched+=(
+ "b8_AVX512"
+ "b16_AVX512"
+ )
+ fi
+ fi
+ if use cpu_flags_x86_avx2 ; then
+ if use nofma; then
+ mybatched+=(
+ "b8_AVX2_noFMA"
+ )
+ else
+ mybatched+=(
+ "b8_AVX2"
+ )
+ fi
+ fi
+ elif use cpu_flags_x86_avx ; then
+ mybatched+=(
+ "b8_AVX"
+ )
+ fi
+
+ # If no CPU SIMDs were used, completely disable them
+ [[ -z "${mysimd[*]}" ]] && mysimd=("0")
+ [[ -z "${mybatched[*]}" ]] && mybatched=("0")
+
+ # This is currently needed on arm64 to get the NEON SIMD wrapper to compile the code successfully
+ # Even if there are no SIMD features selected, it seems like the code will turn on NEON support if it is available.
+ use arm64 && append-flags -flax-vector-conversions
+
+ local gcc
+ gcc="$(tc-getCC)"
+
+ local mycmakeargs=(
+ -DCMAKE_POLICY_DEFAULT_CMP0146="OLD" # BUG FindCUDA
+ -DCMAKE_POLICY_DEFAULT_CMP0148="OLD" # BUG FindPythonInterp
+
+ # std::tuple_size_v is c++17
+ -DCMAKE_CXX_STANDARD="17"
+
+ -DCMAKE_INSTALL_DOCDIR="share/doc/${PF}"
+ -DINSTALL_DOCS="$(usex doc)"
+ -DUSE_CCACHE="no"
+ -DLLVM_STATIC="no"
+ -DOSL_BUILD_TESTS="$(usex test)"
+ -DSTOP_ON_WARNING="no"
+ -DUSE_PARTIO="$(usex partio)"
+ -DUSE_PYTHON="$(usex python)"
+ -DPYTHON_VERSION="${EPYTHON/python}"
+ -DUSE_SIMD="$(IFS=","; echo "${mysimd[*]}")"
+ -DUSE_BATCHED="$(IFS=","; echo "${mybatched[*]}")"
+ -DUSE_LIBCPLUSPLUS="$(usex libcxx)"
+ -DUSE_OPTIX="no"
+ -DVEC_REPORT="yes"
+
+ -DOpenImageIO_ROOT="${EPREFIX}/usr"
+ )
+
+ if use gui; then
+ mycmakeargs+=( -DUSE_QT="yes" )
+ if ! use qt6; then
+ mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Qt6="yes" )
+ fi
+ else
+ mycmakeargs+=( -DUSE_QT="no" )
+ fi
+
+ if use partio; then
+ mycmakeargs+=(
+ -Dpartio_ROOT="${EPREFIX}/usr"
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_test() {
+ # A bunch of tests only work when installed.
+ # So install them into the temp directory now.
+ DESTDIR="${T}" cmake_build install
+
+ ln -s "${CMAKE_USE_DIR}/src/cmake/" "${BUILD_DIR}/src/cmake" || die
+
+ CMAKE_SKIP_TESTS=(
+ "broken"
+ "^render"
+
+ # outright fail
+ "^color$"
+ "^color.opt$"
+ "^color.batched$"
+ "^color.batched.opt$"
+ "^matrix.batched.opt$"
+ "^spline-reg.regress.batched.opt$"
+ "^transform-reg.regress.batched.opt$"
+ )
+
+ # These only fail inside sandbox
+ if [[ "${OSL_OPTIONAL_TESTS}" != "true" ]]; then
+ CMAKE_SKIP_TESTS+=(
+ # TODO: investigate failures
+ # SIGABRT similar to https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/issues/1363
+ "^andor-reg.regress.batched.opt$"
+ "^arithmetic-reg.regress.batched.opt$"
+ "^array-assign-reg.regress.batched.opt$"
+ "^array-length-reg.regress.batched$"
+ "^closure.batched$"
+ "^closure.batched.opt$"
+ "^closure-parameters.batched$"
+ "^closure-parameters.batched.opt$"
+ "^debug-uninit$"
+ "^debug-uninit.opt$"
+ "^debug-uninit.batched$"
+ "^debug-uninit.batched.opt$"
+ "^derivs$"
+ "^derivs.opt$"
+ "^derivs.batched$"
+ "^derivs.batched.opt$"
+ "^filterwidth-reg.regress.batched.opt$"
+ "^geomath.opt$"
+ "^geomath.batched$"
+ "^geomath.batched.opt$"
+ "^getattribute-camera.batched$"
+ "^getattribute-camera.batched.opt$"
+ "^getattribute-shader.batched.opt$"
+ "^gettextureinfo.batched$"
+ "^gettextureinfo-reg.regress.batched.opt$"
+ "^hyperb.opt$"
+ "^hyperb.batched.opt$"
+ "^ieee_fp-reg.regress.batched.opt$"
+ "^initlist.batched$"
+ "^initlist.batched.opt$"
+ "^isconnected.batched$"
+ "^linearstep.batched$"
+ "^linearstep.batched.opt$"
+ "^loop.batched$"
+ "^loop.batched.opt$"
+ "^matrix$"
+ "^matrix.opt$"
+ "^matrix.batched$"
+ "^matrix-compref-reg.regress.batched.opt$"
+ "^message-no-closure.batched$"
+ "^message-no-closure.batched.opt$"
+ "^message-reg.regress.batched.opt$"
+ "^miscmath$"
+ "^miscmath.opt$"
+ "^miscmath.batched$"
+ "^miscmath.batched.opt$"
+ "^noise.batched$"
+ "^noise-cell.batched$"
+ "^noise-gabor.batched$"
+ "^noise-gabor.batched.opt$"
+ "^noise-gabor-reg.regress.batched.opt$"
+ "^noise-generic.batched$"
+ "^noise-generic.batched.opt$"
+ "^noise-perlin.batched$"
+ "^noise-perlin.batched.opt$"
+ "^noise-simplex.batched$"
+ "^noise-simplex.batched.opt$"
+ "^noise-reg.regress.batched.opt$"
+ "^pnoise.batched$"
+ "^pnoise-cell.batched$"
+ "^pnoise-gabor.batched$"
+ "^pnoise-gabor.batched.opt$"
+ "^pnoise-generic.batched$"
+ "^pnoise-generic.batched.opt$"
+ "^pnoise-perlin.batched$"
+ "^pnoise-perlin.batched.opt$"
+ "^pnoise-reg.regress.batched.opt$"
+ "^opt-warnings.batched$"
+ "^opt-warnings.batched.opt$"
+ "^regex-reg.regress.batched.opt$"
+ "^select.batched$"
+ "^select.batched.opt$"
+ "^shaderglobals.batched$"
+ "^shaderglobals.batched.opt$"
+ "^smoothstep-reg.regress.batched.opt$"
+ "^spline.batched$"
+ "^spline.batched.opt$"
+ "^splineinverse-ident.batched$"
+ "^splineinverse-ident.batched.opt$"
+ "^spline-derivbug.batched$"
+ "^spline-derivbug.batched.opt$"
+ "^split-reg.regress.batched.opt$"
+ "^string.batched$"
+ "^string.batched.opt$"
+ "^string-reg.regress.batched.opt$"
+ "^struct.batched$"
+ "^struct-array-mixture.batched$"
+ "^struct-array-mixture.batched.opt$"
+ "^texture-environment-opts-reg.regress.batched.opt$"
+ "^texture-opts-reg.regress.batched.opt$"
+ "^texture-wrap.batched$"
+ "^texture-wrap.batched.opt$"
+ "^transcendental-reg.regress.batched.opt$"
+ "^transform$"
+ "^transform.opt$"
+ "^transform.batched$"
+ "^transform.batched.opt$"
+ "^transformc$"
+ "^transformc.opt$"
+ "^transformc.batched$"
+ "^transformc.batched.opt$"
+ "^trig$"
+ "^trig.opt$"
+ "^trig.batched$"
+ "^trig.batched.opt$"
+ "^trig-reg.regress.batched.opt$"
+ "^vecctr.batched$"
+ "^vecctr.batched.opt$"
+ "^vector-reg.regress.batched.opt$"
+ "^xml-reg.regress.batched.opt$"
+ "^gettextureinfo-udim.batched$"
+ "^gettextureinfo-udim.batched.opt$"
+ "^gettextureinfo-udim-reg.regress.batched.opt$"
+ "^pointcloud.batched$"
+ "^pointcloud.batched.opt$"
+ )
+ fi
+
+ myctestargs=(
+ # src/build-scripts/ci-test.bash
+ '--force-new-ctest-process'
+ )
+
+ local -x DEBUG CXXFLAGS LD_LIBRARY_PATH DIR OSL_DIR OSL_SOURCE_DIR PYTHONPATH
+ DEBUG=1 # doubles the floating point tolerance
+ CXXFLAGS="-I${T}/usr/include"
+ LD_LIBRARY_PATH="${T}/usr/$(get_libdir)"
+ OSL_DIR="${T}/usr/$(get_libdir)/cmake/OSL"
+ OSL_SOURCE_DIR="${S}"
+
+ if use python; then
+ PYTHONPATH="${BUILD_DIR}/lib/python/site-packages"
+ fi
+
+ cmake_src_test
+
+ CMAKE_SKIP_TESTS=(
+ "^render-background$"
+ "^render-bumptest$"
+ "^render-mx-furnace-sheen$"
+ "^render-mx-burley-diffuse$"
+ "^render-mx-conductor$"
+ "^render-mx-generalized-schlick-glass$"
+ "^render-microfacet$"
+ "^render-oren-nayar$"
+ "^render-veachmis$"
+ "^render-ward$"
+ "^render-raytypes.opt$"
+ )
+
+ myctestargs=(
+ # src/build-scripts/ci-test.bash
+ '--force-new-ctest-process'
+ --repeat until-pass:10
+ -R "^render"
+ )
+
+ cmake_src_test
+}
diff --git a/media-libs/osl/osl-1.13.7.0.ebuild b/media-libs/osl/osl-1.13.7.0.ebuild
new file mode 100644
index 000000000000..673742be896a
--- /dev/null
+++ b/media-libs/osl/osl-1.13.7.0.ebuild
@@ -0,0 +1,453 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+# Check this on updates
+LLVM_COMPAT=( {15..17} )
+
+inherit cmake cuda flag-o-matic llvm-r1 toolchain-funcs python-single-r1
+
+DESCRIPTION="Advanced shading language for production GI renderers"
+HOMEPAGE="https://www.imageworks.com/technology/opensource https://github.com/AcademySoftwareFoundation/OpenShadingLanguage"
+
+if [[ ${PV} = *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/AcademySoftwareFoundation/OpenShadingLanguage.git"
+else
+ # If a development release, please don't keyword!
+ SRC_URI="https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64"
+fi
+
+S="${WORKDIR}/OpenShadingLanguage-${PV}"
+
+LICENSE="BSD"
+SLOT="0/$(ver_cut 1-3)"
+
+X86_CPU_FEATURES=(
+ sse2:sse2 sse3:sse3 ssse3:ssse3 sse4_1:sse4.1 sse4_2:sse4.2
+ avx:avx avx2:avx2 avx512f:avx512f f16c:f16c
+)
+CPU_FEATURES=( "${X86_CPU_FEATURES[@]/#/cpu_flags_x86_}" )
+
+IUSE="doc gui libcxx nofma optix partio qt6 test ${CPU_FEATURES[*]%:*} python"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# TODO optix
+RDEPEND="
+ dev-libs/boost:=
+ dev-libs/pugixml
+ >=media-libs/openexr-3:0=
+ >=media-libs/openimageio-2.4:=
+ $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ')
+ sys-libs/zlib:=
+ optix? ( dev-libs/optix[-headers-only] )
+ python? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/pybind11[${PYTHON_USEDEP}]
+ media-libs/openimageio[python,${PYTHON_SINGLE_USEDEP}]
+ ')
+ )
+ partio? ( media-libs/partio )
+ gui? (
+ !qt6? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtopengl:5
+ )
+ qt6? (
+ dev-qt/qtbase:6[gui,widgets,opengl]
+ )
+ )
+"
+
+DEPEND="${RDEPEND}"
+BDEPEND="
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+"
+
+pkg_setup() {
+ llvm-r1_pkg_setup
+
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ if use optix; then
+ cuda_src_prepare
+ cuda_add_sandbox -w
+ fi
+
+ sed -e "/^install.*llvm_macros.cmake.*cmake/d" -i CMakeLists.txt || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ # pick the highest we support
+ local mysimd=()
+ if use cpu_flags_x86_avx512f; then
+ mysimd+=( avx512f )
+ elif use cpu_flags_x86_avx2 ; then
+ mysimd+=( avx2 )
+ if use cpu_flags_x86_f16c ; then
+ mysimd+=( f16c )
+ fi
+ elif use cpu_flags_x86_avx ; then
+ mysimd+=( avx )
+ elif use cpu_flags_x86_sse4_2 ; then
+ mysimd+=( sse4.2 )
+ elif use cpu_flags_x86_sse4_1 ; then
+ mysimd+=( sse4.1 )
+ elif use cpu_flags_x86_ssse3 ; then
+ mysimd+=( ssse3 )
+ elif use cpu_flags_x86_sse3 ; then
+ mysimd+=( sse3 )
+ elif use cpu_flags_x86_sse2 ; then
+ mysimd+=( sse2 )
+ fi
+
+ local mybatched=()
+ if use cpu_flags_x86_avx512f || use cpu_flags_x86_avx2 ; then
+ if use cpu_flags_x86_avx512f ; then
+ if use nofma; then
+ mybatched+=(
+ "b8_AVX512_noFMA"
+ "b16_AVX512_noFMA"
+ )
+ else
+ mybatched+=(
+ "b8_AVX512"
+ "b16_AVX512"
+ )
+ fi
+ fi
+ if use cpu_flags_x86_avx2 ; then
+ if use nofma; then
+ mybatched+=(
+ "b8_AVX2_noFMA"
+ )
+ else
+ mybatched+=(
+ "b8_AVX2"
+ )
+ fi
+ fi
+ elif use cpu_flags_x86_avx ; then
+ mybatched+=(
+ "b8_AVX"
+ )
+ fi
+
+ # If no CPU SIMDs were used, completely disable them
+ [[ -z "${mysimd[*]}" ]] && mysimd=("0")
+ [[ -z "${mybatched[*]}" ]] && mybatched=("0")
+
+ # This is currently needed on arm64 to get the NEON SIMD wrapper to compile the code successfully
+ # Even if there are no SIMD features selected, it seems like the code will turn on NEON support if it is available.
+ use arm64 && append-flags -flax-vector-conversions
+
+ local gcc
+ gcc="$(tc-getCC)"
+
+ local mycmakeargs=(
+ -DCMAKE_POLICY_DEFAULT_CMP0146="OLD" # BUG FindCUDA
+ -DCMAKE_POLICY_DEFAULT_CMP0148="OLD" # BUG FindPythonInterp
+
+ # std::tuple_size_v is c++17
+ -DCMAKE_CXX_STANDARD="17"
+
+ -DCMAKE_INSTALL_DOCDIR="share/doc/${PF}"
+ -DINSTALL_DOCS="$(usex doc)"
+ -DUSE_CCACHE="no"
+ -DLLVM_STATIC="no"
+ -DOSL_BUILD_TESTS="$(usex test)"
+ -DSTOP_ON_WARNING="no"
+ -DUSE_PARTIO="$(usex partio)"
+ -DUSE_PYTHON="$(usex python)"
+ -DPYTHON_VERSION="${EPYTHON/python}"
+ -DUSE_SIMD="$(IFS=","; echo "${mysimd[*]}")"
+ -DUSE_BATCHED="$(IFS=","; echo "${mybatched[*]}")"
+ -DUSE_LIBCPLUSPLUS="$(usex libcxx)"
+ -DOSL_USE_OPTIX="$(usex optix)"
+ -DVEC_REPORT="yes"
+
+ -DOpenImageIO_ROOT="${EPREFIX}/usr"
+ )
+
+ if use gui; then
+ mycmakeargs+=( -DUSE_QT="yes" )
+ if ! use qt6; then
+ mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Qt6="yes" )
+ fi
+ else
+ mycmakeargs+=( -DUSE_QT="no" )
+ fi
+
+ if use optix; then
+ mycmakeargs+=(
+ -DOptiX_FIND_QUIETLY="no"
+ -DCUDA_FIND_QUIETLY="no"
+
+ -DOPTIXHOME="${EPREFIX}/opt/optix"
+ -DCUDA_TOOLKIT_ROOT_DIR="${EPREFIX}/opt/cuda"
+
+ -DCUDA_NVCC_FLAGS="--compiler-bindir;$(cuda_gccdir)"
+ -DOSL_EXTRA_NVCC_ARGS="--compiler-bindir;$(cuda_gccdir)"
+ -DCUDA_VERBOSE_BUILD="yes"
+ )
+ fi
+
+ if use partio; then
+ mycmakeargs+=(
+ -Dpartio_DIR="${EPREFIX}/usr"
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_test() {
+ # A bunch of tests only work when installed.
+ # So install them into the temp directory now.
+ DESTDIR="${T}" cmake_build install
+
+ ln -s "${CMAKE_USE_DIR}/src/cmake/" "${BUILD_DIR}/src/cmake" || die
+
+ if use optix; then
+ cp \
+ "${BUILD_DIR}/src/liboslexec/shadeops_cuda.ptx" \
+ "${BUILD_DIR}/src/testrender/"{optix_raytracer,quad,rend_lib_testrender,sphere,wrapper}".ptx" \
+ "${BUILD_DIR}/src/testshade/"{optix_grid_renderer,rend_lib_testshade}".ptx" \
+ "${BUILD_DIR}/bin/" || die
+
+ # NOTE this should go to cuda eclass
+ addwrite /dev/nvidiactl
+ addwrite /dev/nvidia0
+ addwrite /dev/nvidia-uvm
+ addwrite /dev/nvidia-caps
+ addwrite "/dev/char/"
+ fi
+
+ CMAKE_SKIP_TESTS=(
+ "broken"
+ "^render"
+
+ # broken with in-tree <=dev-libs/optix-7.5.0 and out of date
+ "^example-cuda$"
+
+ # outright fail
+ "^transform-reg.regress.batched.opt$"
+
+ # SIGABRT similar to https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/issues/1363
+ "^derivs.opt.rs_bitcode$"
+ "^geomath.batched$"
+ "^matrix.batched$"
+ "^matrix.batched.opt$"
+ "^spline-reg.regress.batched.opt$"
+ "^transformc.batched$"
+ )
+
+ # These only fail inside sandbox
+ if [[ "${OSL_OPTIONAL_TESTS}" != "true" ]]; then
+ CMAKE_SKIP_TESTS+=(
+ # TODO: investigate failures
+ # SIGABRT similar to https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/issues/1363
+ "^andor-reg.regress.batched.opt$"
+ "^arithmetic-reg.regress.batched.opt$"
+ "^array-assign-reg.regress.batched.opt$"
+ "^array-copy-reg.regress.batched.opt$"
+ "^array-length-reg.regress.batched$"
+ "^bug-outputinit.optix$"
+ "^bug-outputinit.optix.fused$"
+ "^bug-outputinit.optix.opt$"
+ "^bug-return.optix$"
+ "^bug-return.optix.fused$"
+ "^bug-return.optix.opt$"
+ "^closure-parameters.batched$"
+ "^closure-parameters.batched.opt$"
+ "^closure.batched$"
+ "^closure.batched.opt$"
+ "^debug-uninit$"
+ "^debug-uninit.batched$"
+ "^debug-uninit.batched.opt$"
+ "^debug-uninit.opt$"
+ "^debug-uninit.opt.rs_bitcode$"
+ "^derivs$"
+ "^derivs.batched$"
+ "^derivs.batched.opt$"
+ "^derivs.opt$"
+ "^exponential$"
+ "^exponential.opt$"
+ "^exponential.opt.rs_bitcode$"
+ "^filterwidth-reg.regress.batched.opt$"
+ "^geomath$"
+ "^geomath.batched.opt$"
+ "^geomath.opt$"
+ "^geomath.opt.rs_bitcode$"
+ "^getattribute-camera.batched$"
+ "^getattribute-camera.batched.opt$"
+ "^getattribute-shader.batched.opt$"
+ "^gettextureinfo-reg.regress.batched.opt$"
+ "^gettextureinfo-udim-reg.regress.batched.opt$"
+ "^gettextureinfo.batched$"
+ "^hyperb.batched.opt$"
+ "^hyperb.opt$"
+ "^hyperb.opt.rs_bitcode$"
+ "^initlist.batched$"
+ "^initlist.batched.opt$"
+ "^linearstep.batched$"
+ "^linearstep.batched.opt$"
+ "^loop.batched$"
+ "^loop.batched.opt$"
+ "^matrix$"
+ "^matrix-compref-reg.regress.batched.opt$"
+ "^matrix-reg.regress.rsbitcode.opt$"
+ "^matrix.opt$"
+ "^matrix.opt.rs_bitcode$"
+ "^matrix.rsbitcode.opt$"
+ "^message-no-closure.batched$"
+ "^message-no-closure.batched.opt$"
+ "^message-reg.regress.batched.opt$"
+ "^miscmath$"
+ "^miscmath.batched$"
+ "^miscmath.batched.opt$"
+ "^miscmath.opt$"
+ "^miscmath.opt.rs_bitcode$"
+ "^noise-cell.batched$"
+ "^noise-gabor-reg.regress.batched.opt$"
+ "^noise-gabor.batched$"
+ "^noise-gabor.batched.opt$"
+ "^noise-generic.batched$"
+ "^noise-generic.batched.opt$"
+ "^noise-perlin.batched$"
+ "^noise-perlin.batched.opt$"
+ "^noise-reg.regress.batched.opt$"
+ "^noise-simplex.batched$"
+ "^noise-simplex.batched.opt$"
+ "^noise.batched$"
+ "^opt-warnings.batched$"
+ "^opt-warnings.batched.opt$"
+ "^pnoise-cell.batched$"
+ "^pnoise-gabor.batched$"
+ "^pnoise-gabor.batched.opt$"
+ "^pnoise-generic.batched$"
+ "^pnoise-generic.batched.opt$"
+ "^pnoise-perlin.batched$"
+ "^pnoise-perlin.batched.opt$"
+ "^pnoise-reg.regress.batched.opt$"
+ "^pnoise.batched$"
+ "^pointcloud.batched$"
+ "^pointcloud.batched.opt$"
+ "^regex-reg.regress.batched.opt$"
+ "^select.batched$"
+ "^select.batched.opt$"
+ "^shaderglobals.batched$"
+ "^shaderglobals.batched.opt$"
+ "^smoothstep-reg.regress.batched.opt$"
+ "^spline-derivbug.batched$"
+ "^spline-derivbug.batched.opt$"
+ "^spline.batched$"
+ "^spline.batched.opt$"
+ "^splineinverse-ident.batched$"
+ "^splineinverse-ident.batched.opt$"
+ "^split-reg.regress.batched.opt$"
+ "^string$"
+ "^string-reg.regress.batched.opt$"
+ "^string.batched$"
+ "^string.batched.opt$"
+ "^string.opt$"
+ "^string.opt.rs_bitcode$"
+ "^struct-array-mixture.batched$"
+ "^struct-array-mixture.batched.opt$"
+ "^struct.batched$"
+ "^test-fmt-matrixcolor.opt.rs_bitcode$"
+ "^testoptix-noise.optix.opt$"
+ "^testoptix-reparam.optix.opt$"
+ "^texture-environment-opts-reg.regress.batched.opt$"
+ "^texture-opts-reg.regress.batched.opt$"
+ "^texture-wrap.batched$"
+ "^texture-wrap.batched.opt$"
+ "^transcendental-reg.regress.batched.opt$"
+ "^transform$"
+ "^transform.batched$"
+ "^transform.batched.opt$"
+ "^transform.opt$"
+ "^transform.opt.rs_bitcode$"
+ "^transformc$"
+ "^transformc.batched.opt$"
+ "^transformc.opt$"
+ "^transformc.opt.rs_bitcode$"
+ "^transformc.rsbitcode.opt$"
+ "^trig$"
+ "^trig-reg.regress.batched.opt$"
+ "^trig.batched$"
+ "^trig.batched.opt$"
+ "^trig.opt$"
+ "^trig.opt.rs_bitcode$"
+ "^vecctr.batched$"
+ "^vecctr.batched.opt$"
+ "^vector$"
+ "^vector-reg.regress.batched.opt$"
+ "^vector.opt$"
+ "^vector.opt.rs_bitcode$"
+ "^wavelength_color.optix$"
+ "^wavelength_color.optix.fused$"
+ "^wavelength_color.optix.opt$"
+ "^xml-reg.regress.batched.opt$"
+
+ # diff
+ "^testoptix.optix.opt$"
+ )
+ fi
+
+ myctestargs=(
+ # src/build-scripts/ci-test.bash
+ '--force-new-ctest-process'
+ )
+
+ local -x DEBUG CXXFLAGS LD_LIBRARY_PATH DIR OSL_DIR OSL_SOURCE_DIR PYTHONPATH
+ DEBUG=1 # doubles the floating point tolerance
+ CXXFLAGS="-I${T}/usr/include"
+ LD_LIBRARY_PATH="${T}/usr/$(get_libdir)"
+ OSL_DIR="${T}/usr/$(get_libdir)/cmake/OSL"
+ OSL_SOURCE_DIR="${S}"
+
+ if use python; then
+ PYTHONPATH="${BUILD_DIR}/lib/python/site-packages"
+ fi
+
+ cmake_src_test
+
+ CMAKE_SKIP_TESTS=(
+ "^render-background$"
+ "^render-mx-furnace-sheen$"
+ "^render-mx-burley-diffuse$"
+ "^render-mx-conductor$"
+ "^render-microfacet$"
+ "^render-veachmis$"
+ "^render-ward$"
+ "^render-raytypes.opt$"
+ "^render-raytypes.opt.rs_bitcode$"
+ )
+
+ myctestargs=(
+ # src/build-scripts/ci-test.bash
+ '--force-new-ctest-process'
+ --repeat until-pass:10
+ -R "^render"
+ )
+
+ cmake_src_test
+}
diff --git a/media-libs/osl/osl-9999.ebuild b/media-libs/osl/osl-9999.ebuild
new file mode 100644
index 000000000000..9ae3ddb5a40d
--- /dev/null
+++ b/media-libs/osl/osl-9999.ebuild
@@ -0,0 +1,443 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+# Check this on updates
+LLVM_COMPAT=( {15..17} )
+
+inherit cmake cuda flag-o-matic llvm-r1 toolchain-funcs python-single-r1
+
+DESCRIPTION="Advanced shading language for production GI renderers"
+HOMEPAGE="https://www.imageworks.com/technology/opensource https://github.com/AcademySoftwareFoundation/OpenShadingLanguage"
+
+if [[ ${PV} = *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/AcademySoftwareFoundation/OpenShadingLanguage.git"
+else
+ # If a development release, please don't keyword!
+ SRC_URI="https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64"
+fi
+
+S="${WORKDIR}/OpenShadingLanguage-${PV}"
+
+LICENSE="BSD"
+SLOT="0/$(ver_cut 1-3)"
+
+X86_CPU_FEATURES=(
+ sse2:sse2 sse3:sse3 ssse3:ssse3 sse4_1:sse4.1 sse4_2:sse4.2
+ avx:avx avx2:avx2 avx512f:avx512f f16c:f16c
+)
+CPU_FEATURES=( "${X86_CPU_FEATURES[@]/#/cpu_flags_x86_}" )
+
+IUSE="doc gui libcxx nofma optix partio qt6 test ${CPU_FEATURES[*]%:*} python"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# TODO optix
+RDEPEND="
+ dev-libs/boost:=
+ dev-libs/pugixml
+ >=media-libs/openexr-3:0=
+ >=media-libs/openimageio-2.4:=
+ $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ')
+ sys-libs/zlib:=
+ optix? ( dev-libs/optix[-headers-only] )
+ python? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/pybind11[${PYTHON_USEDEP}]
+ media-libs/openimageio[python,${PYTHON_SINGLE_USEDEP}]
+ ')
+ )
+ partio? ( media-libs/partio )
+ gui? (
+ !qt6? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtopengl:5
+ )
+ qt6? (
+ dev-qt/qtbase:6[gui,widgets,opengl]
+ )
+ )
+"
+
+DEPEND="${RDEPEND}"
+BDEPEND="
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+"
+
+pkg_setup() {
+ llvm-r1_pkg_setup
+
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ if use optix; then
+ cuda_src_prepare
+ cuda_add_sandbox -w
+ fi
+
+ sed -e "/^install.*llvm_macros.cmake.*cmake/d" -i CMakeLists.txt || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ # pick the highest we support
+ local mysimd=()
+ if use cpu_flags_x86_avx512f; then
+ mysimd+=( avx512f )
+ elif use cpu_flags_x86_avx2 ; then
+ mysimd+=( avx2 )
+ if use cpu_flags_x86_f16c ; then
+ mysimd+=( f16c )
+ fi
+ elif use cpu_flags_x86_avx ; then
+ mysimd+=( avx )
+ elif use cpu_flags_x86_sse4_2 ; then
+ mysimd+=( sse4.2 )
+ elif use cpu_flags_x86_sse4_1 ; then
+ mysimd+=( sse4.1 )
+ elif use cpu_flags_x86_ssse3 ; then
+ mysimd+=( ssse3 )
+ elif use cpu_flags_x86_sse3 ; then
+ mysimd+=( sse3 )
+ elif use cpu_flags_x86_sse2 ; then
+ mysimd+=( sse2 )
+ fi
+
+ local mybatched=()
+ if use cpu_flags_x86_avx512f || use cpu_flags_x86_avx2 ; then
+ if use cpu_flags_x86_avx512f ; then
+ if use nofma; then
+ mybatched+=(
+ "b8_AVX512_noFMA"
+ "b16_AVX512_noFMA"
+ )
+ else
+ mybatched+=(
+ "b8_AVX512"
+ "b16_AVX512"
+ )
+ fi
+ fi
+ if use cpu_flags_x86_avx2 ; then
+ if use nofma; then
+ mybatched+=(
+ "b8_AVX2_noFMA"
+ )
+ else
+ mybatched+=(
+ "b8_AVX2"
+ )
+ fi
+ fi
+ elif use cpu_flags_x86_avx ; then
+ mybatched+=(
+ "b8_AVX"
+ )
+ fi
+
+ # If no CPU SIMDs were used, completely disable them
+ [[ -z "${mysimd[*]}" ]] && mysimd=("0")
+ [[ -z "${mybatched[*]}" ]] && mybatched=("0")
+
+ # This is currently needed on arm64 to get the NEON SIMD wrapper to compile the code successfully
+ # Even if there are no SIMD features selected, it seems like the code will turn on NEON support if it is available.
+ use arm64 && append-flags -flax-vector-conversions
+
+ local gcc
+ gcc="$(tc-getCC)"
+
+ local mycmakeargs=(
+ -DCMAKE_POLICY_DEFAULT_CMP0146="OLD" # BUG FindCUDA
+ -DCMAKE_POLICY_DEFAULT_CMP0148="OLD" # BUG FindPythonInterp
+
+ # std::tuple_size_v is c++17
+ -DCMAKE_CXX_STANDARD="17"
+
+ -DCMAKE_INSTALL_DOCDIR="share/doc/${PF}"
+ -DINSTALL_DOCS="$(usex doc)"
+ -DUSE_CCACHE="no"
+ -DLLVM_STATIC="no"
+ -DOSL_BUILD_TESTS="$(usex test)"
+ -DSTOP_ON_WARNING="no"
+ -DUSE_PARTIO="$(usex partio)"
+ -DUSE_PYTHON="$(usex python)"
+ -DPYTHON_VERSION="${EPYTHON/python}"
+ -DUSE_SIMD="$(IFS=","; echo "${mysimd[*]}")"
+ -DUSE_BATCHED="$(IFS=","; echo "${mybatched[*]}")"
+ -DUSE_LIBCPLUSPLUS="$(usex libcxx)"
+ -DOSL_USE_OPTIX="$(usex optix)"
+ -DVEC_REPORT="yes"
+
+ -DOpenImageIO_ROOT="${EPREFIX}/usr"
+ )
+
+ if use gui; then
+ mycmakeargs+=( -DUSE_QT="yes" )
+ if ! use qt6; then
+ mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Qt6="yes" )
+ fi
+ else
+ mycmakeargs+=( -DUSE_QT="no" )
+ fi
+
+ if use optix; then
+ mycmakeargs+=(
+ -DOptiX_FIND_QUIETLY="no"
+ -DCUDA_FIND_QUIETLY="no"
+
+ -DOPTIXHOME="${EPREFIX}/opt/optix"
+ -DCUDA_TOOLKIT_ROOT_DIR="${EPREFIX}/opt/cuda"
+
+ -DCUDA_NVCC_FLAGS="--compiler-bindir;$(cuda_gccdir)"
+ -DOSL_EXTRA_NVCC_ARGS="--compiler-bindir;$(cuda_gccdir)"
+ -DCUDA_VERBOSE_BUILD="yes"
+ )
+ fi
+
+ if use partio; then
+ mycmakeargs+=(
+ -Dpartio_DIR="${EPREFIX}/usr"
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_test() {
+ # A bunch of tests only work when installed.
+ # So install them into the temp directory now.
+ DESTDIR="${T}" cmake_build install
+
+ ln -s "${CMAKE_USE_DIR}/src/cmake/" "${BUILD_DIR}/src/cmake" || die
+
+ if use optix; then
+ cp \
+ "${BUILD_DIR}/src/liboslexec/shadeops_cuda.ptx" \
+ "${BUILD_DIR}/src/testrender/"{optix_raytracer,quad,rend_lib_testrender,sphere,wrapper}".ptx" \
+ "${BUILD_DIR}/src/testshade/"{optix_grid_renderer,rend_lib_testshade}".ptx" \
+ "${BUILD_DIR}/bin/" || die
+
+ # NOTE this should go to cuda eclass
+ addwrite /dev/nvidiactl
+ addwrite /dev/nvidia0
+ addwrite /dev/nvidia-uvm
+ addwrite /dev/nvidia-caps
+ addwrite "/dev/char/"
+ fi
+
+ CMAKE_SKIP_TESTS=(
+ "broken"
+ "^render"
+
+ # broken with in-tree <=dev-libs/optix-7.5.0 and out of date
+ "^example-cuda$"
+
+ # outright fail
+ "^transform-reg.regress.batched.opt$"
+
+ # SIGABRT similar to https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/issues/1363
+ "^derivs.opt.rs_bitcode$"
+ "^geomath.batched$"
+ "^matrix.batched$"
+ "^matrix.batched.opt$"
+ "^spline-reg.regress.batched.opt$"
+ "^transformc.batched$"
+ )
+
+ # These only fail inside sandbox
+ if [[ "${OSL_OPTIONAL_TESTS}" != "true" ]]; then
+ CMAKE_SKIP_TESTS+=(
+ # TODO: investigate failures
+ # SIGABRT similar to https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/issues/1363
+ "^andor-reg.regress.batched.opt$"
+ "^arithmetic-reg.regress.batched.opt$"
+ "^array-assign-reg.regress.batched.opt$"
+ "^array-copy-reg.regress.batched.opt$"
+ "^array-length-reg.regress.batched$"
+ "^closure-parameters.batched$"
+ "^closure-parameters.batched.opt$"
+ "^closure.batched$"
+ "^closure.batched.opt$"
+ "^debug-uninit$"
+ "^debug-uninit.batched$"
+ "^debug-uninit.batched.opt$"
+ "^debug-uninit.opt$"
+ "^debug-uninit.opt.rs_bitcode$"
+ "^derivs$"
+ "^derivs.batched$"
+ "^derivs.batched.opt$"
+ "^derivs.opt$"
+ "^exponential$"
+ "^exponential.opt$"
+ "^exponential.opt.rs_bitcode$"
+ "^filterwidth-reg.regress.batched.opt$"
+ "^geomath$"
+ "^geomath.batched.opt$"
+ "^geomath.opt$"
+ "^geomath.opt.rs_bitcode$"
+ "^getattribute-camera.batched$"
+ "^getattribute-camera.batched.opt$"
+ "^getattribute-shader.batched.opt$"
+ "^gettextureinfo-reg.regress.batched.opt$"
+ "^gettextureinfo-udim-reg.regress.batched.opt$"
+ "^gettextureinfo.batched$"
+ "^hyperb.batched.opt$"
+ "^hyperb.opt$"
+ "^hyperb.opt.rs_bitcode$"
+ "^initlist.batched$"
+ "^initlist.batched.opt$"
+ "^linearstep.batched$"
+ "^linearstep.batched.opt$"
+ "^loop.batched$"
+ "^loop.batched.opt$"
+ "^matrix$"
+ "^matrix-compref-reg.regress.batched.opt$"
+ "^matrix-reg.regress.rsbitcode.opt$"
+ "^matrix.opt$"
+ "^matrix.opt.rs_bitcode$"
+ "^matrix.rsbitcode.opt$"
+ "^message-no-closure.batched$"
+ "^message-no-closure.batched.opt$"
+ "^message-reg.regress.batched.opt$"
+ "^miscmath$"
+ "^miscmath.batched$"
+ "^miscmath.batched.opt$"
+ "^miscmath.opt$"
+ "^miscmath.opt.rs_bitcode$"
+ "^noise-cell.batched$"
+ "^noise-gabor-reg.regress.batched.opt$"
+ "^noise-gabor.batched$"
+ "^noise-gabor.batched.opt$"
+ "^noise-generic.batched$"
+ "^noise-generic.batched.opt$"
+ "^noise-perlin.batched$"
+ "^noise-perlin.batched.opt$"
+ "^noise-reg.regress.batched.opt$"
+ "^noise-simplex.batched$"
+ "^noise-simplex.batched.opt$"
+ "^noise.batched$"
+ "^opt-warnings.batched$"
+ "^opt-warnings.batched.opt$"
+ "^pnoise-cell.batched$"
+ "^pnoise-gabor.batched$"
+ "^pnoise-gabor.batched.opt$"
+ "^pnoise-generic.batched$"
+ "^pnoise-generic.batched.opt$"
+ "^pnoise-perlin.batched$"
+ "^pnoise-perlin.batched.opt$"
+ "^pnoise-reg.regress.batched.opt$"
+ "^pnoise.batched$"
+ "^pointcloud.batched$"
+ "^pointcloud.batched.opt$"
+ "^regex-reg.regress.batched.opt$"
+ "^select.batched$"
+ "^select.batched.opt$"
+ "^shaderglobals.batched$"
+ "^shaderglobals.batched.opt$"
+ "^smoothstep-reg.regress.batched.opt$"
+ "^spline-derivbug.batched$"
+ "^spline-derivbug.batched.opt$"
+ "^spline.batched$"
+ "^spline.batched.opt$"
+ "^splineinverse-ident.batched$"
+ "^splineinverse-ident.batched.opt$"
+ "^split-reg.regress.batched.opt$"
+ "^string$"
+ "^string-reg.regress.batched.opt$"
+ "^string.batched$"
+ "^string.batched.opt$"
+ "^string.opt$"
+ "^string.opt.rs_bitcode$"
+ "^struct-array-mixture.batched$"
+ "^struct-array-mixture.batched.opt$"
+ "^struct.batched$"
+ "^test-fmt-matrixcolor.opt.rs_bitcode$"
+ "^testoptix-noise.optix.opt$"
+ "^testoptix-reparam.optix.opt$"
+ "^texture-environment-opts-reg.regress.batched.opt$"
+ "^texture-opts-reg.regress.batched.opt$"
+ "^texture-wrap.batched$"
+ "^texture-wrap.batched.opt$"
+ "^transcendental-reg.regress.batched.opt$"
+ "^transform$"
+ "^transform.batched$"
+ "^transform.batched.opt$"
+ "^transform.opt$"
+ "^transform.opt.rs_bitcode$"
+ "^transformc$"
+ "^transformc.batched.opt$"
+ "^transformc.opt$"
+ "^transformc.opt.rs_bitcode$"
+ "^transformc.rsbitcode.opt$"
+ "^trig$"
+ "^trig-reg.regress.batched.opt$"
+ "^trig.batched$"
+ "^trig.batched.opt$"
+ "^trig.opt$"
+ "^trig.opt.rs_bitcode$"
+ "^vecctr.batched$"
+ "^vecctr.batched.opt$"
+ "^vector$"
+ "^vector-reg.regress.batched.opt$"
+ "^vector.opt$"
+ "^vector.opt.rs_bitcode$"
+ "^xml-reg.regress.batched.opt$"
+ # diff
+ "^testoptix.optix.opt$"
+ )
+ fi
+
+ myctestargs=(
+ # src/build-scripts/ci-test.bash
+ '--force-new-ctest-process'
+ )
+
+ local -x DEBUG CXXFLAGS LD_LIBRARY_PATH DIR OSL_DIR OSL_SOURCE_DIR PYTHONPATH
+ DEBUG=1 # doubles the floating point tolerance
+ CXXFLAGS="-I${T}/usr/include"
+ LD_LIBRARY_PATH="${T}/usr/$(get_libdir)"
+ OSL_DIR="${T}/usr/$(get_libdir)/cmake/OSL"
+ OSL_SOURCE_DIR="${S}"
+
+ if use python; then
+ PYTHONPATH="${BUILD_DIR}/lib/python/site-packages"
+ fi
+
+ cmake_src_test
+
+ CMAKE_SKIP_TESTS=(
+ "^render-background$"
+ "^render-mx-furnace-sheen$"
+ "^render-mx-burley-diffuse$"
+ "^render-mx-conductor$"
+ "^render-microfacet$"
+ "^render-veachmis$"
+ "^render-ward$"
+ "^render-raytypes.opt$"
+ "^render-raytypes.opt.rs_bitcode$"
+ )
+
+ myctestargs=(
+ # src/build-scripts/ci-test.bash
+ '--force-new-ctest-process'
+ --repeat until-pass:10
+ -R "^render"
+ )
+
+ cmake_src_test
+}