diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-04-02 14:14:14 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-04-02 14:14:14 +0100 |
commit | 29e3ef4590d6bee24c4a3798d12a3cfef750bd54 (patch) | |
tree | 69809f1aec2e43091c328b92a308318c4c3affab /media-libs | |
parent | 77ebfe74c4b5125f8717ec29632589942911c594 (diff) |
gentoo auto-resync : 02:04:2024 - 14:14:14
Diffstat (limited to 'media-libs')
-rw-r--r-- | media-libs/Manifest.gz | bin | 69516 -> 69516 bytes | |||
-rw-r--r-- | media-libs/embree/Manifest | 6 | ||||
-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/Manifest | 5 | ||||
-rw-r--r-- | media-libs/oidn/files/oidn-2.2.2-amdgpu-targets.patch | 46 | ||||
-rw-r--r-- | media-libs/oidn/metadata.xml | 3 | ||||
-rw-r--r-- | media-libs/oidn/oidn-2.2.2.ebuild | 95 | ||||
-rw-r--r-- | media-libs/openpgl/Manifest | 2 | ||||
-rw-r--r-- | media-libs/openpgl/openpgl-0.5.0.ebuild | 2 | ||||
-rw-r--r-- | media-libs/osl/Manifest | 6 | ||||
-rw-r--r-- | media-libs/osl/metadata.xml | 5 | ||||
-rw-r--r-- | media-libs/osl/osl-1.12.14.0-r1.ebuild | 384 | ||||
-rw-r--r-- | media-libs/osl/osl-1.13.7.0.ebuild | 453 | ||||
-rw-r--r-- | media-libs/osl/osl-9999.ebuild | 443 |
15 files changed, 1494 insertions, 23 deletions
diff --git a/media-libs/Manifest.gz b/media-libs/Manifest.gz Binary files differindex 8e1d57fa7303..23c0a3382f0b 100644 --- a/media-libs/Manifest.gz +++ b/media-libs/Manifest.gz 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 +} |