Deps: Library changes for Blender 5.0
This commit includes the changes to the build system, updated hashes to the actual new libraries as well as a required test update. * DPC++ 6.2.0 RC * freetype 2.13.3 * HIP 6.4.5010 * IGC 2.16.0 * ISPC 1.28.0 * libharu 2.4.5 * libpng 1.6.50 * libvpx 1.15.2 * libxml2 2.14.5 * LLVM 20.1.8 * Manifold 3.2.1 * MaterialX 1.39.3 * OpenColorIO 2.4.2 * openexr 3.3.5 * OpenImageIO 3.0.9.1 * openjpeg 2.5.3 * OpenShadingLanguage 1.14.7.0 * openssl 3.5.2 * Python 3.11.13 * Rubber Band 4.0.0 * ShaderC 2025.3 * sqlite 3.50.4 * USD 25.08 * Wayland 1.24.0 Ref #138940 Co-authored-by: Ray Molenkamp <github@lazydodo.com> Co-authored-by: Jesse Yurkovich <jesse.y@gmail.com> Co-authored-by: Brecht Van Lommel <brecht@blender.org> Co-authored-by: Nikita Sirgienko <nikita.sirgienko@intel.com> Co-authored-by: Sybren A. Stüvel <sybren@blender.org> Co-authored-by: Kace <lakacey03@gmail.com> Co-authored-by: Sebastian Parborg <sebastian@blender.org> Co-authored-by: Anthony Roberts <anthony.roberts@linaro.org> Co-authored-by: Jonas Holzman <jonas@holzman.fr> Pull Request: https://projects.blender.org/blender/blender/pulls/144479
This commit is contained in:
committed by
Thomas Dinges
parent
61cc3af675
commit
66224d69b0
@@ -417,6 +417,13 @@ Build with external audaspace library installed on the system \
|
||||
mark_as_advanced(WITH_AUDASPACE)
|
||||
mark_as_advanced(WITH_SYSTEM_AUDASPACE)
|
||||
|
||||
if(WITH_AUDASPACE AND NOT WITH_SYSTEM_AUDASPACE)
|
||||
option(WITH_RUBBERBAND "\
|
||||
Build with Rubber Band for audio time-stretching and pitch-scaling (used by Audaspace)"
|
||||
OFF
|
||||
)
|
||||
endif()
|
||||
|
||||
set_and_warn_dependency(WITH_AUDASPACE WITH_SYSTEM_AUDASPACE OFF)
|
||||
|
||||
if(WITH_GHOST_X11)
|
||||
|
||||
@@ -91,6 +91,8 @@ if(NOT APPLE)
|
||||
include(cmake/hiprt.cmake)
|
||||
include(cmake/dpcpp.cmake)
|
||||
include(cmake/dpcpp_deps.cmake)
|
||||
include(cmake/emhash.cmake)
|
||||
include(cmake/parallelhashmap.cmake)
|
||||
if(NOT WIN32)
|
||||
include(cmake/igc.cmake)
|
||||
include(cmake/gmmlib.cmake)
|
||||
@@ -134,6 +136,8 @@ endif()
|
||||
if(NOT WIN32 OR ENABLE_MSYS2)
|
||||
include(cmake/gmp.cmake)
|
||||
include(cmake/openjpeg.cmake)
|
||||
include(cmake/sqlite.cmake)
|
||||
include(cmake/fftw.cmake)
|
||||
if(NOT WIN32 OR BUILD_MODE STREQUAL Release)
|
||||
include(cmake/openimagedenoise.cmake)
|
||||
include(cmake/lame.cmake)
|
||||
@@ -146,7 +150,6 @@ if(NOT WIN32 OR ENABLE_MSYS2)
|
||||
include(cmake/x265.cmake)
|
||||
include(cmake/aom.cmake)
|
||||
include(cmake/ffmpeg.cmake)
|
||||
include(cmake/fftw.cmake)
|
||||
include(cmake/flac.cmake)
|
||||
include(cmake/sndfile.cmake)
|
||||
if(UNIX)
|
||||
@@ -162,7 +165,6 @@ if(UNIX)
|
||||
include(cmake/bzip2.cmake)
|
||||
include(cmake/ffi.cmake)
|
||||
include(cmake/lzma.cmake)
|
||||
include(cmake/sqlite.cmake)
|
||||
endif()
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
@@ -182,6 +184,7 @@ include(cmake/spirv-reflect.cmake)
|
||||
include(cmake/pybind11.cmake)
|
||||
include(cmake/nanobind.cmake)
|
||||
include(cmake/manifold.cmake)
|
||||
include(cmake/rubberband.cmake)
|
||||
# Keep these last.
|
||||
include(cmake/deps_html.cmake)
|
||||
include(cmake/cve_check.cmake)
|
||||
|
||||
@@ -158,10 +158,11 @@ download_source(DPCPP)
|
||||
download_source(VCINTRINSICS)
|
||||
download_source(OPENCLHEADERS)
|
||||
download_source(ICDLOADER)
|
||||
download_source(MP11)
|
||||
download_source(EMHASH)
|
||||
download_source(DPCPP_SPIRV_HEADERS)
|
||||
download_source(UNIFIED_RUNTIME)
|
||||
download_source(UNIFIED_MEMORY_FRAMEWORK)
|
||||
download_source(PARALLEL_HASHMAP)
|
||||
download_source(IGC)
|
||||
download_source(IGC_LLVM)
|
||||
download_source(IGC_OPENCL_CLANG)
|
||||
@@ -189,3 +190,4 @@ download_source(DEFLATE)
|
||||
download_source(HIPRT)
|
||||
download_source(NANOBIND)
|
||||
download_source(MANIFOLD)
|
||||
download_source(RUBBERBAND)
|
||||
|
||||
@@ -39,7 +39,8 @@ set(DPCPP_EXTRA_ARGS
|
||||
-DLLVMGenXIntrinsics_SOURCE_DIR=${BUILD_DIR}/vcintrinsics/src/external_vcintrinsics/
|
||||
-DOpenCL_HEADERS=file://${PACKAGE_DIR}/${OPENCLHEADERS_FILE}
|
||||
-DOpenCL_LIBRARY_SRC=file://${PACKAGE_DIR}/${ICDLOADER_FILE}
|
||||
-DBOOST_MP11_SOURCE_DIR=${BUILD_DIR}/mp11/src/external_mp11/
|
||||
-DSYCL_EMHASH_DIR=${LIBDIR}/emhash/include
|
||||
-DEMHASH_SYS_LOC=${LIBDIR}/emhash/include/emhash
|
||||
-DLEVEL_ZERO_LIBRARY=${LIBDIR}/level-zero/lib/${LIBPREFIX}ze_loader${SHAREDLIBEXT}
|
||||
-DLEVEL_ZERO_INCLUDE_DIR=${LIBDIR}/level-zero/include/level_zero
|
||||
-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${BUILD_DIR}/dpcpp_spirvheaders/src/external_dpcpp_spirvheaders/
|
||||
@@ -49,21 +50,21 @@ set(DPCPP_EXTRA_ARGS
|
||||
-DSYCL_UMF_DISABLE_HWLOC=ON
|
||||
-DUMF_DISABLE_HWLOC=ON
|
||||
-DUMF_BUILD_SHARED_LIBRARY=OFF
|
||||
-DSYCL_ENABLE_XPTI_TRACING=OFF
|
||||
-DSYCL_ENABLE_XPTI_TRACING=ON
|
||||
-DSYCL_INCLUDE_TESTS=OFF
|
||||
-DUR_ENABLE_TRACING=OFF
|
||||
-DUR_BUILD_TOOLS=OFF
|
||||
-DUR_ENABLE_TRACING=ON
|
||||
-DXPTIFW_PARALLEL_HASHMAP_HEADERS=${LIBDIR}/parallelhashmap/include
|
||||
# Below here is copied from an invocation of buildbot/config.py
|
||||
-DLLVM_ENABLE_ASSERTIONS=ON
|
||||
-DLLVM_TARGETS_TO_BUILD=X86
|
||||
-DLLVM_EXTERNAL_PROJECTS=sycl^^llvm-spirv^^opencl^^libdevice^^lld
|
||||
-DLLVM_EXTERNAL_PROJECTS=sycl^^llvm-spirv^^opencl^^libdevice^^xpti^^xptifw^^lld
|
||||
-DLLVM_EXTERNAL_SYCL_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/sycl
|
||||
-DLLVM_EXTERNAL_LLVM_SPIRV_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/llvm-spirv
|
||||
-DLLVM_EXTERNAL_XPTI_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/xpti
|
||||
-DXPTI_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/xpti
|
||||
-DLLVM_EXTERNAL_XPTIFW_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/xptifw
|
||||
-DLLVM_EXTERNAL_LIBDEVICE_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/libdevice
|
||||
-DLLVM_ENABLE_PROJECTS=clang^^sycl^^llvm-spirv^^opencl^^libdevice^^lld
|
||||
-DLLVM_ENABLE_PROJECTS=clang^^sycl^^llvm-spirv^^opencl^^libdevice^^xpti^^xptifw^^lld
|
||||
-DLIBCLC_TARGETS_TO_BUILD=
|
||||
-DLIBCLC_GENERATE_REMANGLED_VARIANTS=OFF
|
||||
-DSYCL_BUILD_PI_HIP_PLATFORM=AMD
|
||||
@@ -136,12 +137,13 @@ add_dependencies(
|
||||
external_vcintrinsics
|
||||
external_openclheaders
|
||||
external_icdloader
|
||||
external_mp11
|
||||
external_emhash
|
||||
external_level-zero
|
||||
external_dpcpp_spirvheaders
|
||||
external_unifiedruntime
|
||||
external_unifiedmemoryframework
|
||||
external_zstd
|
||||
external_parallelhashmap
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
@@ -162,6 +164,7 @@ else()
|
||||
harvest(external_dpcpp dpcpp/bin dpcpp/bin "*")
|
||||
harvest(external_dpcpp dpcpp/include dpcpp/include "*")
|
||||
harvest(external_dpcpp dpcpp/lib dpcpp/lib "libsycl*")
|
||||
harvest(external_dpcpp dpcpp/lib dpcpp/lib "libxpti*")
|
||||
harvest(external_dpcpp dpcpp/lib dpcpp/lib "libur*")
|
||||
harvest(external_dpcpp dpcpp/lib/clang dpcpp/lib/clang "*")
|
||||
endif()
|
||||
|
||||
@@ -42,16 +42,6 @@ ExternalProject_Add(external_icdloader
|
||||
INSTALL_COMMAND echo .
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_mp11
|
||||
URL file://${PACKAGE_DIR}/${MP11_FILE}
|
||||
URL_HASH ${MP11_HASH_TYPE}=${MP11_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/mp11
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_dpcpp_spirvheaders
|
||||
URL file://${PACKAGE_DIR}/${DPCPP_SPIRV_HEADERS_FILE}
|
||||
URL_HASH ${DPCPP_SPIRV_HEADERS_HASH_TYPE}=${DPCPP_SPIRV_HEADERS_HASH}
|
||||
|
||||
@@ -139,6 +139,9 @@ if(WIN32)
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/embree/lib/embree4_d.lib
|
||||
${HARVEST_TARGET}/embree/lib/embree4_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/embree/lib/embree4_sycl_d.lib
|
||||
${HARVEST_TARGET}/embree/lib/embree4_sycl_d.lib
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
|
||||
@@ -20,6 +20,7 @@ set(EMBREE_EXTRA_ARGS
|
||||
-DEMBREE_TASKING_SYSTEM=TBB
|
||||
-DEMBREE_TBB_ROOT=${LIBDIR}/tbb
|
||||
-DTBB_ROOT=${LIBDIR}/tbb
|
||||
-DCOMPILER_HAS_SYCL_SUPPORT=OFF
|
||||
)
|
||||
|
||||
set(EMBREE_EXTRA_ARGS
|
||||
|
||||
23
build_files/build_environment/cmake/emhash.cmake
Normal file
23
build_files/build_environment/cmake/emhash.cmake
Normal file
@@ -0,0 +1,23 @@
|
||||
# SPDX-FileCopyrightText: 2022-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(EMHASH_EXTRA_ARGS
|
||||
-DWITH_BENCHMARKS=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_emhash
|
||||
URL file://${PACKAGE_DIR}/${EMHASH_FILE}
|
||||
URL_HASH ${EMHASH_HASH_TYPE}=${EMHASH_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/emhash
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/emhash/src/external_emhash <
|
||||
${PATCH_DIR}/emhash.diff
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/emhash
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${EMHASH_EXTRA_ARGS}
|
||||
)
|
||||
@@ -11,6 +11,7 @@ ExternalProject_Add(external_ffi
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/ffi/src/external_ffi/ &&
|
||||
${CONFIGURE_COMMAND} --prefix=${LIBDIR}/ffi
|
||||
--disable-multi-os-directory
|
||||
--enable-shared=no
|
||||
--enable-static=yes
|
||||
--with-pic
|
||||
@@ -24,11 +25,8 @@ ExternalProject_Add(external_ffi
|
||||
cd ${BUILD_DIR}/ffi/src/external_ffi/ &&
|
||||
make install
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 0 -d
|
||||
${BUILD_DIR}/ffi/src/external_ffi <
|
||||
${PATCH_DIR}/ffi.diff &&
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d
|
||||
# Fix compilation errors on Apple Clang >= 17, remove when FFI is updated beyond 3.4.7, see PR #136934 for details.
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/ffi/src/external_ffi <
|
||||
${PATCH_DIR}/ffi_apple_clang_17.diff
|
||||
|
||||
|
||||
@@ -163,7 +163,6 @@ ExternalProject_Add(external_ffmpeg
|
||||
cd ${BUILD_DIR}/ffmpeg/src/external_ffmpeg/ &&
|
||||
${FFMPEG_ENV} ${CONFIGURE_COMMAND_NO_TARGET} ${FFMPEG_EXTRA_FLAGS}
|
||||
--disable-lzma
|
||||
--disable-avfilter
|
||||
--disable-vdpau
|
||||
--disable-bzlib
|
||||
--disable-libgsm
|
||||
|
||||
@@ -79,13 +79,15 @@ if(WIN32)
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
add_custom_target(external_fftw)
|
||||
add_dependencies(
|
||||
external_fftw
|
||||
external_fftw3_double
|
||||
external_fftw3_float)
|
||||
endif()
|
||||
|
||||
add_custom_target(external_fftw)
|
||||
add_dependencies(
|
||||
external_fftw
|
||||
external_fftw3_double
|
||||
external_fftw3_float)
|
||||
|
||||
if(NOT WIN32)
|
||||
harvest(external_fftw3 fftw3/include fftw3/include "*.h")
|
||||
harvest(external_fftw3 fftw3/lib fftw3/lib "*.a")
|
||||
endif()
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(HARU_EXTRA_ARGS
|
||||
-DLIBHPDF_SHARED=OFF
|
||||
-DLIBHPDF_STATIC=ON
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DLIBHPDF_EXAMPLES=OFF
|
||||
-DLIBHPDF_ENABLE_EXCEPTIONS=ON
|
||||
)
|
||||
@@ -15,10 +14,6 @@ ExternalProject_Add(external_haru
|
||||
URL_HASH ${HARU_HASH_TYPE}=${HARU_HASH}
|
||||
PREFIX ${BUILD_DIR}/haru
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/haru/src/external_haru <
|
||||
${PATCH_DIR}/haru.diff
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=${LIBDIR}/haru
|
||||
${DEFAULT_CMAKE_FLAGS} ${HARU_EXTRA_ARGS}
|
||||
@@ -33,8 +28,8 @@ if(WIN32)
|
||||
${LIBDIR}/haru/include
|
||||
${HARVEST_TARGET}/haru/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/haru/lib/libhpdfs.lib
|
||||
${HARVEST_TARGET}/haru/lib/libhpdfs.lib
|
||||
${LIBDIR}/haru/lib/hpdf.lib
|
||||
${HARVEST_TARGET}/haru/lib/hpdf.lib
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
|
||||
@@ -51,13 +51,7 @@ ExternalProject_Add(external_igc_llvm
|
||||
${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0004-OpenCL-Allow-undefining-header-only-macros.patch &&
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${IGC_LLVM_SOURCE_DIR} <
|
||||
${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0005-Enable-use-of-GNU-C-extension.patch &&
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${IGC_LLVM_SOURCE_DIR} <
|
||||
${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0006-Make-globals-used-for-array-initialization-codegen-c.patch &&
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${IGC_LLVM_SOURCE_DIR} <
|
||||
${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0007-clang-Sema-check-default-argument-promotions-for-pri.patch
|
||||
${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0005-Enable-use-of-GNU-C-extension.patch
|
||||
)
|
||||
add_dependencies(
|
||||
external_igc_llvm
|
||||
|
||||
@@ -65,11 +65,12 @@ ExternalProject_Add(external_ispc
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${ISPC_HASH_TYPE}=${ISPC_HASH}
|
||||
PREFIX ${BUILD_DIR}/ispc
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/ispc/src/external_ispc <
|
||||
${PATCH_DIR}/ispc.diff
|
||||
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/ispc
|
||||
-Wno-dev
|
||||
|
||||
@@ -8,6 +8,7 @@ set(OCLOC_EXTRA_ARGS
|
||||
-DNEO_CURRENT_PLATFORMS_SUPPORT=1
|
||||
-DNEO_LEGACY_PLATFORMS_SUPPORT=0
|
||||
-DBUILD_WITH_L0=0
|
||||
-DNEO_BUILD_UNVERSIONED_OCLOC=TRUE
|
||||
-DIGC_DIR=${LIBDIR}/igc
|
||||
-DGMM_DIR=${LIBDIR}/gmmlib
|
||||
)
|
||||
@@ -24,10 +25,6 @@ ExternalProject_Add(external_ocloc
|
||||
${OCLOC_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/ocloc
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/ocloc/src/external_ocloc/ <
|
||||
${PATCH_DIR}/ocloc.diff
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
|
||||
@@ -41,19 +41,11 @@ if(APPLE)
|
||||
)
|
||||
endif()
|
||||
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
if(WIN32)
|
||||
set(OCIO_PATCH
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/opencolorio/src/external_opencolorio <
|
||||
${PATCH_DIR}/ocio_2089.diff
|
||||
)
|
||||
else()
|
||||
set(OPENCOLORIO_EXTRA_ARGS
|
||||
${OPENCOLORIO_EXTRA_ARGS}
|
||||
-DOCIO_USE_SSE=OFF
|
||||
)
|
||||
endif()
|
||||
if(BLENDER_PLATFORM_ARM AND NOT WIN32)
|
||||
set(OPENCOLORIO_EXTRA_ARGS
|
||||
${OPENCOLORIO_EXTRA_ARGS}
|
||||
-DOCIO_USE_SSE=OFF
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
|
||||
@@ -31,10 +31,6 @@ ExternalProject_Add(external_openexr
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PREFIX ${BUILD_DIR}/openexr
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/openexr/src/external_openexr <
|
||||
${PATCH_DIR}/openexr_1986.diff
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/openexr
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
|
||||
@@ -46,6 +46,15 @@ if(WIN32 AND NOT BLENDER_PLATFORM_ARM)
|
||||
-DCMAKE_C_COMPILER=${LIBDIR}/dpcpp/bin/clang.exe
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
)
|
||||
if(DEFINED ENV{ROCM_PATH})
|
||||
# Older ROCM shipped a /bin/hipconfig (no extension) and oidn
|
||||
# uses it to validate a valid rocm folder, given this file
|
||||
# is no longer shipped work around it for now by passing the
|
||||
# path ourselves, so we don't have to rely on their find rocm
|
||||
# functionality.
|
||||
cmake_path(CONVERT $ENV{ROCM_PATH} TO_CMAKE_PATH_LIST ROCM_PATH NORMALIZE)
|
||||
list(APPEND OIDN_EXTRA_ARGS -DROCM_PATH=${ROCM_PATH})
|
||||
endif()
|
||||
set(OIDN_CMAKE_FLAGS ${DEFAULT_CLANG_CMAKE_FLAGS}
|
||||
-DCMAKE_CXX_COMPILER=${LIBDIR}/dpcpp/bin/clang++.exe
|
||||
-DCMAKE_C_COMPILER=${LIBDIR}/dpcpp/bin/clang.exe
|
||||
|
||||
@@ -12,6 +12,7 @@ if(UNIX AND NOT APPLE)
|
||||
# This causes linking to static pthread libraries which gives link errors.
|
||||
# Since we manually specify library paths it should static link other libs.
|
||||
set(OPENIMAGEIO_LINKSTATIC -DLINKSTATIC=OFF)
|
||||
set(OIIO_SIMD_FLAGS -DUSE_SIMD=sse4.2)
|
||||
else()
|
||||
set(OPENIMAGEIO_LINKSTATIC -DLINKSTATIC=ON)
|
||||
endif()
|
||||
@@ -20,7 +21,7 @@ if(WIN32)
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
set(OIIO_SIMD_FLAGS -DUSE_SIMD=0)
|
||||
else()
|
||||
set(OIIO_SIMD_FLAGS -DUSE_SIMD=sse2)
|
||||
set(OIIO_SIMD_FLAGS -DUSE_SIMD=sse4.2)
|
||||
endif()
|
||||
set(OPENJPEG_POSTFIX _msvc)
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
@@ -133,7 +134,7 @@ ExternalProject_Add(external_openimageio
|
||||
${PATCH_DIR}/openimageio.diff &&
|
||||
${PATCH_CMD} -p 1 -N -d
|
||||
${BUILD_DIR}/openimageio/src/external_openimageio/ <
|
||||
${PATCH_DIR}/oiio_windows_arm64.diff
|
||||
${PATCH_DIR}/openimageio_png_cicp_4746.diff
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/openimageio
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
|
||||
@@ -47,10 +47,6 @@ else()
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OPENJPEG_HASH_TYPE}=${OPENJPEG_HASH}
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/openjpeg_msvc/src/external_openjpeg_msvc <
|
||||
${PATCH_DIR}/openjpeg_msvc.diff
|
||||
|
||||
PREFIX ${BUILD_DIR}/openjpeg_msvc
|
||||
|
||||
CMAKE_ARGS
|
||||
|
||||
19
build_files/build_environment/cmake/parallelhashmap.cmake
Normal file
19
build_files/build_environment/cmake/parallelhashmap.cmake
Normal file
@@ -0,0 +1,19 @@
|
||||
# SPDX-FileCopyrightText: 2022-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(PARALLELHASHMAP_EXTRA_ARGS
|
||||
-DPHMAP_BUILD_TESTS=OFF
|
||||
-DPHMAP_BUILD_EXAMPLES=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_parallelhashmap
|
||||
URL file://${PACKAGE_DIR}/${PARALLEL_HASHMAP_FILE}
|
||||
URL_HASH ${PARALLEL_HASHMAP_HASH_TYPE}=${PARALLEL_HASHMAP_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/parallelhashmap
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/parallelhashmap
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${PARALLELHASHMAP_EXTRA_ARGS}
|
||||
)
|
||||
@@ -30,11 +30,13 @@ if(WIN32)
|
||||
set(PYTHON_EXTERNALS_FOLDER ${BUILD_DIR}/python/src/external_python/externals)
|
||||
set(ZLIB_SOURCE_FOLDER ${BUILD_DIR}/zlib/src/external_zlib)
|
||||
set(SSL_SOURCE_FOLDER ${BUILD_DIR}/ssl/src/external_ssl)
|
||||
set(SQLITE_SOURCE_FOLDER ${BUILD_DIR}/sqlite/src/external_sqlite)
|
||||
set(DOWNLOADS_EXTERNALS_FOLDER ${DOWNLOAD_DIR}/externals)
|
||||
|
||||
cmake_to_dos_path(${PYTHON_EXTERNALS_FOLDER} PYTHON_EXTERNALS_FOLDER_DOS)
|
||||
cmake_to_dos_path(${ZLIB_SOURCE_FOLDER} ZLIB_SOURCE_FOLDER_DOS)
|
||||
cmake_to_dos_path(${SSL_SOURCE_FOLDER} SSL_SOURCE_FOLDER_DOS)
|
||||
cmake_to_dos_path(${SQLITE_SOURCE_FOLDER} SQLITE_SOURCE_FOLDER_DOS)
|
||||
cmake_to_dos_path(${DOWNLOADS_EXTERNALS_FOLDER} DOWNLOADS_EXTERNALS_FOLDER_DOS)
|
||||
|
||||
ExternalProject_Add(external_python
|
||||
@@ -50,6 +52,7 @@ if(WIN32)
|
||||
PATCH_COMMAND mkdir ${PYTHON_EXTERNALS_FOLDER_DOS} &&
|
||||
mklink /J ${PYTHON_EXTERNALS_FOLDER_DOS}\\zlib-1.3.1 ${ZLIB_SOURCE_FOLDER_DOS} &&
|
||||
mklink /J ${PYTHON_EXTERNALS_FOLDER_DOS}\\openssl-3.0.15 ${SSL_SOURCE_FOLDER_DOS} &&
|
||||
mklink /J ${PYTHON_EXTERNALS_FOLDER_DOS}\\sqlite-3.45.1.0 ${SQLITE_SOURCE_FOLDER_DOS} &&
|
||||
${CMAKE_COMMAND} -E copy
|
||||
${ZLIB_SOURCE_FOLDER}/../external_zlib-build/zconf.h
|
||||
${PYTHON_EXTERNALS_FOLDER}/zlib-1.3.1/zconf.h &&
|
||||
@@ -195,6 +198,7 @@ add_dependencies(
|
||||
external_python
|
||||
external_ssl
|
||||
external_zlib
|
||||
external_sqlite
|
||||
)
|
||||
if(UNIX)
|
||||
add_dependencies(
|
||||
@@ -202,7 +206,6 @@ if(UNIX)
|
||||
external_bzip2
|
||||
external_ffi
|
||||
external_lzma
|
||||
external_sqlite
|
||||
)
|
||||
endif()
|
||||
|
||||
|
||||
69
build_files/build_environment/cmake/rubberband.cmake
Normal file
69
build_files/build_environment/cmake/rubberband.cmake
Normal file
@@ -0,0 +1,69 @@
|
||||
# # SPDX-FileCopyrightText: 2025 Blender Authors
|
||||
# #
|
||||
# # SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WIN32)
|
||||
set(RUBBERBAND_CONFIGURE_ENV ${CONFIGURE_ENV_MSVC})
|
||||
set(FFTW_DIR ${LIBDIR}/fftw3/lib/pkgconfig)
|
||||
file(TO_NATIVE_PATH "${FFTW_DIR}" FFTW_DIR)
|
||||
set(RUBBERBAND_PKG_ENV PKG_CONFIG_PATH=${FFTW_DIR})
|
||||
else()
|
||||
set(RUBBERBAND_CONFIGURE_ENV ${CONFIGURE_ENV})
|
||||
set(RUBBERBAND_PKG_ENV "PKG_CONFIG_PATH=\
|
||||
${LIBDIR}/fftw3/lib/pkgconfig:\
|
||||
$PKG_CONFIG_PATH"
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_rubberband
|
||||
URL file://${PACKAGE_DIR}/${RUBBERBAND_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${RUBBERBAND_HASH_TYPE}=${RUBBERBAND_HASH}
|
||||
PREFIX ${BUILD_DIR}/rubberband
|
||||
|
||||
CONFIGURE_COMMAND ${RUBBERBAND_CONFIGURE_ENV} &&
|
||||
${CMAKE_COMMAND} -E env ${RUBBERBAND_PKG_ENV} ${MESON} setup
|
||||
--prefix ${LIBDIR}/rubberband
|
||||
--libdir lib
|
||||
${MESON_BUILD_TYPE}
|
||||
-Dauto_features=disabled
|
||||
-Ddefault_library=static
|
||||
-Dfft=fftw
|
||||
${BUILD_DIR}/rubberband/src/external_rubberband-build
|
||||
${BUILD_DIR}/rubberband/src/external_rubberband
|
||||
|
||||
BUILD_COMMAND ninja
|
||||
INSTALL_COMMAND ninja install
|
||||
INSTALL_DIR ${LIBDIR}/rubberband
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_rubberband
|
||||
external_fftw
|
||||
# Needed for `MESON`.
|
||||
external_python_site_packages
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_rubberband after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/rubberband/include
|
||||
${HARVEST_TARGET}/rubberband/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/rubberband/lib/rubberband-static.lib
|
||||
${HARVEST_TARGET}/rubberband/lib/rubberband-static.lib
|
||||
DEPENDEES install
|
||||
)
|
||||
else()
|
||||
ExternalProject_Add_Step(external_rubberband after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/rubberband/lib/rubberband-static.lib
|
||||
${HARVEST_TARGET}/rubberband/lib/rubberband-static_d.lib
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_rubberband rubberband/include rubberband/include "*.h")
|
||||
harvest(external_rubberband rubberband/lib rubberband/lib "*.a")
|
||||
endif()
|
||||
@@ -5,6 +5,21 @@
|
||||
set(SQLITE_CONFIGURE_ENV echo .)
|
||||
set(SQLITE_CONFIGURATION_ARGS)
|
||||
|
||||
if(WIN32)
|
||||
# Python will build this with its preferred build options.
|
||||
# We only need to unpack sqlite.
|
||||
ExternalProject_Add(external_sqlite
|
||||
URL file://${PACKAGE_DIR}/${SQLITE_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${SQLITE_HASH_TYPE}=${SQLITE_HASH}
|
||||
PREFIX ${BUILD_DIR}/sqlite
|
||||
CONFIGURE_COMMAND echo "."
|
||||
BUILD_COMMAND echo "."
|
||||
INSTALL_COMMAND echo "."
|
||||
INSTALL_DIR ${LIBDIR}/sqlite
|
||||
)
|
||||
endif()
|
||||
|
||||
if(UNIX)
|
||||
if(NOT APPLE)
|
||||
set(SQLITE_LDFLAGS -Wl,--as-needed)
|
||||
@@ -21,7 +36,6 @@ if(UNIX)
|
||||
-DSQLITE_ENABLE_DBSTAT_VTAB \
|
||||
-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1 \
|
||||
-DSQLITE_ENABLE_LOAD_EXTENSION \
|
||||
-DSQLITE_ENABLE_JSON1 \
|
||||
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
|
||||
-DSQLITE_THREADSAFE=1 \
|
||||
-DSQLITE_ENABLE_FTS3_TOKENIZER=1 \
|
||||
@@ -41,36 +55,28 @@ if(UNIX)
|
||||
${SQLITE_CONFIGURATION_ARGS}
|
||||
--enable-threadsafe
|
||||
--enable-load-extension
|
||||
--enable-json1
|
||||
--enable-fts4
|
||||
--enable-fts5
|
||||
# While building `tcl` is harmless, it causes problems when the install step
|
||||
# tries to copy the files into the system path.
|
||||
# Since this isn't required by Python or Blender this can be disabled.
|
||||
# Note that Debian (for example), splits this off into a separate package,
|
||||
# so it's safe to turn off.
|
||||
--disable-tcl
|
||||
--enable-shared=no
|
||||
--disable-shared
|
||||
)
|
||||
ExternalProject_Add(external_sqlite
|
||||
URL file://${PACKAGE_DIR}/${SQLITE_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${SQLITE_HASH_TYPE}=${SQLITE_HASH}
|
||||
PREFIX ${BUILD_DIR}/sqlite
|
||||
|
||||
CONFIGURE_COMMAND ${SQLITE_CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/sqlite/src/external_sqlite/ &&
|
||||
${CONFIGURE_COMMAND} --prefix=${LIBDIR}/sqlite ${SQLITE_CONFIGURATION_ARGS}
|
||||
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/sqlite/src/external_sqlite/ &&
|
||||
make -j${MAKE_THREADS}
|
||||
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/sqlite/src/external_sqlite/ &&
|
||||
make install
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/sqlite
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_sqlite
|
||||
URL file://${PACKAGE_DIR}/${SQLITE_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${SQLITE_HASH_TYPE}=${SQLITE_HASH}
|
||||
PREFIX ${BUILD_DIR}/sqlite
|
||||
|
||||
CONFIGURE_COMMAND ${SQLITE_CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/sqlite/src/external_sqlite/ &&
|
||||
${CONFIGURE_COMMAND} --prefix=${LIBDIR}/sqlite ${SQLITE_CONFIGURATION_ARGS}
|
||||
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/sqlite/src/external_sqlite/ &&
|
||||
make -j${MAKE_THREADS}
|
||||
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/sqlite/src/external_sqlite/ &&
|
||||
make install
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/sqlite
|
||||
)
|
||||
|
||||
@@ -24,6 +24,7 @@ if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
list(APPEND USD_PLATFORM_FLAGS -DPXR_USE_DEBUG_PYTHON=ON)
|
||||
list(APPEND USD_PLATFORM_FLAGS -DOPENVDB_LIBRARY=${LIBDIR}/openvdb/lib/openvdb_d.lib)
|
||||
list(APPEND USD_PLATFORM_FLAGS -DCMAKE_MSVC_DEBUG_INFORMATION_FORMAT='')
|
||||
endif()
|
||||
elseif(UNIX)
|
||||
set(USD_PLATFORM_FLAGS
|
||||
@@ -45,11 +46,6 @@ elseif(UNIX)
|
||||
list(APPEND USD_PLATFORM_FLAGS
|
||||
-DCMAKE_SHARED_LINKER_FLAGS=${USD_SHARED_LINKER_FLAGS}
|
||||
)
|
||||
# Metal only patch for MaterialX 1.39 issues.
|
||||
set(USD_EXTRA_PATCHES
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/usd/src/external_usd <
|
||||
${PATCH_DIR}/usd_3519.diff &&)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -103,6 +99,7 @@ set(USD_EXTRA_ARGS
|
||||
-DPXR_BUILD_USD_TOOLS=OFF
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
-DTBB_DIR=${LIBDIR}/tbb/lib/cmake/TBB
|
||||
-DTBB_INCLUDE_DIRS=${LIBDIR}/tbb/include
|
||||
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${SHAREDLIBEXT}
|
||||
-DTBB_LIBRARIES_DEBUG=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${SHAREDLIBEXT}
|
||||
@@ -134,7 +131,6 @@ ExternalProject_Add(external_usd
|
||||
LIST_SEPARATOR ^^
|
||||
|
||||
PATCH_COMMAND
|
||||
${USD_EXTRA_PATCHES}
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/usd/src/external_usd <
|
||||
${PATCH_DIR}/usd.diff &&
|
||||
@@ -144,24 +140,18 @@ ExternalProject_Add(external_usd
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/usd/src/external_usd <
|
||||
${PATCH_DIR}/usd_ctor.diff &&
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/usd/src/external_usd <
|
||||
${PATCH_DIR}/usd_3243.diff &&
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/usd/src/external_usd <
|
||||
${PATCH_DIR}/usd_forward_compat.diff &&
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/usd/src/external_usd <
|
||||
${PATCH_DIR}/usd_noboost.diff &&
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/usd/src/external_usd <
|
||||
${PATCH_DIR}/usd_no_vulkan_sdk.diff &&
|
||||
# The patch just makes empty, but we need it to be removed to avoid
|
||||
# including an empty file instead of the actual vma header.
|
||||
${CMAKE_COMMAND} -E remove ${BUILD_DIR}/usd/src/external_usd/pxr/imaging/hgiVulkan/vk_mem_alloc.h &&
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/usd/src/external_usd <
|
||||
${PATCH_DIR}/usd_storm_vulkan.diff &&
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/usd/src/external_usd <
|
||||
${PATCH_DIR}/usd_3666_vulkan_amd.diff
|
||||
${PATCH_DIR}/usd_storm_vulkan.diff
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/usd
|
||||
-Wno-dev
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
set(RELEASE_GCC_VERSION 11.2)
|
||||
set(RELEASE_CUDA_VERSION 12.8)
|
||||
set(RELEASE_HIP_VERSION 6.3)
|
||||
set(RELEASE_HIP_VERSION 6.4)
|
||||
|
||||
# Libraries
|
||||
#
|
||||
@@ -61,10 +61,10 @@ Copyright (c) 2015, Archontis Politis.
|
||||
Copyright (c) 2019, Christopher Robinson.
|
||||
]=])
|
||||
|
||||
set(PNG_VERSION 1.6.43)
|
||||
set(PNG_VERSION 1.6.50)
|
||||
set(PNG_NAME libpng)
|
||||
set(PNG_URI http://prdownloads.sourceforge.net/libpng/libpng-${PNG_VERSION}.tar.xz)
|
||||
set(PNG_HASH 6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c)
|
||||
set(PNG_HASH 4df396518620a7aa3651443e87d1b2862e4e88cad135a8b93423e01706232307)
|
||||
set(PNG_HASH_TYPE SHA256)
|
||||
set(PNG_FILE libpng-${PNG_VERSION}.tar.xz)
|
||||
set(PNG_CPE "cpe:2.3:a:libpng:libpng:${PNG_VERSION}:*:*:*:*:*:*:*")
|
||||
@@ -127,9 +127,9 @@ set(DEFLATE_HOMEPAGE https://github.com/ebiggers/libdeflate)
|
||||
set(DEFLATE_LICENSE SPDX:MIT)
|
||||
set(DEFLATE_COPYRIGHT "Copyright 2016 Eric Biggers")
|
||||
|
||||
set(OPENEXR_VERSION 3.3.2)
|
||||
set(OPENEXR_VERSION 3.3.5)
|
||||
set(OPENEXR_URI https://github.com/AcademySoftwareFoundation/openexr/archive/v${OPENEXR_VERSION}.tar.gz)
|
||||
set(OPENEXR_HASH 0ca7b46575537ff495d9914166aafa65)
|
||||
set(OPENEXR_HASH fd5404d49331e24c26f4a263b13a35d4)
|
||||
set(OPENEXR_HASH_TYPE MD5)
|
||||
set(OPENEXR_FILE openexr-${OPENEXR_VERSION}.tar.gz)
|
||||
set(OPENEXR_CPE "cpe:2.3:a:openexr:openexr:${OPENEXR_VERSION}:*:*:*:*:*:*:*")
|
||||
@@ -163,9 +163,9 @@ else()
|
||||
set(OPENEXR_VERSION_POSTFIX)
|
||||
endif()
|
||||
|
||||
set(FREETYPE_VERSION 2.13.0)
|
||||
set(FREETYPE_VERSION 2.13.3)
|
||||
set(FREETYPE_URI http://prdownloads.sourceforge.net/freetype/freetype-${FREETYPE_VERSION}.tar.gz)
|
||||
set(FREETYPE_HASH 98bc3cf234fe88ef3cf24569251fe0a4)
|
||||
set(FREETYPE_HASH ac1f0b517f62bd40d50bc995faa5741d)
|
||||
set(FREETYPE_HASH_TYPE MD5)
|
||||
set(FREETYPE_FILE freetype-${FREETYPE_VERSION}.tar.gz)
|
||||
set(FREETYPE_CPE "cpe:2.3:a:freetype:freetype:${FREETYPE_VERSION}:*:*:*:*:*:*:*")
|
||||
@@ -232,9 +232,9 @@ set(SDL_HOMEPAGE https://www.libsdl.org)
|
||||
set(SDL_LICENSE SPDX:Zlib)
|
||||
set(SDL_COPYRIGHT "Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>")
|
||||
|
||||
set(OPENCOLORIO_VERSION 2.4.1)
|
||||
set(OPENCOLORIO_VERSION 2.4.2)
|
||||
set(OPENCOLORIO_URI https://github.com/AcademySoftwareFoundation/OpenColorIO/archive/v${OPENCOLORIO_VERSION}.tar.gz)
|
||||
set(OPENCOLORIO_HASH a11368ef8f001837f29b7dd18dbd2290)
|
||||
set(OPENCOLORIO_HASH db64ac0b4a67fd8e6d6d8111dccade29)
|
||||
set(OPENCOLORIO_HASH_TYPE MD5)
|
||||
set(OPENCOLORIO_FILE OpenColorIO-${OPENCOLORIO_VERSION}.tar.gz)
|
||||
set(OPENCOLORIO_NAME OpenColorIO)
|
||||
@@ -255,10 +255,10 @@ Copyright (C) Nathan Moinvaziri https://github.com/zlib-ng/minizip-ng.
|
||||
Copyright (C) 1998-2010 Gilles Vollant https://www.winimage.com/zLibDll/minizip.html.
|
||||
]=])
|
||||
|
||||
set(LLVM_VERSION 17.0.6)
|
||||
set(LLVM_VERSION 20.1.8)
|
||||
set(LLVM_NAME LLVM)
|
||||
set(LLVM_URI https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/llvm-project-${LLVM_VERSION}.src.tar.xz)
|
||||
set(LLVM_HASH 62a09d65240a5133f001ace48269dbfc)
|
||||
set(LLVM_HASH 915e251a657450a2ba8e4c106e4f9555)
|
||||
set(LLVM_HASH_TYPE MD5)
|
||||
set(LLVM_FILE llvm-project-${LLVM_VERSION}.src.tar.xz)
|
||||
set(LLVM_CPE "cpe:2.3:a:llvm:compiler:${LLVM_VERSION}:*:*:*:*:*:*:*")
|
||||
@@ -266,10 +266,10 @@ set(LLVM_HOMEPAGE https://github.com/llvm/llvm-project/)
|
||||
set(LLVM_LICENSE SPDX:Apache-2.0 WITH LLVM-exception)
|
||||
set(LLVM_COPYRIGHT "Copyright (c) 2003-2019 University of Illinois at Urbana-Champaign. All rights reserved.")
|
||||
|
||||
set(OPENIMAGEIO_VERSION v3.0.6.1)
|
||||
set(OPENIMAGEIO_VERSION v3.0.9.1)
|
||||
set(OPENIMAGEIO_NAME OpenImageIO)
|
||||
set(OPENIMAGEIO_URI https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/${OPENIMAGEIO_VERSION}.tar.gz)
|
||||
set(OPENIMAGEIO_HASH 935f926a7457ffd49fa4774449e99325)
|
||||
set(OPENIMAGEIO_HASH 5a3490d405615f48d7340ba4af41380d)
|
||||
set(OPENIMAGEIO_HASH_TYPE MD5)
|
||||
set(OPENIMAGEIO_FILE OpenImageIO-${OPENIMAGEIO_VERSION}.tar.gz)
|
||||
set(OPENIMAGEIO_HOMEPAGE https://github.com/AcademySoftwareFoundation/OpenImageIO)
|
||||
@@ -313,40 +313,48 @@ Copyright © 1988-1997 Sam Leffler.
|
||||
Copyright © 1991-1997 Silicon Graphics, Inc.
|
||||
]=])
|
||||
|
||||
# Latest 1.14 (beta) main, that is compatible with OIIO 3.0
|
||||
set(OSL_VERSION 1.14.3.0-beta)
|
||||
set(OSL_COMMIT "b795e3e92ae1f2c5da5024b61295b0eb41486a65")
|
||||
set(OSL_VERSION 1.14.7.0)
|
||||
set(OSL_NAME "Open Shading Language")
|
||||
set(OSL_URI https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/archive/${OSL_COMMIT}.tar.gz)
|
||||
set(OSL_HASH dbfe1a34249959f2d66296bf04317c1c)
|
||||
set(OSL_HASH_TYPE MD5)
|
||||
set(OSL_URI https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/releases/download/v${OSL_VERSION}/OSL-${OSL_VERSION}.tar.gz)
|
||||
set(OSL_HASH 45b2b9de1bae6854fb8af0d332c3266898871d95741bdb6abe8178cd6d01aef2)
|
||||
set(OSL_HASH_TYPE SHA256)
|
||||
set(OSL_FILE OpenShadingLanguage-${OSL_VERSION}.tar.gz)
|
||||
set(OSL_HOMEPAGE https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/)
|
||||
set(OSL_LICENSE SPDX:BSD-3-Clause)
|
||||
set(OSL_COPYRIGHT "Copyright Contributors to the Open Shading Language project.")
|
||||
|
||||
set(MANIFOLD_VERSION v3.1.0)
|
||||
set(MANIFOLD_VERSION v3.2.1)
|
||||
set(MANIFOLD_NAME "Manifold")
|
||||
set(MANIFOLD_URI https://github.com/elalish/manifold/archive/refs/tags/${MANIFOLD_VERSION}.tar.gz)
|
||||
set(MANIFOLD_HASH ddbc6b342d57b3a1a6c53cd60c63c867)
|
||||
set(MANIFOLD_HASH 5618cc9685b15a0b7ba4783589c1ae7c)
|
||||
set(MANIFOLD_HASH_TYPE MD5)
|
||||
set(MANIFOLD_FILE Manifold-${MANIFOLD_VERSION}.tar.gz)
|
||||
set(MANIFOLD_HOMEPAGE https://github.com/elalish/manifold)
|
||||
set(MANIFOLD_LICENSE SPDX:Apache-2.0)
|
||||
set(MANIFOLD_COPYRIGHT "Copyright 2021 The Manifold Authors.")
|
||||
|
||||
set(RUBBERBAND_VERSION 4.0.0)
|
||||
set(RUBBERBAND_NAME "Rubber Band Library")
|
||||
set(RUBBERBAND_URI https://breakfastquay.com/files/releases/rubberband-${RUBBERBAND_VERSION}.tar.bz2)
|
||||
set(RUBBERBAND_HASH 93bf3159eb91048e76eba35cf1bf766f)
|
||||
set(RUBBERBAND_HASH_TYPE MD5)
|
||||
set(RUBBERBAND_FILE rubberband-${RUBBERBAND_VERSION}.tar.bz2)
|
||||
set(RUBBERBAND_HOMEPAGE https://breakfastquay.com/rubberband/)
|
||||
set(RUBBERBAND_LICENSE SPDX:GPL-2.0-or-later)
|
||||
set(RUBBERBAND_COPYRIGHT "Copyright (c) 2025 Particular Programs Ltd")
|
||||
|
||||
# NOTE: When updating the python version, it's required to check the versions of
|
||||
# it wants to use in PCbuild/get_externals.bat for the following dependencies:
|
||||
# BZIP2, FFI, SQLITE and change the versions in this file as well. For compliance
|
||||
# BZIP2, FFI and change the versions in this file as well. For compliance
|
||||
# reasons there can be no exceptions to this.
|
||||
# Additionally, keep the PYTHON_PIP_VERSION in sync with the pip version bundled
|
||||
# into Python.
|
||||
|
||||
set(PYTHON_VERSION 3.11.11)
|
||||
set(PYTHON_VERSION 3.11.13)
|
||||
set(PYTHON_SHORT_VERSION 3.11)
|
||||
set(PYTHON_SHORT_VERSION_NO_DOTS 311)
|
||||
set(PYTHON_URI https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tar.xz)
|
||||
set(PYTHON_HASH 3e497037b170fe4be5f462c4964596f2)
|
||||
set(PYTHON_HASH ec39a8018b9eedf6f0edeb44533bd279)
|
||||
set(PYTHON_HASH_TYPE MD5)
|
||||
set(PYTHON_FILE Python-${PYTHON_VERSION}.tar.xz)
|
||||
set(PYTHON_CPE "cpe:2.3:a:python:python:${PYTHON_VERSION}:-:*:*:*:*:*:*")
|
||||
@@ -513,9 +521,9 @@ Copyright (C) 2001-2009 Josh Coalson.
|
||||
Copyright (C) 2011-2016 Xiph.Org Foundation.
|
||||
]=])
|
||||
|
||||
set(VPX_VERSION 1.14.0)
|
||||
set(VPX_VERSION 1.15.2)
|
||||
set(VPX_URI https://github.com/webmproject/libvpx/archive/v${VPX_VERSION}/libvpx-v${VPX_VERSION}.tar.gz)
|
||||
set(VPX_HASH 5f21d2db27071c8a46f1725928a10227ae45c5cd1cad3727e4aafbe476e321fa)
|
||||
set(VPX_HASH 26fcd3db88045dee380e581862a6ef106f49b74b6396ee95c2993a260b4636aa)
|
||||
set(VPX_HASH_TYPE SHA256)
|
||||
set(VPX_FILE libvpx-v${VPX_VERSION}.tar.gz)
|
||||
set(VPX_CPE "cpe:2.3:a:webmproject:libvpx:${VPX_VERSION}:*:*:*:*:*:*:*")
|
||||
@@ -556,10 +564,10 @@ set(X265_HOMEPAGE https://www.videolan.org/developers/x265.html)
|
||||
set(X265_LICENSE SPDX:GPL-2.0-or-later)
|
||||
set(X265_COPYRIGHT "Copyright (C) 2013-2020 MulticoreWare, Inc")
|
||||
|
||||
set(OPENJPEG_VERSION 2.5.0)
|
||||
set(OPENJPEG_VERSION 2.5.3)
|
||||
set(OPENJPEG_SHORT_VERSION 2.5)
|
||||
set(OPENJPEG_URI https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz)
|
||||
set(OPENJPEG_HASH 0333806d6adecc6f7a91243b2b839ff4d2053823634d4f6ed7a59bc87409122a)
|
||||
set(OPENJPEG_HASH 368fe0468228e767433c9ebdea82ad9d801a3ad1e4234421f352c8b06e7aa707)
|
||||
set(OPENJPEG_HASH_TYPE SHA256)
|
||||
set(OPENJPEG_NAME OpenJPEG)
|
||||
set(OPENJPEG_HOMEPAGE https://github.com/uclouvain/openjpeg)
|
||||
@@ -657,9 +665,9 @@ Copyright (C) 2009-2013 Facebook, Inc. All rights reserved.
|
||||
Copyright (C) 2013 Jason Evans <jasone@canonware.com>.
|
||||
]=])
|
||||
|
||||
set(XML2_VERSION 2.13.5)
|
||||
set(XML2_URI https://download.gnome.org/sources/libxml2/2.13/libxml2-${XML2_VERSION}.tar.xz)
|
||||
set(XML2_HASH 0b919be8edff97ade9c946e1a83bdecd)
|
||||
set(XML2_VERSION 2.14.5)
|
||||
set(XML2_URI https://download.gnome.org/sources/libxml2/2.14/libxml2-${XML2_VERSION}.tar.xz)
|
||||
set(XML2_HASH 59aac4e5d1d350ba2c4bddf1f7bc5098)
|
||||
set(XML2_HASH_TYPE MD5)
|
||||
set(XML2_FILE libxml2-${XML2_VERSION}.tar.xz)
|
||||
set(XML2_CPE "cpe:2.3:a:xmlsoft:libxml2:${XML2_VERSION}:*:*:*:*:*:*:*")
|
||||
@@ -768,9 +776,9 @@ set(LZMA_LICENSE SPDX:GPL-3.0-or-later)
|
||||
set(LZMA_COPYRIGHT "Igor Pavlov, Ville Koskinen, Lasse Collin")
|
||||
|
||||
# NOTE: Python's build has been modified to use our ssl version.
|
||||
set(SSL_VERSION 3.1.5)
|
||||
set(SSL_VERSION 3.5.2)
|
||||
set(SSL_URI https://www.openssl.org/source/openssl-${SSL_VERSION}.tar.gz)
|
||||
set(SSL_HASH 6ae015467dabf0469b139ada93319327be24b98251ffaeceda0221848dc09262)
|
||||
set(SSL_HASH c53a47e5e441c930c3928cf7bf6fb00e5d129b630e0aa873b08258656e7345ec)
|
||||
set(SSL_HASH_TYPE SHA256)
|
||||
set(SSL_FILE openssl-${SSL_VERSION}.tar.gz)
|
||||
set(SSL_CPE "cpe:2.3:a:openssl:openssl:${SSL_VERSION}:*:*:*:*:*:*:*")
|
||||
@@ -782,13 +790,10 @@ Copyright (c) 1998-2024 The OpenSSL Project Authors.
|
||||
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson; All rights reserved.
|
||||
]=])
|
||||
|
||||
# Note: This will *HAVE* to match the version python ships on windows which
|
||||
# is hardcoded in pythons PCbuild/get_externals.bat for compliance reasons there
|
||||
# can be no exceptions to this.
|
||||
set(SQLITE_VERSION 3.45.1)
|
||||
set(SQLLITE_LONG_VERSION 3450100)
|
||||
set(SQLITE_URI https://www.sqlite.org/2024/sqlite-autoconf-${SQLLITE_LONG_VERSION}.tar.gz)
|
||||
set(SQLITE_HASH 650305e234add12fc1e6bef0b365d86a087b3d38)
|
||||
set(SQLITE_VERSION 3.50.4)
|
||||
set(SQLLITE_LONG_VERSION 3500400)
|
||||
set(SQLITE_URI https://www.sqlite.org/2025/sqlite-autoconf-${SQLLITE_LONG_VERSION}.tar.gz)
|
||||
set(SQLITE_HASH 145048005c777796dd8494aa1cfed304e8c34283)
|
||||
set(SQLITE_HASH_TYPE SHA1)
|
||||
set(SQLITE_FILE sqlite-autoconf-${SQLLITE_LONG_VERSION}.tar.gz)
|
||||
set(SQLITE_CPE "cpe:2.3:a:sqlite:sqlite:${SQLITE_VERSION}:*:*:*:*:*:*:*")
|
||||
@@ -804,10 +809,10 @@ set(EMBREE_HOMEPAGE https://github.com/RenderKit/embree)
|
||||
set(EMBREE_LICENSE SPDX:Apache-2.0)
|
||||
set(EMBREE_COPYRIGHT "Copyright 2009-2024 Intel Corporation")
|
||||
|
||||
set(USD_VERSION 25.02)
|
||||
set(USD_VERSION 25.08)
|
||||
set(USD_NAME USD)
|
||||
set(USD_URI https://github.com/PixarAnimationStudios/OpenUSD/archive/v${USD_VERSION}.tar.gz)
|
||||
set(USD_HASH 76ee61270e67002ddb2fc76dda6a498d)
|
||||
set(USD_HASH e107ce8d79471ddd8b636bb982c24a46)
|
||||
set(USD_HASH_TYPE MD5)
|
||||
set(USD_FILE usd-v${USD_VERSION}.tar.gz)
|
||||
set(USD_HOMEPAGE https://openusd.org/)
|
||||
@@ -820,10 +825,10 @@ This product includes software developed at:
|
||||
Pixar (http://www.pixar.com/).
|
||||
]=])
|
||||
|
||||
set(MATERIALX_VERSION 1.39.2)
|
||||
set(MATERIALX_VERSION 1.39.3)
|
||||
set(MATERIALX_NAME MaterialX)
|
||||
set(MATERIALX_URI https://github.com/AcademySoftwareFoundation/MaterialX/archive/refs/tags/v${MATERIALX_VERSION}.tar.gz)
|
||||
set(MATERIALX_HASH e3e413755f525aec96c60af631753044)
|
||||
set(MATERIALX_HASH 43fdf32d52d6e04e40761e3c08f66476)
|
||||
set(MATERIALX_HASH_TYPE MD5)
|
||||
set(MATERIALX_FILE materialx-v${MATERIALX_VERSION}.tar.gz)
|
||||
set(MATERIALX_HOMEPAGE https://github.com/AcademySoftwareFoundation/MaterialX)
|
||||
@@ -901,10 +906,10 @@ Copyright © 2014-2015 Collabora, Ltd.
|
||||
Copyright © 2015 Red Hat Inc.
|
||||
]=])
|
||||
|
||||
set(WAYLAND_VERSION 1.23.1)
|
||||
set(WAYLAND_VERSION 1.24.0)
|
||||
set(WAYLAND_FILE wayland-${WAYLAND_VERSION}.tar.xz)
|
||||
set(WAYLAND_URI https://gitlab.freedesktop.org/wayland/wayland/-/releases/${WAYLAND_VERSION}/downloads/wayland-${WAYLAND_VERSION}.tar.xz)
|
||||
set(WAYLAND_HASH 5d27c7d3658fa90f40111b47cdb4a8fb)
|
||||
set(WAYLAND_HASH fda0b2a73ea2716f61d75767e02008e1)
|
||||
set(WAYLAND_HASH_TYPE MD5)
|
||||
set(WAYLAND_HOMEPAGE https://gitlab.freedesktop.org/wayland/wayland)
|
||||
set(WAYLAND_LICENSE SPDX:MIT)
|
||||
@@ -962,9 +967,9 @@ Copyright © 2011-2012 Collabora, Ltd.
|
||||
Copyright © 2010 Red Hat <mjg@redhat.com>.
|
||||
]=])
|
||||
|
||||
set(ISPC_VERSION v1.21.1)
|
||||
set(ISPC_VERSION v1.28.0)
|
||||
set(ISPC_URI https://github.com/ispc/ispc/archive/${ISPC_VERSION}.tar.gz)
|
||||
set(ISPC_HASH edd16b016aabc07819d14fd86a1fb5d0)
|
||||
set(ISPC_HASH 5ada5ee20badc849647213fda08e651c)
|
||||
set(ISPC_HASH_TYPE MD5)
|
||||
set(ISPC_FILE ispc-${ISPC_VERSION}.tar.gz)
|
||||
set(ISPC_DEPSBUILDTIMEONLY "Blender ships the produced artifact, but doesn't ship/link with any binary")
|
||||
@@ -991,9 +996,9 @@ set(POTRACE_LICENSE SPDX:GPL-2.0-or-later)
|
||||
set(POTRACE_COPYRIGHT "Copyright © 2001-2019 Peter Selinger.")
|
||||
|
||||
|
||||
set(HARU_VERSION 2_3_0)
|
||||
set(HARU_URI https://github.com/libharu/libharu/archive/RELEASE_${HARU_VERSION}.tar.gz)
|
||||
set(HARU_HASH 4f916aa49c3069b3a10850013c507460)
|
||||
set(HARU_VERSION 2.4.5)
|
||||
set(HARU_URI https://github.com/libharu/libharu/archive/refs/tags/v${HARU_VERSION}.tar.gz)
|
||||
set(HARU_HASH d5633fb741079a7675bb3e9e8e8a58ce)
|
||||
set(HARU_HASH_TYPE MD5)
|
||||
set(HARU_FILE libharu-${HARU_VERSION}.tar.gz)
|
||||
set(HARU_HOMEPAGE http://libharu.org/)
|
||||
@@ -1045,19 +1050,20 @@ set(OPENPGL_LICENSE SPDX:Apache-2.0)
|
||||
set(OPENPGL_COPYRIGHT "Copyright 2020 Intel Corporation.")
|
||||
|
||||
# Default version used by DPCPP: unified-runtime/cmake/FetchLevelZero.cmake
|
||||
set(LEVEL_ZERO_VERSION 1.19.2)
|
||||
set(LEVEL_ZERO_VERSION 1.21.9)
|
||||
set(LEVEL_ZERO_NAME "oneAPI Level Zero")
|
||||
set(LEVEL_ZERO_URI https://codeload.github.com/oneapi-src/level-zero/tar.gz/refs/tags/v${LEVEL_ZERO_VERSION})
|
||||
set(LEVEL_ZERO_HASH b0bea0a09d1a68f68ecf8694e58a60e199fa5785f91c2fd59f026133bc1c4f28)
|
||||
set(LEVEL_ZERO_HASH ba543a01adbcbd241518c3eee80b75414094d1fd3efcde9ff2693196cea4d057)
|
||||
set(LEVEL_ZERO_HASH_TYPE SHA256)
|
||||
set(LEVEL_ZERO_FILE level-zero-${LEVEL_ZERO_VERSION}.tar.gz)
|
||||
set(LEVEL_ZERO_HOMEPAGE https://github.com/oneapi-src/level-zero)
|
||||
set(LEVEL_ZERO_LICENSE SPDX:MIT)
|
||||
set(LEVEL_ZERO_COPYRIGHT "Copyright (C) 2019-2024 Intel Corporation")
|
||||
|
||||
set(DPCPP_VERSION v6.1.0)
|
||||
# Currently latest commit from sycl-rel-6_2 release branch
|
||||
set(DPCPP_VERSION 05e047c0932d5043ddff5e4058a3afca8e0943aa)
|
||||
set(DPCPP_URI https://github.com/intel/llvm/archive/${DPCPP_VERSION}.tar.gz)
|
||||
set(DPCPP_HASH a698b953527edeaca0495134cd2655ecaf4826128f85177c20a8749b18df49cd)
|
||||
set(DPCPP_HASH 94a51f89b212099a3d4c3530f2c2b6595b3b2a9ab40982cfab5055f92610b142)
|
||||
set(DPCPP_HASH_TYPE SHA256)
|
||||
set(DPCPP_FILE DPCPP-${DPCPP_VERSION}.tar.gz)
|
||||
set(DPCPP_NAME DPC++)
|
||||
@@ -1074,9 +1080,9 @@ set(DPCPP_COPYRIGHT "Copyright (C) 2021-2025 Intel Corporation")
|
||||
# will take care of building them, unpack is being done in dpcpp_deps.cmake
|
||||
|
||||
# Source llvm/lib/SYCLLowerIR/CMakeLists.txt
|
||||
set(VCINTRINSICS_VERSION 2d78d5805670d83b3cc6dc488acbd7f0251340c1)
|
||||
set(VCINTRINSICS_VERSION 4e51b2467104a257c22788e343dafbdde72e28bb)
|
||||
set(VCINTRINSICS_URI https://github.com/intel/vc-intrinsics/archive/${VCINTRINSICS_VERSION}.tar.gz)
|
||||
set(VCINTRINSICS_HASH 4acac1df6f0ddbfc32ab560f369e6de307a63560cd4843a5c2b02164a8a3caf2)
|
||||
set(VCINTRINSICS_HASH c90fabfbcc8b3dc59ea0ed56ffd99075dca4d0cdf176e7ba41417c4f2011f117)
|
||||
set(VCINTRINSICS_HASH_TYPE SHA256)
|
||||
set(VCINTRINSICS_FILE vc-intrinsics-${VCINTRINSICS_VERSION}.tar.gz)
|
||||
set(VCINTRINSICS_HOMEPAGE https://github.com/intel/vc-intrinsics)
|
||||
@@ -1104,21 +1110,21 @@ set(ICDLOADER_HOMEPAGE https://github.com/KhronosGroup/OpenCL-ICD-Loader)
|
||||
set(ICDLOADER_LICENSE SPDX:Apache-2.0)
|
||||
set(ICDLOADER_COPYRIGHT " Copyright (c) 2020 The Khronos Group Inc.")
|
||||
|
||||
# Source sycl/cmake/modules/AddBoostMp11Headers.cmake
|
||||
# Using external MP11 here so we don't have to pull in all of Boost.
|
||||
set(MP11_VERSION 863d8b8d2b20f2acd0b5870f23e553df9ce90e6c)
|
||||
set(MP11_URI https://github.com/boostorg/mp11/archive/${MP11_VERSION}.tar.gz)
|
||||
set(MP11_HASH 525692267abb8086bb9cc2fe81fb96d73ac645dfa6825cb5114686aafe244e9f)
|
||||
set(MP11_HASH_TYPE SHA256)
|
||||
set(MP11_FILE mp11-${MP11_VERSION}.tar.gz)
|
||||
set(MP11_HOMEPAGE https://github.com/boostorg/mp11)
|
||||
set(MP11_LICENSE SPDX:BSL-1.0)
|
||||
# Source sycl/cmake/modules/FetchEmhash.cmake
|
||||
set(EMHASH_VERSION 3ba9abdfdc2e0430fcc2fd8993cad31945b6a02b)
|
||||
set(EMHASH_URI https://github.com/ktprime/emhash/archive/${EMHASH_VERSION}.tar.gz)
|
||||
set(EMHASH_HASH f0feaa687b5d288317526a6b0c331b51eba2e2b13528d79e015d75abef5d4dfa)
|
||||
set(EMHASH_HASH_TYPE SHA256)
|
||||
set(EMHASH_FILE emhash-${EMHASH_VERSION}.tar.gz)
|
||||
set(EMHASH_HOMEPAGE https://github.com/ktprime/emhash)
|
||||
set(EMHASH_LICENSE SPDX:MIT)
|
||||
set(EMHASH_COPYRIGHT "Copyright (c) 2019 hyb")
|
||||
|
||||
# Source llvm-spirv/CMakeLists.txt (repo)
|
||||
# Source llvm-spirv/spirv-headers-tag.conf (hash)
|
||||
set(DPCPP_SPIRV_HEADERS_VERSION efb6b4099ddb8fa60f62956dee592c4b94ec6a49)
|
||||
set(DPCPP_SPIRV_HEADERS_VERSION 2b2e05e088841c63c0b6fd4c9fb380d8688738d3)
|
||||
set(DPCPP_SPIRV_HEADERS_URI https://github.com/KhronosGroup/SPIRV-Headers/archive/${DPCPP_SPIRV_HEADERS_VERSION}.tar.gz)
|
||||
set(DPCPP_SPIRV_HEADERS_HASH cb1f5b929f95169493f924f5aacf50ff9ce91e9470c28c5830a5ff4fca47062c)
|
||||
set(DPCPP_SPIRV_HEADERS_HASH 2e226ee953472e2e39724bf315433dce8cf119a397c451742dfda25bab7690af)
|
||||
set(DPCPP_SPIRV_HEADERS_HASH_TYPE SHA256)
|
||||
set(DPCPP_SPIRV_HEADERS_FILE DPCPP-SPIR-V-Headers-${DPCPP_SPIRV_HEADERS_VERSION}.tar.gz)
|
||||
set(DPCPP_SPIRV_HEADERS_HOMEPAGE https://github.com/KhronosGroup/SPIRV-Headers)
|
||||
@@ -1127,25 +1133,35 @@ set(DPCPP_SPIRV_HEADERS_COPYRIGHT "Copyright (c) 2015-2024 The Khronos Group Inc
|
||||
|
||||
# Source sycl/cmake/modules/FetchUnifiedRuntime.cmake (repo)
|
||||
# Source sycl/cmake/modules/UnifiedRuntimeTag.cmake (commit/version)
|
||||
set(UNIFIED_RUNTIME_VERSION v0.11.8)
|
||||
set(UNIFIED_RUNTIME_VERSION d03f19a88e42cb98be9604ff24b61190d1e48727)
|
||||
set(UNIFIED_RUNTIME_URI https://github.com/oneapi-src/unified-runtime/archive/${UNIFIED_RUNTIME_VERSION}.tar.gz)
|
||||
set(UNIFIED_RUNTIME_HASH bb2d5d753ba23f8984431696b00b838cf6ff9eb5b1610bf262357b623bd6a4b6)
|
||||
set(UNIFIED_RUNTIME_HASH 761f57339bbaa104749426f7157f5f45fbc5ef3c9fce5b56bf495f34602c26e1)
|
||||
set(UNIFIED_RUNTIME_HASH_TYPE SHA256)
|
||||
set(UNIFIED_RUNTIME_FILE unified-runtime-${UNIFIED_RUNTIME_VERSION}.tar.gz)
|
||||
set(UNIFIED_RUNTIME_HOMEPAGE https://github.com/oneapi-src/unified-runtime)
|
||||
set(UNIFIED_RUNTIME_LICENSE SPDX:Apache-2.0 WITH LLVM-exception)
|
||||
set(UNIFIED_RUNTIME_COPYRIGHT "Copyright (C) 2019-2024 Intel Corporation")
|
||||
set(UNIFIED_RUNTIME_COPYRIGHT "Copyright (C) 2019-2025 Intel Corporation")
|
||||
|
||||
# Source unified-runtime/source/common/CMakeList.txt
|
||||
set(UNIFIED_MEMORY_FRAMEWORK_VERSION v0.10.0)
|
||||
set(UNIFIED_MEMORY_FRAMEWORK_VERSION v0.11.0)
|
||||
set(UNIFIED_MEMORY_FRAMEWORK_URI https://github.com/oneapi-src/unified-memory-framework/archive/${UNIFIED_MEMORY_FRAMEWORK_VERSION}.tar.gz)
|
||||
set(UNIFIED_MEMORY_FRAMEWORK_HASH fd8b1094fe471d08aebb84d3756bf410810a03e23e1c887b078c6ea73ac21258)
|
||||
set(UNIFIED_MEMORY_FRAMEWORK_HASH d7a6cafe978d89628003e3001a1adef57cd733c9d9a6dfef0375c2123ec2e29c)
|
||||
set(UNIFIED_MEMORY_FRAMEWORK_HASH_TYPE SHA256)
|
||||
set(UNIFIED_MEMORY_FRAMEWORK_FILE unified-memory-framework-${UNIFIED_MEMORY_FRAMEWORK_VERSION}.tar.gz)
|
||||
set(UNIFIED_MEMORY_FRAMEWORK_HOMEPAGE https://github.com/oneapi-src/unified-memory-framework)
|
||||
set(UNIFIED_MEMORY_FRAMEWORK_LICENSE SPDX:Apache-2.0 WITH LLVM-exception)
|
||||
set(UNIFIED_MEMORY_FRAMEWORK_COPYRIGHT "Copyright (C) 2023-2024 Intel Corporation")
|
||||
|
||||
# Source xptifw/src/CMakeList.txt
|
||||
set(PARALLEL_HASHMAP_VERSION 8a889d3699b3c09ade435641fb034427f3fd12b6)
|
||||
set(PARALLEL_HASHMAP_URI https://github.com/greg7mdp/parallel-hashmap/archive/${PARALLEL_HASHMAP_VERSION}.tar.gz)
|
||||
set(PARALLEL_HASHMAP_HASH da853a4a2cee32b1563391a3661cff3cf48af5e76e320c004d5520835eb9e5f6)
|
||||
set(PARALLEL_HASHMAP_HASH_TYPE SHA256)
|
||||
set(PARALLEL_HASHMAP_FILE parallel-hashmap-${PARALLEL_HASHMAP_VERSION}.tar.gz)
|
||||
set(PARALLEL_HASHMAP_HOMEPAGE https://github.com/greg7mdp/parallel-hashmap)
|
||||
set(PARALLEL_HASHMAP_LICENSE SPDX:Apache-2.0)
|
||||
set(PARALLEL_HASHMAP_COPYRIGHT "Copyright (c) 2019, Gregory Popovitch - greg7mdp@gmail.com")
|
||||
|
||||
######################
|
||||
### DPCPP DEPS END ###
|
||||
######################
|
||||
@@ -1157,9 +1173,9 @@ set(UNIFIED_MEMORY_FRAMEWORK_COPYRIGHT "Copyright (C) 2023-2024 Intel Corporatio
|
||||
# compiler, the versions used are taken from the following location
|
||||
# https://github.com/intel/intel-graphics-compiler/releases
|
||||
|
||||
set(IGC_VERSION 2.1.14)
|
||||
set(IGC_VERSION 2.16.0)
|
||||
set(IGC_URI https://github.com/intel/intel-graphics-compiler/archive/refs/tags/v${IGC_VERSION}.tar.gz)
|
||||
set(IGC_HASH ebc39f8238dec2983c227d9db204db333b439ba5cd100e0a819a0208ac8066ca)
|
||||
set(IGC_HASH e8b74139d28e3c3be6acde94ac9e106af913dcaa495e2c687cdcb520f0a26538)
|
||||
set(IGC_HASH_TYPE SHA256)
|
||||
set(IGC_FILE intel-graphics-compiler-${IGC_VERSION}.tar.gz)
|
||||
set(IGC_NAME IGC)
|
||||
@@ -1167,9 +1183,9 @@ set(IGC_HOMEPAGE https://github.com/intel/intel-graphics-compiler)
|
||||
set(IGC_LICENSE SPDX:MIT)
|
||||
set(IGC_COPYRIGHT "Copyright (C) 2019-2024 Intel Corporation")
|
||||
|
||||
set(IGC_LLVM_VERSION llvmorg-14.0.5)
|
||||
set(IGC_LLVM_VERSION llvmorg-15.0.7)
|
||||
set(IGC_LLVM_URI https://github.com/llvm/llvm-project/archive/refs/tags/${IGC_LLVM_VERSION}.tar.gz)
|
||||
set(IGC_LLVM_HASH a4a57f029cb81f04618e05853f05fc2d21b64353c760977d8e7799bf7218a23a)
|
||||
set(IGC_LLVM_HASH 42a0088f148edcf6c770dfc780a7273014a9a89b66f357c761b4ca7c8dfa10ba)
|
||||
set(IGC_LLVM_HASH_TYPE SHA256)
|
||||
set(IGC_LLVM_FILE ${IGC_LLVM_VERSION}.tar.gz)
|
||||
set(IGC_LLVM_HOMEPAGE https://github.com/llvm/llvm-project/)
|
||||
@@ -1186,18 +1202,18 @@ set(IGC_LLVM_COPYRIGHT "Copyright (c) 2003-2019 University of Illinois at Urbana
|
||||
#
|
||||
# ******* WARNING *******
|
||||
|
||||
set(IGC_OPENCL_CLANG_VERSION v14.0.1)
|
||||
set(IGC_OPENCL_CLANG_VERSION v15.0.2)
|
||||
set(IGC_OPENCL_CLANG_URI https://github.com/intel/opencl-clang/archive/${IGC_OPENCL_CLANG_VERSION}.tar.gz)
|
||||
set(IGC_OPENCL_CLANG_HASH 77a023e311f825bbdc242fe9b397bd68bac23a88e68142b4919fa322c6c70392)
|
||||
set(IGC_OPENCL_CLANG_HASH 82422ca51ab97e140f5bebb5833f5bbb10d87981f3f0f506223195647352ce47)
|
||||
set(IGC_OPENCL_CLANG_HASH_TYPE SHA256)
|
||||
set(IGC_OPENCL_CLANG_FILE opencl-clang-${IGC_OPENCL_CLANG_VERSION}.tar.gz)
|
||||
set(IGC_OPENCL_CLANG_HOMEPAGE https://github.com/intel/opencl-clang/)
|
||||
set(IGC_OPENCL_CLANG_LICENSE SPDX:Apache-2.0 WITH LLVM-exception)
|
||||
set(IGC_OPENCL_CLANG_COPYRIGHT "Copyright (c) Intel Corporation (2009-2017).")
|
||||
|
||||
set(IGC_VCINTRINSICS_VERSION 0.20.1)
|
||||
set(IGC_VCINTRINSICS_VERSION 0.23.1)
|
||||
set(IGC_VCINTRINSICS_URI https://github.com/intel/vc-intrinsics/archive/refs/tags/v${IGC_VCINTRINSICS_VERSION}.tar.gz)
|
||||
set(IGC_VCINTRINSICS_HASH 01a68a3c8299075ad2b094264bef5109d660f1d53faf614f4f95745ad05f4e3e)
|
||||
set(IGC_VCINTRINSICS_HASH c312420727d6f4ca832c2f02b6a0712f7cd17b45261232e2696ec8eed2962be9)
|
||||
set(IGC_VCINTRINSICS_HASH_TYPE SHA256)
|
||||
set(IGC_VCINTRINSICS_FILE vc-intrinsics-${IGC_VCINTRINSICS_VERSION}.tar.gz)
|
||||
set(IGC_VCINTRINSICS_NAME "VC Intrinsics")
|
||||
@@ -1205,9 +1221,9 @@ set(IGC_VCINTRINSICS_HOMEPAGE https://github.com/intel/vc-intrinsics)
|
||||
set(IGC_VCINTRINSICS_LICENSE SPDX:MIT)
|
||||
set(IGC_VCINTRINSICS_COPYRIGHT "Copyright (C) 2020-2021 Intel Corporation")
|
||||
|
||||
set(IGC_SPIRV_HEADERS_VERSION vulkan-sdk-1.3.275.0)
|
||||
set(IGC_SPIRV_HEADERS_VERSION vulkan-sdk-1.4.313.0)
|
||||
set(IGC_SPIRV_HEADERS_URI https://github.com/KhronosGroup/SPIRV-Headers/archive/refs/tags/${IGC_SPIRV_HEADERS_VERSION}.tar.gz)
|
||||
set(IGC_SPIRV_HEADERS_HASH d46b261f1fbc5e85022cb2fada9a6facb5b0c9932b45007a77fe05639a605bd1)
|
||||
set(IGC_SPIRV_HEADERS_HASH f68be549d74afb61600a1e3a7d1da1e6b7437758c8e77d664909f88f302c5ac1)
|
||||
set(IGC_SPIRV_HEADERS_HASH_TYPE SHA256)
|
||||
set(IGC_SPIRV_HEADERS_FILE SPIR-V-Headers-${IGC_SPIRV_HEADERS_VERSION}.tar.gz)
|
||||
set(IGC_SPIRV_HEADERS_NAME "SPIR-V Headers")
|
||||
@@ -1215,9 +1231,9 @@ set(IGC_SPIRV_HEADERS_HOMEPAGE https://github.com/KhronosGroup/SPIRV-Headers)
|
||||
set(IGC_SPIRV_HEADERS_LICENSE SPDX:MIT-Khronos-old)
|
||||
set(IGC_SPIRV_HEADERS_COPYRIGHT "Copyright (c) 2015-2024 The Khronos Group Inc.")
|
||||
|
||||
set(IGC_SPIRV_TOOLS_VERSION v2023.6.rc1)
|
||||
set(IGC_SPIRV_TOOLS_VERSION v2025.1.rc1)
|
||||
set(IGC_SPIRV_TOOLS_URI https://github.com/KhronosGroup/SPIRV-Tools/archive/refs/tags/${IGC_SPIRV_TOOLS_VERSION}.tar.gz)
|
||||
set(IGC_SPIRV_TOOLS_HASH 750e4bfcaccd636fb04dd912b668a8a6d29940f8f83b7d9a266170b1023a1a89)
|
||||
set(IGC_SPIRV_TOOLS_HASH b04b1f00960664319321a58f513fd33eecca19a1460047bbdf3da8fd0c46d2f2)
|
||||
set(IGC_SPIRV_TOOLS_HASH_TYPE SHA256)
|
||||
set(IGC_SPIRV_TOOLS_FILE SPIR-V-Tools-${IGC_SPIRV_TOOLS_VERSION}.tar.gz)
|
||||
set(IGC_SPIRV_TOOLS_NAME "SPIR-V Tools")
|
||||
@@ -1225,9 +1241,9 @@ set(IGC_SPIRV_TOOLS_HOMEPAGE https://github.com/KhronosGroup/SPIRV-Tools/)
|
||||
set(IGC_SPIRV_TOOLS_LICENSE SPDX:Apache-2.0)
|
||||
set(IGC_SPIRV_TOOLS_COPYRIGHT "Copyright (c) 2015-2016 The Khronos Group Inc.")
|
||||
|
||||
set(IGC_SPIRV_TRANSLATOR_VERSION 1cfcf1b5ec2ec9c52fd56dc7cb47dcf12125e8db)
|
||||
set(IGC_SPIRV_TRANSLATOR_VERSION v15.0.15)
|
||||
set(IGC_SPIRV_TRANSLATOR_URI https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/${IGC_SPIRV_TRANSLATOR_VERSION}.tar.gz)
|
||||
set(IGC_SPIRV_TRANSLATOR_HASH 5384344b47b67e3811419599c138284de5490304030096f3bc10271915a8ad76)
|
||||
set(IGC_SPIRV_TRANSLATOR_HASH 52b8b8ddfd133647658dff6caaea6514fd827201984e365ad3552dd1651de321)
|
||||
set(IGC_SPIRV_TRANSLATOR_HASH_TYPE SHA256)
|
||||
set(IGC_SPIRV_TRANSLATOR_FILE SPIR-V-Translator-${IGC_SPIRV_TRANSLATOR_VERSION}.tar.gz)
|
||||
set(IGC_SPIRV_TRANSLATOR_NAME "LLVM/SPIR-V Bi-Directional Translator")
|
||||
@@ -1248,9 +1264,9 @@ http://llvm.org
|
||||
### Intel Graphics Compiler DEPS END ###
|
||||
########################################
|
||||
|
||||
set(GMMLIB_VERSION intel-gmmlib-22.5.3)
|
||||
set(GMMLIB_VERSION intel-gmmlib-22.8.1)
|
||||
set(GMMLIB_URI https://github.com/intel/gmmlib/archive/refs/tags/${GMMLIB_VERSION}.tar.gz)
|
||||
set(GMMLIB_HASH a8ccba4a71319b66a901df016998a76745ce9624032b6555517607c5bbb2b4e8)
|
||||
set(GMMLIB_HASH 9b8eac1891650021ded26b72585e7a2c702a3ba47565c968feabd14ab38d18f7)
|
||||
set(GMMLIB_HASH_TYPE SHA256)
|
||||
set(GMMLIB_NAME "Intel(R) Graphics Memory Management Library")
|
||||
set(GMMLIB_FILE ${GMMLIB_VERSION}.tar.gz)
|
||||
@@ -1262,9 +1278,9 @@ Copyright (c) 2016 Gabi Melman.
|
||||
Copyright 2008, Google Inc. All rights reserved.
|
||||
]=])
|
||||
|
||||
set(OCLOC_VERSION 24.45.31740.15)
|
||||
set(OCLOC_VERSION 25.31.34666.3)
|
||||
set(OCLOC_URI https://github.com/intel/compute-runtime/archive/refs/tags/${OCLOC_VERSION}.tar.gz)
|
||||
set(OCLOC_HASH f0e3b3b038b585753530a8f1b00a8e71b045ee007b8392aaa986ccad92cf5123)
|
||||
set(OCLOC_HASH c307ec9d0296bcfa0bc4f93a9f0955d9a8ca479a00a731fda5a61eee3ed76489)
|
||||
set(OCLOC_HASH_TYPE SHA256)
|
||||
set(OCLOC_FILE ocloc-${OCLOC_VERSION}.tar.gz)
|
||||
set(OCLOC_HOMEPAGE https://github.com/intel/compute-runtime)
|
||||
@@ -1302,9 +1318,9 @@ set(HARFBUZZ_FILE harfbuzz-${HARFBUZZ_VERSION}.tar.gz)
|
||||
set(HARFBUZZ_DEPSBUILDTIMEONLY "UI module asked for preliminary libs so they could work on integrating it")
|
||||
set(HARFBUZZ_HOMEPAGE https://github.com/harfbuzz/harfbuzz)
|
||||
|
||||
set(SHADERC_VERSION v2024.3)
|
||||
set(SHADERC_VERSION v2025.3)
|
||||
set(SHADERC_URI https://github.com/google/shaderc/archive/${SHADERC_VERSION}.tar.gz)
|
||||
set(SHADERC_HASH e8d45a77fe8bc954c3ca79aeba8476bd)
|
||||
set(SHADERC_HASH c110401f6e36ee234008b4cabe991ee0)
|
||||
set(SHADERC_HASH_TYPE MD5)
|
||||
set(SHADERC_FILE shaderc-${SHADERC_VERSION}.tar.gz)
|
||||
set(SHADERC_NAME ShaderC)
|
||||
@@ -1315,9 +1331,9 @@ set(SHADERC_COPYRIGHT "Copyright 2015 The Shaderc Authors. All rights reserved."
|
||||
# The versions of shaderc's dependencies can be found in the root of shaderc's
|
||||
# source in a file called DEPS.
|
||||
|
||||
set(SHADERC_SPIRV_TOOLS_VERSION 01c8438ee4ac52c248119b7e03e0b021f853b51a)
|
||||
set(SHADERC_SPIRV_TOOLS_VERSION 33e02568181e3312f49a3cf33df470bf96ef293a)
|
||||
set(SHADERC_SPIRV_TOOLS_URI https://github.com/KhronosGroup/SPIRV-Tools/archive/${SHADERC_SPIRV_TOOLS_VERSION}.tar.gz)
|
||||
set(SHADERC_SPIRV_TOOLS_HASH 8924fd30abc3ee17b77cba5a924f3666)
|
||||
set(SHADERC_SPIRV_TOOLS_HASH 7b83eee717a6c4d7e4f8d7e96a32a298)
|
||||
set(SHADERC_SPIRV_TOOLS_HASH_TYPE MD5)
|
||||
set(SHADERC_SPIRV_TOOLS_FILE SPIRV-Tools-${SHADERC_SPIRV_TOOLS_VERSION}.tar.gz)
|
||||
set(SHADERC_SPIRV_TOOLS_NAME SPIR-V Tools)
|
||||
@@ -1325,18 +1341,18 @@ set(SHADERC_SPIRV_TOOLS_HOMEPAGE https://github.com/KhronosGroup/SPIRV-Tools/)
|
||||
set(SHADERC_SPIRV_TOOLS_LICENSE SPDX:Apache-2.0)
|
||||
set(SHADERC_SPIRV_TOOLS_COPYRIGHT "Copyright (c) 2015-2016 The Khronos Group Inc.")
|
||||
|
||||
set(SHADERC_SPIRV_HEADERS_VERSION 2a9b6f951c7d6b04b6c21fe1bf3f475b68b84801)
|
||||
set(SHADERC_SPIRV_HEADERS_VERSION 2a611a970fdbc41ac2e3e328802aed9985352dca)
|
||||
set(SHADERC_SPIRV_HEADERS_URI https://github.com/KhronosGroup/SPIRV-Headers/archive/${SHADERC_SPIRV_HEADERS_VERSION}.tar.gz)
|
||||
set(SHADERC_SPIRV_HEADERS_HASH f5fc63cd74f5b3deae18e2a1606b8241)
|
||||
set(SHADERC_SPIRV_HEADERS_HASH 21c42d628b4262ad9defc021e24e2abe)
|
||||
set(SHADERC_SPIRV_HEADERS_HASH_TYPE MD5)
|
||||
set(SHADERC_SPIRV_HEADERS_FILE SPIRV-Headers-${SHADERC_SPIRV_HEADERS_VERSION}.tar.gz)
|
||||
set(SHADERC_SPIRV_HEADERS_HOMEPAGE https://github.com/KhronosGroup/SPIRV-Headers)
|
||||
set(SHADERC_SPIRV_HEADERS_LICENSE SPDX:MIT-Khronos-old)
|
||||
set(SHADERC_SPIRV_HEADERS_COPYRIGHT "Copyright (c) 2015-2024 The Khronos Group Inc.")
|
||||
|
||||
set(SHADERC_GLSLANG_VERSION 467ce01c71e38cf01814c48987a5c0dadd914df4)
|
||||
set(SHADERC_GLSLANG_VERSION efd24d75bcbc55620e759f6bf42c45a32abac5f8)
|
||||
set(SHADERC_GLSLANG_URI https://github.com/KhronosGroup/glslang/archive/${SHADERC_GLSLANG_VERSION}.tar.gz)
|
||||
set(SHADERC_GLSLANG_HASH 48baea8b66b0bfdc96a9d95a13b0b908)
|
||||
set(SHADERC_GLSLANG_HASH c0ff01b5791dbc6c77e0eb295ce2ffc6)
|
||||
set(SHADERC_GLSLANG_HASH_TYPE MD5)
|
||||
set(SHADERC_GLSLANG_FILE glslang-${SHADERC_GLSLANG_VERSION}.tar.gz)
|
||||
set(SHADERC_GLSLANG_HOMEPAGE https://github.com/KhronosGroup/glslang)
|
||||
|
||||
@@ -8,13 +8,8 @@ ExternalProject_Add(external_wayland
|
||||
URL_HASH ${WAYLAND_HASH_TYPE}=${WAYLAND_HASH}
|
||||
PREFIX ${BUILD_DIR}/wayland
|
||||
|
||||
# Use `-E` so the `PKG_CONFIG_PATH` can be defined to link against our own LIBEXPAT & LIBXML2.
|
||||
# Use `-E` so the `PKG_CONFIG_PATH` can be defined to link against our own LIBEXPAT/LIBXML2/FFI.
|
||||
#
|
||||
# NOTE: passing link args "ffi/lib" should not be needed, but
|
||||
# `pkgconfig` would incorrectly look in "ffi/lib/../lib64" otherwise.
|
||||
#
|
||||
# NOTE: `-lm` is needed for `libxml2` which is a static library that uses `libm.so`,
|
||||
# without this, math symbols such as `floor` aren't found.
|
||||
CONFIGURE_COMMAND
|
||||
${CMAKE_COMMAND} -E env
|
||||
PKG_CONFIG_PATH=${LIBDIR}/expat/lib/pkgconfig:${LIBDIR}/xml2/lib/pkgconfig:${LIBDIR}/ffi/lib/pkgconfig:$PKG_CONFIG_PATH
|
||||
@@ -23,7 +18,6 @@ ExternalProject_Add(external_wayland
|
||||
${MESON_BUILD_TYPE}
|
||||
-Ddocumentation=false
|
||||
-Dtests=false
|
||||
-D "c_link_args=-L${LIBDIR}/ffi/lib -lm"
|
||||
.
|
||||
../external_wayland
|
||||
|
||||
|
||||
@@ -9,10 +9,11 @@ graph[autosize = false, size = "25.7,8.3!", resolution = 300];
|
||||
external_dpcpp -- external_vcintrinsics;
|
||||
external_dpcpp -- external_openclheaders;
|
||||
external_dpcpp -- external_icdloader;
|
||||
external_dpcpp -- external_mp11;
|
||||
external_dpcpp -- external_emhash;
|
||||
external_dpcpp -- external_level_zero;
|
||||
external_dpcpp -- external_spirvheaders;
|
||||
external_dpcpp -- external_unifiedruntime;
|
||||
external_dpcpp -- external_parallelhashmap;
|
||||
external_embree -- external_tbb;
|
||||
external_ffmpeg -- external_zlib;
|
||||
external_ffmpeg -- external_openjpeg;
|
||||
|
||||
@@ -202,26 +202,26 @@ yum -y install jack-audio-connection-kit-devel
|
||||
|
||||
# Register ROCm packages
|
||||
sudo rpm --import https://repo.radeon.com/rocm/rocm.gpg.key
|
||||
rm -f /etc/yum.repos.d/amdgpu-6.3.1.repo
|
||||
rm -f /etc/yum.repos.d/rocm-6.3.1.repo
|
||||
tee --append /etc/yum.repos.d/amdgpu-6.3.1.repo <<EOF
|
||||
[amdgpu-6.3.1]
|
||||
name=amdgpu-6.3.1
|
||||
baseurl=https://repo.radeon.com/amdgpu/6.3.1/el/8.10/main/x86_64/
|
||||
rm -f /etc/yum.repos.d/amdgpu-6.4.3.repo
|
||||
rm -f /etc/yum.repos.d/rocm-6.4.3.repo
|
||||
tee --append /etc/yum.repos.d/amdgpu-6.4.3.repo <<EOF
|
||||
[amdgpu-6.4.3]
|
||||
name=amdgpu-6.4.3
|
||||
baseurl=https://repo.radeon.com/amdgpu/6.4.3/el/8.10/main/x86_64/
|
||||
enabled=1
|
||||
priority=50
|
||||
gpgcheck=1
|
||||
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
|
||||
EOF
|
||||
tee --append /etc/yum.repos.d/rocm-6.3.1.repo <<EOF
|
||||
[ROCm-6.3.1]
|
||||
name=ROCm-6.3.1
|
||||
baseurl=https://repo.radeon.com/rocm/el8/6.3.1/main
|
||||
tee --append /etc/yum.repos.d/rocm-6.4.3.repo <<EOF
|
||||
[ROCm-6.4.3]
|
||||
name=ROCm-6.4.3
|
||||
baseurl=https://repo.radeon.com/rocm/el8/6.4.3/main
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
exclude=rock-dkms
|
||||
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
|
||||
EOF
|
||||
yum -y update
|
||||
sudo yum install -y hipcc6.3.1 hip-devel6.3.1 rocm-llvm6.3.1 rocm-core6.3.1 rocm-device-libs6.3.1
|
||||
sudo update-alternatives --set rocm /opt/rocm-6.3.1
|
||||
sudo yum install -y hipcc6.4.3 hip-devel6.4.3 rocm-llvm6.4.3 rocm-core6.4.3 rocm-device-libs6.4.3
|
||||
sudo update-alternatives --set rocm /opt/rocm-6.4.3
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/libdevice/cmake/modules/SYCLLibdevice.cmake b/libdevice/cmake/modules/SYCLLibdevice.cmake
|
||||
index 9fa7e0b35..7e887e4bb 100644
|
||||
index 24401ce90..7b3831869 100644
|
||||
--- a/libdevice/cmake/modules/SYCLLibdevice.cmake
|
||||
+++ b/libdevice/cmake/modules/SYCLLibdevice.cmake
|
||||
@@ -68,7 +68,7 @@ if (WIN32)
|
||||
@@ -63,7 +63,7 @@ if (WIN32)
|
||||
list(APPEND compile_opts -D_ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH)
|
||||
endif()
|
||||
|
||||
@@ -12,7 +12,7 @@ index 9fa7e0b35..7e887e4bb 100644
|
||||
set(filetypes obj obj-new-offload spv bc)
|
||||
|
||||
diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake
|
||||
index 4d0790361..20291239e 100644
|
||||
index c7935f5c9..f7a8661d2 100644
|
||||
--- a/llvm/cmake/modules/HandleLLVMOptions.cmake
|
||||
+++ b/llvm/cmake/modules/HandleLLVMOptions.cmake
|
||||
@@ -591,6 +591,9 @@ if( MSVC )
|
||||
@@ -46,143 +46,13 @@ index 808fc98c6..75becea99 100644
|
||||
FetchContent_MakeAvailable(ocl-icd)
|
||||
add_library(OpenCL-ICD ALIAS OpenCL)
|
||||
+set(FETCHCONTENT_FULLY_DISCONNECTED ON)
|
||||
|
||||
|
||||
add_subdirectory(opencl-aot)
|
||||
diff --git a/sycl/CMakeLists.txt b/sycl/CMakeLists.txt
|
||||
index a29bfc631..e9d306208 100644
|
||||
--- a/sycl/CMakeLists.txt
|
||||
+++ b/sycl/CMakeLists.txt
|
||||
@@ -215,7 +215,6 @@ install(FILES
|
||||
COMPONENT sycl-headers)
|
||||
|
||||
include(AddBoostMp11Headers)
|
||||
-include(FetchBoostUnorderedHeaders)
|
||||
|
||||
# This is workaround to detect changes (add or modify) in subtree which
|
||||
# are not detected by copy_directory command.
|
||||
diff --git a/sycl/cmake/modules/FetchBoostUnorderedHeaders.cmake b/sycl/cmake/modules/FetchBoostUnorderedHeaders.cmake
|
||||
index 5cabc6ccc..e69de29bb 100644
|
||||
--- a/sycl/cmake/modules/FetchBoostUnorderedHeaders.cmake
|
||||
+++ b/sycl/cmake/modules/FetchBoostUnorderedHeaders.cmake
|
||||
@@ -1,101 +0,0 @@
|
||||
-# Fetches the unordered boost module and its dependencies
|
||||
-function(add_boost_module_headers)
|
||||
- cmake_parse_arguments(
|
||||
- BOOST_MODULE # prefix
|
||||
- "" # options
|
||||
- "NAME;SRC_DIR;GIT_TAG;" # one value keywords
|
||||
- "" # multi-value keywords
|
||||
- ${ARGN}) # arguments
|
||||
-
|
||||
- if (NOT DEFINED BOOST_MODULE_SRC_DIR)
|
||||
- set(BOOST_MODULE_GIT_REPO "https://github.com/boostorg/${BOOST_MODULE_NAME}.git")
|
||||
- message(STATUS "Source dir not set for boost module ${BOOST_MODULE_NAME}, downloading headers from ${BOOST_MODULE_GIT_REPO}")
|
||||
-
|
||||
- set(BOOST_MODULE_FULL_NAME "boost_${BOOST_MODULE_NAME}")
|
||||
- FetchContent_Declare(${BOOST_MODULE_FULL_NAME}
|
||||
- GIT_REPOSITORY ${BOOST_MODULE_GIT_REPO}
|
||||
- GIT_TAG ${BOOST_MODULE_GIT_TAG}
|
||||
- )
|
||||
- FetchContent_GetProperties(${BOOST_MODULE_FULL_NAME})
|
||||
- FetchContent_MakeAvailable(${BOOST_MODULE_FULL_NAME})
|
||||
-
|
||||
- set(BOOST_MODULE_SRC_DIR ${${BOOST_MODULE_FULL_NAME}_SOURCE_DIR})
|
||||
- else (NOT DEFINED BOOST_MODULE_SRC_DIR)
|
||||
- message(STATUS "Using boost/${BOOST_MODULE_NAME} headers from ${BOOST_MODULE_SRC_DIR}")
|
||||
- endif(NOT DEFINED BOOST_MODULE_SRC_DIR)
|
||||
-
|
||||
- set(BOOST_UNORDERED_INCLUDE_DIRS ${BOOST_UNORDERED_INCLUDE_DIRS} "${BOOST_MODULE_SRC_DIR}/include" PARENT_SCOPE)
|
||||
-endfunction(add_boost_module_headers)
|
||||
-
|
||||
-set(BOOST_UNORDERED_GIT_TAG 5e6b9291deb55567d41416af1e77c2516dc1250f)
|
||||
-# Merge: 15cfef69 ccf9a76e
|
||||
-# Author: joaquintides <joaquin.lopezmunoz@gmail.com>
|
||||
-# Date: Sat Mar 16 09:18:41 2024 +0100
|
||||
-#
|
||||
-# Merge pull request #238 from boostorg/fix/gh-237
|
||||
-add_boost_module_headers(NAME "unordered" SRC_DIR ${BOOST_UNORDERED_SOURCE_DIR} GIT_TAG ${BOOST_UNORDERED_GIT_TAG})
|
||||
-
|
||||
-set(BOOST_ASSERT_GIT_TAG 447e0b3a331930f8708ade0e42683d12de9dfbc3)
|
||||
-# Author: Peter Dimov <pdimov@gmail.com>
|
||||
-# Date: Sat Feb 3 20:43:55 2024 +0200
|
||||
-#
|
||||
-# Use __builtin_FUNCSIG() under MSVC 19.35+. Fixes #35.
|
||||
-add_boost_module_headers(NAME "assert" SRC_DIR ${BOOST_ASSERT_SOURCE_DIR} GIT_TAG ${BOOST_ASSERT_GIT_TAG})
|
||||
-
|
||||
-set(BOOST_CONFIG_GIT_TAG 11385ec21012926e15a612e3bf9f9a71403c1e5b)
|
||||
-# Merge: eef05e98 601598f8
|
||||
-# Author: jzmaddock <john@johnmaddock.co.uk>
|
||||
-# Date: Sun Feb 4 09:46:22 2024 +0000
|
||||
-#
|
||||
-# Merge branch 'develop'
|
||||
-add_boost_module_headers(NAME "config" SRC_DIR ${BOOST_CONFIG_SOURCE_DIR} GIT_TAG ${BOOST_CONFIG_GIT_TAG})
|
||||
-
|
||||
-set(BOOST_CONTAINER_HASH_GIT_TAG 6d214eb776456bf17fbee20780a034a23438084f)
|
||||
-# Author: Peter Dimov <pdimov@gmail.com>
|
||||
-# Date: Wed Mar 6 05:13:53 2024 +0200
|
||||
-#
|
||||
-# Update .appveyor.yml
|
||||
-add_boost_module_headers(NAME "container_hash" SRC_DIR ${BOOST_CONTAINER_HASH_SOURCE_DIR} GIT_TAG ${BOOST_CONTAINER_HASH_GIT_TAG})
|
||||
-
|
||||
-set(BOOST_CORE_GIT_TAG 083b41c17e34f1fc9b43ab796b40d0d8bece685c)
|
||||
-# Merge: 8cc2fda a973490
|
||||
-# Author: Andrey Semashev <Lastique@users.noreply.github.com>
|
||||
-# Date: Tue Mar 19 18:10:04 2024 +0300
|
||||
-#
|
||||
-# Merge pull request #169 from k3DW/feature/168
|
||||
-add_boost_module_headers(NAME "core" SRC_DIR ${BOOST_CORE_SOURCE_DIR} GIT_TAG ${BOOST_CORE_GIT_TAG})
|
||||
-
|
||||
-# Describe is a dependency of container_hash
|
||||
-set(BOOST_DESCRIBE_GIT_TAG 50719b212349f3d1268285c586331584d3dbfeb5)
|
||||
-# Author: Peter Dimov <pdimov@gmail.com>
|
||||
-# Date: Sat Mar 23 20:27:08 2024 +0200
|
||||
-#
|
||||
-# Update .drone.jsonnet
|
||||
-add_boost_module_headers(NAME "describe" SRC_DIR ${BOOST_DESCRIBE_SOURCE_DIR} GIT_TAG ${BOOST_DESCRIBE_GIT_TAG})
|
||||
-
|
||||
-# Reuse mp11 fetched earlier for DPC++ headers
|
||||
-set(BOOST_UNORDERED_INCLUDE_DIRS ${BOOST_UNORDERED_INCLUDE_DIRS} "${BOOST_MP11_SOURCE_DIR}/include/")
|
||||
-
|
||||
-set(BOOST_PREDEF_GIT_TAG 0fdfb49c3a6789e50169a44e88a07cc889001106)
|
||||
-# Merge: 392e4e7 614546d
|
||||
-# Author: Rene Rivera <grafikrobot@gmail.com>
|
||||
-# Date: Tue Oct 31 20:24:41 2023 -0500
|
||||
-#
|
||||
-# Merge branch 'develop'
|
||||
-add_boost_module_headers(NAME "predef" SRC_DIR ${BOOST_PREDEF_SOURCE_DIR} GIT_TAG ${BOOST_PREDEF_GIT_TAG})
|
||||
-
|
||||
-# Static assert is a dependency of core
|
||||
-set(BOOST_STATIC_ASSERT_GIT_TAG ba72d3340f3dc6e773868107f35902292f84b07e)
|
||||
-# Merge: 392e4e7 614546d
|
||||
-# Author: Rene Rivera <grafikrobot@gmail.com>
|
||||
-# Date: Tue Oct 31 20:24:41 2023 -0500
|
||||
-#
|
||||
-# Merge branch 'develop'
|
||||
-add_boost_module_headers(NAME "static_assert" SRC_DIR ${BOOST_STATIC_ASSERT_SOURCE_DIR} GIT_TAG ${BOOST_STATIC_ASSERT_GIT_TAG})
|
||||
-
|
||||
-set(BOOST_THROW_EXCEPTION_GIT_TAG 7c8ec2114bc1f9ab2a8afbd629b96fbdd5901294)
|
||||
-# Author: Peter Dimov <pdimov@gmail.com>
|
||||
-# Date: Sat Jan 6 19:41:56 2024 +0200
|
||||
-#
|
||||
-# Add -Wundef to test/Jamfile
|
||||
-add_boost_module_headers(NAME "throw_exception" SRC_DIR ${BOOST_THROW_EXCEPTION_SOURCE_DIR} GIT_TAG ${BOOST_THROW_EXCEPTION_GIT_TAG})
|
||||
diff --git a/sycl/cmake/modules/FetchUnifiedRuntime.cmake b/sycl/cmake/modules/FetchUnifiedRuntime.cmake
|
||||
index e9d52c5b2..8b439ba00 100644
|
||||
index 04602f22e..7bd7259d1 100644
|
||||
--- a/sycl/cmake/modules/FetchUnifiedRuntime.cmake
|
||||
+++ b/sycl/cmake/modules/FetchUnifiedRuntime.cmake
|
||||
@@ -31,7 +31,10 @@ set(UR_BUILD_EXAMPLES OFF CACHE BOOL "Build example applications." FORCE)
|
||||
set(UR_BUILD_TESTS OFF CACHE BOOL "Build unit tests." FORCE)
|
||||
set(UR_BUILD_XPTI_LIBS OFF)
|
||||
set(UR_ENABLE_SYMBOLIZER ON CACHE BOOL "Enable symbolizer for sanitizer layer.")
|
||||
-set(UR_ENABLE_TRACING ON)
|
||||
+# Blender: By default this option is override to ON
|
||||
+# but we don't need this option, because we build DPC++ without xpti
|
||||
+# so it is now would be overriding to OFF
|
||||
+set(UR_ENABLE_TRACING OFF)
|
||||
|
||||
if("level_zero" IN_LIST SYCL_ENABLE_BACKENDS)
|
||||
set(UR_BUILD_ADAPTER_L0 ON)
|
||||
@@ -124,11 +127,11 @@ if(SYCL_UR_USE_FETCH_CONTENT)
|
||||
@@ -89,10 +89,9 @@ if(IS_DIRECTORY "${UR_INTREE_SOURCE_DIR}")
|
||||
# to link statically on windows
|
||||
if(WIN32)
|
||||
set(UMF_BUILD_SHARED_LIBRARY OFF CACHE INTERNAL "Build UMF shared library")
|
||||
@@ -190,15 +60,37 @@ index e9d52c5b2..8b439ba00 100644
|
||||
- else()
|
||||
- set(UMF_DISABLE_HWLOC ${SYCL_UMF_DISABLE_HWLOC} CACHE INTERNAL "Disable hwloc for UMF")
|
||||
endif()
|
||||
|
||||
+ set(UMF_LINK_HWLOC_STATICALLY OFF CACHE INTERNAL "static HWLOC")
|
||||
+ set(UMF_DISABLE_HWLOC ${SYCL_UMF_DISABLE_HWLOC} CACHE INTERNAL "Disable hwloc for UMF")
|
||||
+
|
||||
add_subdirectory(${UNIFIED_RUNTIME_SOURCE_DIR} ${UR_INTREE_BINARY_DIR})
|
||||
elseif(SYCL_UR_USE_FETCH_CONTENT)
|
||||
include(FetchContent)
|
||||
@@ -148,10 +147,9 @@ elseif(SYCL_UR_USE_FETCH_CONTENT)
|
||||
# to link statically on windows
|
||||
if(WIN32)
|
||||
set(UMF_BUILD_SHARED_LIBRARY OFF CACHE INTERNAL "Build UMF shared library")
|
||||
- set(UMF_LINK_HWLOC_STATICALLY ON CACHE INTERNAL "static HWLOC")
|
||||
- else()
|
||||
- set(UMF_DISABLE_HWLOC ${SYCL_UMF_DISABLE_HWLOC} CACHE INTERNAL "Disable hwloc for UMF")
|
||||
endif()
|
||||
+ set(UMF_LINK_HWLOC_STATICALLY OFF CACHE INTERNAL "static HWLOC")
|
||||
+ set(UMF_DISABLE_HWLOC ${SYCL_UMF_DISABLE_HWLOC} CACHE INTERNAL "Disable hwloc for UMF")
|
||||
|
||||
fetch_adapter_source(level_zero
|
||||
${UNIFIED_RUNTIME_REPO}
|
||||
${UNIFIED_RUNTIME_TAG}
|
||||
@@ -363,6 +361,10 @@ if(CMAKE_SYSTEM_NAME STREQUAL Windows)
|
||||
-DUMF_LINK_HWLOC_STATICALLY:BOOL=${UMF_LINK_HWLOC_STATICALLY}
|
||||
-DUMF_DISABLE_HWLOC:BOOL=${UMF_DISABLE_HWLOC}
|
||||
-DSYCL_EMHASH_DIR:STRING=${SYCL_EMHASH_DIR}
|
||||
+ -DXPTIFW_PARALLEL_HASHMAP_HEADERS:STRING=${XPTIFW_PARALLEL_HASHMAP_HEADERS}
|
||||
+ -DPython3_ROOT_DIR:STRING=${Python3_ROOT_DIR}
|
||||
+ -DPython3_EXECUTABLE:STRING=${Python3_EXECUTABLE}
|
||||
+ -DPYTHON_EXECUTABLE:STRING=${PYTHON_EXECUTABLE}
|
||||
# Enable d suffix in UMF
|
||||
-DUMF_USE_DEBUG_POSTFIX:BOOL=ON
|
||||
)
|
||||
diff --git a/sycl/source/detail/graph_impl.hpp b/sycl/source/detail/graph_impl.hpp
|
||||
index 2d714bcc9..907151dc5 100644
|
||||
index 6045cc9ed..6ae24aade 100644
|
||||
--- a/sycl/source/detail/graph_impl.hpp
|
||||
+++ b/sycl/source/detail/graph_impl.hpp
|
||||
@@ -29,6 +29,7 @@
|
||||
@@ -210,87 +102,77 @@ index 2d714bcc9..907151dc5 100644
|
||||
namespace sycl {
|
||||
inline namespace _V1 {
|
||||
diff --git a/sycl/source/detail/kernel_bundle_impl.hpp b/sycl/source/detail/kernel_bundle_impl.hpp
|
||||
index e538318f8..43599b552 100644
|
||||
index eefea331d..9f08546be 100644
|
||||
--- a/sycl/source/detail/kernel_bundle_impl.hpp
|
||||
+++ b/sycl/source/detail/kernel_bundle_impl.hpp
|
||||
@@ -25,6 +25,7 @@
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <cstdint>
|
||||
#include <cstring>
|
||||
#include <memory>
|
||||
+#include <sstream>
|
||||
#include <unordered_set>
|
||||
#include <vector>
|
||||
|
||||
#include "split_string.hpp"
|
||||
diff --git a/sycl/source/detail/kernel_program_cache.hpp b/sycl/source/detail/kernel_program_cache.hpp
|
||||
index 968cb9b24..ee13dc8c6 100644
|
||||
--- a/sycl/source/detail/kernel_program_cache.hpp
|
||||
+++ b/sycl/source/detail/kernel_program_cache.hpp
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
#include <atomic>
|
||||
#include <condition_variable>
|
||||
+#include <map>
|
||||
#include <iomanip>
|
||||
#include <list>
|
||||
#include <mutex>
|
||||
@@ -27,9 +28,7 @@
|
||||
#include <set>
|
||||
#include <thread>
|
||||
#include <type_traits>
|
||||
-
|
||||
-#include <boost/unordered/unordered_flat_map.hpp>
|
||||
-#include <boost/unordered_map.hpp>
|
||||
+#include <sstream>
|
||||
|
||||
// For testing purposes
|
||||
class MockKernelProgramCache;
|
||||
@@ -177,8 +176,8 @@ public:
|
||||
};
|
||||
|
||||
struct ProgramCache {
|
||||
- ::boost::unordered_map<ProgramCacheKeyT, ProgramBuildResultPtr> Cache;
|
||||
- ::boost::unordered_multimap<CommonProgramKeyT, ProgramCacheKeyT> KeyMap;
|
||||
+ std::map<ProgramCacheKeyT, ProgramBuildResultPtr> Cache;
|
||||
+ std::multimap<CommonProgramKeyT, ProgramCacheKeyT> KeyMap;
|
||||
// Mapping between a UR program and its size.
|
||||
std::unordered_map<ur_program_handle_t, size_t> ProgramSizeMap;
|
||||
|
||||
@@ -214,10 +213,8 @@ public:
|
||||
};
|
||||
using KernelBuildResultPtr = std::shared_ptr<KernelBuildResult>;
|
||||
|
||||
- using KernelByNameT =
|
||||
- ::boost::unordered_map<std::string, KernelBuildResultPtr>;
|
||||
- using KernelCacheT =
|
||||
- ::boost::unordered_map<ur_program_handle_t, KernelByNameT>;
|
||||
+ using KernelByNameT = std::map<std::string, KernelBuildResultPtr>;
|
||||
+ using KernelCacheT = std::map<ur_program_handle_t, KernelByNameT>;
|
||||
|
||||
using KernelFastCacheKeyT =
|
||||
std::tuple<SerializedObj, /* Serialized spec constants. */
|
||||
@@ -233,13 +230,7 @@ public:
|
||||
kernel. */
|
||||
>;
|
||||
diff --git a/sycl/source/detail/unordered_multimap.hpp b/sycl/source/detail/unordered_multimap.hpp
|
||||
index 4d495ed06..e96d71870 100644
|
||||
--- a/sycl/source/detail/unordered_multimap.hpp
|
||||
+++ b/sycl/source/detail/unordered_multimap.hpp
|
||||
@@ -7,7 +7,7 @@
|
||||
//===--------------------------------------------------------------===//
|
||||
#pragma once
|
||||
#include <detail/hashers.hpp>
|
||||
-#include <emhash/hash_table8.hpp>
|
||||
+#include <hash_table8.hpp>
|
||||
|
||||
- // This container is used as a fast path for retrieving cached kernels.
|
||||
- // unordered_flat_map is used here to reduce lookup overhead.
|
||||
- // The slow path is used only once for each newly created kernel, so the
|
||||
- // higher overhead of insertion that comes with unordered_flat_map is more
|
||||
- // of an issue there. For that reason, those use regular unordered maps.
|
||||
- using KernelFastCacheT =
|
||||
- ::boost::unordered_flat_map<KernelFastCacheKeyT, KernelFastCacheValT>;
|
||||
+ using KernelFastCacheT = std::map<KernelFastCacheKeyT, KernelFastCacheValT>;
|
||||
|
||||
// DS to hold data and functions related to Program cache eviction.
|
||||
struct EvictionList {
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
diff --git a/sycl/unittests/CMakeLists.txt b/sycl/unittests/CMakeLists.txt
|
||||
index 883142678..dedd9f83f 100644
|
||||
index b2b6761b9..f9db10a86 100644
|
||||
--- a/sycl/unittests/CMakeLists.txt
|
||||
+++ b/sycl/unittests/CMakeLists.txt
|
||||
@@ -1,6 +1,5 @@
|
||||
add_custom_target(SYCLUnitTests)
|
||||
set_target_properties(SYCLUnitTests PROPERTIES FOLDER "SYCL tests")
|
||||
-include_directories(${BOOST_UNORDERED_INCLUDE_DIRS})
|
||||
|
||||
|
||||
foreach(flag_var
|
||||
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
|
||||
diff --git a/xptifw/include/xpti_string_table.hpp b/xptifw/include/xpti_string_table.hpp
|
||||
index c8678bdff..bd91468c9 100644
|
||||
--- a/xptifw/include/xpti_string_table.hpp
|
||||
+++ b/xptifw/include/xpti_string_table.hpp
|
||||
@@ -6,7 +6,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "xpti/xpti_data_types.h"
|
||||
-#include <emhash/hash_table7.hpp>
|
||||
+#include <hash_table7.hpp>
|
||||
|
||||
#include <atomic>
|
||||
#include <shared_mutex>
|
||||
diff --git a/xptifw/src/CMakeLists.txt b/xptifw/src/CMakeLists.txt
|
||||
index de2274129..adeca1d1d 100644
|
||||
--- a/xptifw/src/CMakeLists.txt
|
||||
+++ b/xptifw/src/CMakeLists.txt
|
||||
@@ -18,8 +18,6 @@ FetchContent_Declare(parallel-hashmap
|
||||
FetchContent_GetProperties(parallel-hashmap)
|
||||
FetchContent_MakeAvailable(parallel-hashmap)
|
||||
|
||||
-set(XPTIFW_PARALLEL_HASHMAP_HEADERS "${parallel-hashmap_SOURCE_DIR}")
|
||||
-
|
||||
file(GLOB SOURCES *.cpp)
|
||||
|
||||
function(add_xpti_library LIB_NAME)
|
||||
diff --git a/xptifw/src/xpti_trace_framework.cpp b/xptifw/src/xpti_trace_framework.cpp
|
||||
index 223fe20aa..d9c8d8e46 100644
|
||||
--- a/xptifw/src/xpti_trace_framework.cpp
|
||||
+++ b/xptifw/src/xpti_trace_framework.cpp
|
||||
@@ -19,7 +19,7 @@
|
||||
#include "xpti_int64_hash_table.hpp"
|
||||
#include "xpti_object_table.hpp"
|
||||
#include "xpti_string_table.hpp"
|
||||
-#include <emhash/hash_table7.hpp>
|
||||
+#include <hash_table7.hpp>
|
||||
|
||||
#include <algorithm>
|
||||
#include <array>
|
||||
|
||||
@@ -1,22 +1,3 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 1292e26..a1a9fcf 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -159,7 +159,13 @@ IF (EMBREE_SYCL_GEOMETRY_CALLBACK)
|
||||
ENDIF()
|
||||
|
||||
IF (EMBREE_SYCL_SUPPORT)
|
||||
- ADD_DEFINITIONS("-DEMBREE_SYCL_SUPPORT") # FIXME: only use define from rtcore_config.h
|
||||
+# Too many compilation issues with MSVC Debug and various versions of DPC++.
|
||||
+# It's preferable to disable SYCL support when using MSVC Debug.
|
||||
+ IF(WIN32 AND CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
+ SET(EMBREE_SYCL_SUPPORT FALSE)
|
||||
+ ELSE()
|
||||
+ ADD_DEFINITIONS("-DEMBREE_SYCL_SUPPORT") # FIXME: only use define from rtcore_config.h
|
||||
+ ENDIF()
|
||||
ENDIF()
|
||||
|
||||
CMAKE_DEPENDENT_OPTION(EMBREE_SYCL_RT_SIMULATION "Using hardware simulation" OFF "EMBREE_SYCL_SUPPORT" OFF)
|
||||
diff --git a/common/cmake/dpcpp.cmake b/common/cmake/dpcpp.cmake
|
||||
index a15c179..4760e63 100644
|
||||
--- a/common/cmake/dpcpp.cmake
|
||||
|
||||
144
build_files/build_environment/patches/emhash.diff
Normal file
144
build_files/build_environment/patches/emhash.diff
Normal file
@@ -0,0 +1,144 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index fcd396d..2d2740c 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -1,6 +1,6 @@
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
|
||||
-project(emhash_bench)
|
||||
+project(emhash)
|
||||
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE Release)
|
||||
@@ -8,41 +8,89 @@ endif()
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
+option(WITH_BENCHMARKS "Build benchmarks." ON)
|
||||
+
|
||||
message("------------ Options -------------")
|
||||
message(" CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
|
||||
message(" CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}")
|
||||
message(" CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR} ")
|
||||
message(" CMAKE_CXX_COMPILER_ID: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
|
||||
|
||||
-include_directories(${PROJECT_SOURCE_DIR})
|
||||
-include_directories(${PROJECT_SOURCE_DIR}/thirdparty)
|
||||
-include_directories(${PROJECT_SOURCE_DIR}/bench)
|
||||
-
|
||||
-add_definitions(-DHAVE_BOOST=1 -DABSL_HAMP=1 -DEMH_PSL=16)# -DET=1)
|
||||
-find_package(Threads REQUIRED)
|
||||
-
|
||||
-if(WIN32)
|
||||
- set(CMAKE_CXX_FLAGS "/WX- /MP")
|
||||
- set(CMAKE_CXX_FLAGS_DEBUG "/W3 /Zi /Od /WX- ${CMAKE_CXX_FLAGS}")
|
||||
- set(CMAKE_CXX_FLAGS_RELEASE "/Ob1 /Ot /Oi /Oy /GL /arch:AVX ${CMAKE_CXX_FLAGS}")
|
||||
- add_compile_options(/Ob2 /DNDEBUG /O2 /Ot /Oi /Oy /GL /arch:AVX)
|
||||
-elseif(1)
|
||||
- set(CMAKE_CXX_FLAGS_DEBUG "-g fno-strict-aliasing ${CMAKE_CXX_FLAGS}")
|
||||
- set(CMAKE_CXX_FLAGS "-flto -march=native ${CMAKE_CXX_FLAGS}")
|
||||
+add_library(emhash INTERFACE)
|
||||
+
|
||||
+set(EMHASH_HEADERS
|
||||
+ hash_set2.hpp
|
||||
+ hash_set3.hpp
|
||||
+ hash_set4.hpp
|
||||
+ hash_set8.hpp
|
||||
+ hash_table5.hpp
|
||||
+ hash_table6.hpp
|
||||
+ hash_table7.hpp
|
||||
+ hash_table8.hpp
|
||||
+)
|
||||
+
|
||||
+set_target_properties(emhash PROPERTIES PUBLIC_HEADER "${EMHASH_HEADERS}")
|
||||
+
|
||||
+target_include_directories(
|
||||
+ emhash INTERFACE
|
||||
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}}>
|
||||
+ $<INSTALL_INTERFACE:include>
|
||||
+)
|
||||
+
|
||||
+include(GNUInstallDirs)
|
||||
+include(CMakePackageConfigHelpers)
|
||||
+
|
||||
+install(TARGETS emhash
|
||||
+ EXPORT emhash-targets
|
||||
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
+)
|
||||
+
|
||||
+install(EXPORT emhash-targets
|
||||
+ FILE emhashTargets.cmake
|
||||
+ NAMESPACE emhash::
|
||||
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/emhash
|
||||
+)
|
||||
+
|
||||
+configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/config.cmake.in
|
||||
+ "${CMAKE_CURRENT_BINARY_DIR}/emhashConfig.cmake"
|
||||
+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/emhash
|
||||
+)
|
||||
+
|
||||
+install(FILES
|
||||
+ "${CMAKE_CURRENT_BINARY_DIR}/emhashConfig.cmake"
|
||||
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/emhash
|
||||
+)
|
||||
+
|
||||
+if(WITH_BENCHMARKS)
|
||||
+ include_directories(${PROJECT_SOURCE_DIR})
|
||||
+ include_directories(${PROJECT_SOURCE_DIR}/thirdparty)
|
||||
+ include_directories(${PROJECT_SOURCE_DIR}/bench)
|
||||
+ add_definitions(-DHAVE_BOOST=1 -DABSL_HAMP=1 -DEMH_PSL=16)# -DET=1)
|
||||
+ find_package(Threads REQUIRED)
|
||||
+ if(WIN32)
|
||||
+ set(CMAKE_CXX_FLAGS "/WX- /MP")
|
||||
+ set(CMAKE_CXX_FLAGS_DEBUG "/W3 /Zi /Od /WX- ${CMAKE_CXX_FLAGS}")
|
||||
+ set(CMAKE_CXX_FLAGS_RELEASE "/Ob1 /Ot /Oi /Oy /GL /arch:AVX ${CMAKE_CXX_FLAGS}")
|
||||
+ add_compile_options(/Ob2 /DNDEBUG /O2 /Ot /Oi /Oy /GL /arch:AVX)
|
||||
+ elseif(1)
|
||||
+ set(CMAKE_CXX_FLAGS_DEBUG "-g fno-strict-aliasing ${CMAKE_CXX_FLAGS}")
|
||||
+ set(CMAKE_CXX_FLAGS "-flto=auto -march=native ${CMAKE_CXX_FLAGS}")
|
||||
+ endif()
|
||||
+
|
||||
+ add_executable(ebench ${PROJECT_SOURCE_DIR}/bench/ebench.cpp)
|
||||
+ add_executable(sbench ${PROJECT_SOURCE_DIR}/bench/sbench.cpp)
|
||||
+ add_executable(mbench ${PROJECT_SOURCE_DIR}/bench/martin_bench.cpp)
|
||||
+ add_executable(bs ${PROJECT_SOURCE_DIR}/bench/bstring.cpp)
|
||||
+ add_executable(bi ${PROJECT_SOURCE_DIR}/bench/buint64.cpp)
|
||||
+ add_executable(fbench ${PROJECT_SOURCE_DIR}/bench/fbench.cpp)
|
||||
+ add_executable(hbench ${PROJECT_SOURCE_DIR}/bench/hbench.cpp)
|
||||
+ #add_executable(qbench ${PROJECT_SOURCE_DIR}/bench/qbench.cpp)
|
||||
+ #add_executable(sibench ${PROJECT_SOURCE_DIR}/bench/simple_bench.cpp)
|
||||
+
|
||||
+ #target_link_libraries(ebench PRIVATE Threads::Threads)
|
||||
+ #target_link_libraries(sbench PRIVATE Threads::Threads)
|
||||
+ #target_link_libraries(mbench PRIVATE Threads::Threads)
|
||||
+ #target_link_libraries(hbench PRIVATE Threads::Threads)
|
||||
+ #target_link_libraries(fbench PRIVATE Threads::Threads)
|
||||
endif()
|
||||
|
||||
-add_executable(ebench ${PROJECT_SOURCE_DIR}/bench/ebench.cpp)
|
||||
-add_executable(sbench ${PROJECT_SOURCE_DIR}/bench/sbench.cpp)
|
||||
-add_executable(mbench ${PROJECT_SOURCE_DIR}/bench/martin_bench.cpp)
|
||||
-add_executable(bs ${PROJECT_SOURCE_DIR}/bench/bstring.cpp)
|
||||
-add_executable(bi ${PROJECT_SOURCE_DIR}/bench/buint64.cpp)
|
||||
-add_executable(fbench ${PROJECT_SOURCE_DIR}/bench/fbench.cpp)
|
||||
-add_executable(hbench ${PROJECT_SOURCE_DIR}/bench/hbench.cpp)
|
||||
-#add_executable(qbench ${PROJECT_SOURCE_DIR}/bench/qbench.cpp)
|
||||
-#add_executable(sibench ${PROJECT_SOURCE_DIR}/bench/simple_bench.cpp)
|
||||
-
|
||||
-#target_link_libraries(ebench PRIVATE Threads::Threads)
|
||||
-#target_link_libraries(sbench PRIVATE Threads::Threads)
|
||||
-#target_link_libraries(mbench PRIVATE Threads::Threads)
|
||||
-#target_link_libraries(hbench PRIVATE Threads::Threads)
|
||||
-#target_link_libraries(fbench PRIVATE Threads::Threads)
|
||||
diff --git a/config.cmake.in b/config.cmake.in
|
||||
new file mode 100644
|
||||
index 0000000..341806c
|
||||
--- /dev/null
|
||||
+++ b/config.cmake.in
|
||||
@@ -0,0 +1,5 @@
|
||||
+@PACKAGE_INIT@
|
||||
+
|
||||
+include("${CMAKE_CURRENT_LIST_DIR}/emhashTargets.cmake")
|
||||
+
|
||||
+check_required_components(emhash)
|
||||
\ No newline at end of file
|
||||
@@ -1,11 +0,0 @@
|
||||
--- Makefile.in 2014-11-12 06:59:58.000000000 -0500
|
||||
+++ Makefile.in 2018-09-17 13:36:10.974086554 -0400
|
||||
@@ -600,7 +600,7 @@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
toolexecdir = @toolexecdir@
|
||||
-toolexeclibdir = @toolexeclibdir@
|
||||
+toolexeclibdir = $(libdir)
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
@@ -1,12 +0,0 @@
|
||||
diff --git a/src/hpdf_image_ccitt.c b/src/hpdf_image_ccitt.c
|
||||
index 8672763..9be531a 100644
|
||||
--- a/src/hpdf_image_ccitt.c
|
||||
+++ b/src/hpdf_image_ccitt.c
|
||||
@@ -21,7 +21,6 @@
|
||||
#include <memory.h>
|
||||
#include <assert.h>
|
||||
|
||||
-#define G3CODES
|
||||
#include "t4.h"
|
||||
|
||||
typedef unsigned int uint32;
|
||||
@@ -1,63 +1,12 @@
|
||||
diff -Naur ispc-1.17.0.org/CMakeLists.txt ispc-1.17.0/CMakeLists.txt
|
||||
--- ispc-1.17.0.org/CMakeLists.txt 2022-01-15 01:35:15 -0700
|
||||
+++ ispc-1.17.0/CMakeLists.txt 2022-02-12 12:44:24 -0700
|
||||
@@ -443,7 +447,7 @@
|
||||
diff -Naur ispc-1.28.0/cmake/GenerateBuiltins.cmake external_ispc/cmake/GenerateBuiltins.cmake
|
||||
--- ispc-1.28.0/cmake/GenerateBuiltins.cmake 2025-08-12 06:34:22.000000000 -0600
|
||||
+++ external_ispc/cmake/GenerateBuiltins.cmake 2025-09-10 10:40:05.793808800 -0600
|
||||
@@ -334,7 +334,7 @@
|
||||
|
||||
# Include directories
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE
|
||||
- ${LLVM_INCLUDE_DIRS}
|
||||
+ ${LLVM_INCLUDE_DIRS} ${CLANG_INCLUDE_DIRS}
|
||||
${XE_DEPS_DIR}/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR})
|
||||
@@ -607,7 +607,7 @@
|
||||
NAMES
|
||||
"${CMAKE_STATIC_LIBRARY_PREFIX}${clangLib}${CMAKE_STATIC_LIBRARY_SUFFIX}"
|
||||
clang-cpp
|
||||
- HINTS ${LLVM_LIBRARY_DIRS})
|
||||
+ HINTS ${LLVM_LIBRARY_DIRS} ${CLANG_LIBRARY_DIR})
|
||||
if (NOT ${${clangLib}Path} IN_LIST CLANG_LIBRARY_FULL_PATH_LIST)
|
||||
list(APPEND CLANG_LIBRARY_FULL_PATH_LIST ${${clangLib}Path})
|
||||
endif()
|
||||
@@ -546,6 +550,29 @@
|
||||
endif()
|
||||
endif()
|
||||
|
||||
+# Link against libstdc++.a which must be provided to the linker after
|
||||
+# LLVM and CLang libraries.
|
||||
+# This is needed because some of LLVM/CLang dependencies are using
|
||||
+# std::make_shared, which is defined in one of those:
|
||||
+# - libclang-cpp.so
|
||||
+# - libstdc++.a
|
||||
+# Using the former one is tricky because then generated binary depends
|
||||
+# on a library which is outside of the LD_LIBRARY_PATH.
|
||||
+#
|
||||
+# Hence, using C++ implementation from G++ which seems to work just fine.
|
||||
+# In fact, from investigation seems that libclang-cpp.so itself is pulling
|
||||
+# std::_Sp_make_shared_tag from G++'s libstdc++.a.
|
||||
+if(UNIX AND NOT APPLE)
|
||||
+ execute_process(
|
||||
+ COMMAND g++ --print-file-name libstdc++.a
|
||||
+ OUTPUT_VARIABLE GCC_LIBSTDCXX_A
|
||||
+ OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
+ )
|
||||
+ if(GCC_LIBSTDCXX_A AND EXISTS ${GCC_LIBSTDCXX_A})
|
||||
+ target_link_libraries(${PROJECT_NAME} ${GCC_LIBSTDCXX_A})
|
||||
+ endif()
|
||||
+endif()
|
||||
+
|
||||
# Build target for utility checking host ISA
|
||||
if (ISPC_INCLUDE_UTILS)
|
||||
add_executable(check_isa "")
|
||||
diff -Naur ispc-1.17.0.org/cmake/GenerateBuiltins.cmake ispc-1.17.0/cmake/GenerateBuiltins.cmake
|
||||
--- ispc-1.17.0.org/cmake/GenerateBuiltins.cmake 2022-01-15 01:35:15 -0700
|
||||
+++ ispc-1.17.0/cmake/GenerateBuiltins.cmake 2022-02-12 12:44:24 -0700
|
||||
@@ -124,6 +124,8 @@
|
||||
|
||||
if ("${bit}" STREQUAL "32" AND ${arch} STREQUAL "x86")
|
||||
set(target_arch "i686")
|
||||
+ # Blender: disable 32bit due to build issues on Linux and being unnecessary.
|
||||
+ set(SKIP ON)
|
||||
elseif ("${bit}" STREQUAL "64" AND ${arch} STREQUAL "x86")
|
||||
set(target_arch "x86_64")
|
||||
elseif ("${bit}" STREQUAL "32" AND ${arch} STREQUAL "arm")
|
||||
add_custom_command(
|
||||
OUTPUT ${bc}
|
||||
- COMMAND cat ${input} | \"${LLVM_AS_EXECUTABLE}\" -o ${bc}
|
||||
+ COMMAND ${CMAKE_COMMAND} -E cat ${input} | \"${LLVM_AS_EXECUTABLE}\" -o ${bc}
|
||||
DEPENDS ${input}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index ca0746f..75d2890 100644
|
||||
index b2114c3..c7205a8 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -92,13 +92,6 @@ if(MSVC)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /DYNAMICBASE")
|
||||
@@ -100,13 +100,6 @@ if(MSVC)
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_CXX_LINKER_WRAPPER_FLAG}/DYNAMICBASE")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_CXX_LINKER_WRAPPER_FLAG}/guard:cf")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_CXX_LINKER_WRAPPER_FLAG}/LTCG /INCREMENTAL:NO")
|
||||
- # enable Spectre Mitigation, not supported by clang-cl
|
||||
- if((NOT CMAKE_CXX_COMPILER_ID STREQUAL Clang) AND (NOT CMAKE_CXX_COMPILER_ID STREQUAL IntelLLVM))
|
||||
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Qspectre")
|
||||
@@ -16,7 +16,7 @@ index ca0746f..75d2890 100644
|
||||
endif()
|
||||
|
||||
#CXX compiler support
|
||||
@@ -142,9 +135,6 @@ if(MSVC)
|
||||
@@ -161,9 +154,6 @@ if(MSVC)
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} ${CMAKE_CXX_LINKER_WRAPPER_FLAG}/DEBUG ${CMAKE_CXX_LINKER_WRAPPER_FLAG}/OPT:REF ${CMAKE_CXX_LINKER_WRAPPER_FLAG}/OPT:ICF")
|
||||
|
||||
|
||||
@@ -1,298 +0,0 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 9b20aa043..8f33d3a3f 100755
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -180,7 +180,12 @@ option(OCIO_USE_OIIO_FOR_APPS "Request OIIO to build apps (ociolutimage, ociocon
|
||||
|
||||
|
||||
if (NOT APPLE)
|
||||
- if ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(AMD64|IA64|EM64T|x86_64|X86|i386|i686)")
|
||||
+ if("${CMAKE_GENERATOR_PLATFORM}" MATCHES "(ARM64|arm64)" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64")
|
||||
+ set(OCIO_ARCH_X86 0)
|
||||
+ set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_SSE ON)
|
||||
+ set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_AVX OFF)
|
||||
+ set(OCIO_BUILD_ENABLE_OPTIMIZATIONS_F16C OFF)
|
||||
+ elseif ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(AMD64|IA64|EM64T|x86_64|X86|i386|i686)")
|
||||
# Intel-based architecture (not APPLE)
|
||||
if ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(X86|i386|i686)")
|
||||
set(OCIO_ARCH_X86_32 1)
|
||||
@@ -270,7 +275,7 @@ option(OCIO_USE_AVX2 "Specify whether to enable AVX2 CPU performance optimizatio
|
||||
option(OCIO_USE_AVX512 "Specify whether to enable AVX512 CPU performance optimizations" ${OCIO_BUILD_ENABLE_OPTIMIZATIONS_AVX})
|
||||
option(OCIO_USE_F16C "Specify whether to enable F16C CPU performance optimizations" ${OCIO_BUILD_ENABLE_OPTIMIZATIONS_F16C})
|
||||
|
||||
-if (APPLE)
|
||||
+if (APPLE OR WIN32)
|
||||
# TODO: Revisit whether that option is necessary.
|
||||
option(OCIO_USE_SSE2NEON "Specify whether to enable SSE CPU performance optimizations using SSE2NEON for Apple ARM architecture" ON)
|
||||
mark_as_advanced(OCIO_USE_SSE2NEON)
|
||||
@@ -332,8 +337,10 @@ if(OCIO_USE_SIMD AND OCIO_USE_SSE2NEON AND COMPILER_SUPPORTS_ARM_NEON)
|
||||
add_library(sse2neon INTERFACE)
|
||||
# Add the include directories to the target.
|
||||
target_include_directories(sse2neon INTERFACE "${sse2neon_INCLUDE_DIR}")
|
||||
- # Ignore the warnings coming from sse2neon.h as they are false positives.
|
||||
- target_compile_options(sse2neon INTERFACE -Wno-unused-parameter)
|
||||
+ if(NOT MSVC)
|
||||
+ # Ignore the warnings coming from sse2neon.h as they are false positives.
|
||||
+ target_compile_options(sse2neon INTERFACE -Wno-unused-parameter)
|
||||
+ endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
diff --git a/share/cmake/modules/install/Installsse2neon.cmake b/share/cmake/modules/install/Installsse2neon.cmake
|
||||
index 47877436a..ced4ae139 100644
|
||||
--- a/share/cmake/modules/install/Installsse2neon.cmake
|
||||
+++ b/share/cmake/modules/install/Installsse2neon.cmake
|
||||
@@ -16,7 +16,7 @@ include(FetchContent)
|
||||
set(FETCHCONTENT_BASE_DIR "${CMAKE_BINARY_DIR}/ext/build/sse2neon")
|
||||
FetchContent_Declare(sse2neon
|
||||
GIT_REPOSITORY https://github.com/DLTcollab/sse2neon.git
|
||||
- GIT_TAG v1.6.0
|
||||
+ GIT_TAG 227cc413fb2d50b2a10073087be96b59d5364aea
|
||||
)
|
||||
|
||||
# FetchContent_MakeAvailable is not available until CMake 3.14+.
|
||||
@@ -38,6 +38,8 @@ if(NOT sse2neon_POPULATED)
|
||||
add_library(sse2neon INTERFACE)
|
||||
# Add the include directories to the target.
|
||||
target_include_directories(sse2neon INTERFACE "${sse2neon_INCLUDE_DIR}")
|
||||
- # Ignore the warnings coming from sse2neon.h as they are false positives.
|
||||
- target_compile_options(sse2neon INTERFACE -Wno-unused-parameter)
|
||||
+ if(NOT MSVC)
|
||||
+ # Ignore the warnings coming from sse2neon.h as they are false positives.
|
||||
+ target_compile_options(sse2neon INTERFACE -Wno-unused-parameter)
|
||||
+ endif()
|
||||
endif()
|
||||
\ No newline at end of file
|
||||
diff --git a/share/cmake/utils/CheckSupportSSEUsingSSE2NEON.cmake b/share/cmake/utils/CheckSupportSSEUsingSSE2NEON.cmake
|
||||
index c47c8be70..d24cda55f 100644
|
||||
--- a/share/cmake/utils/CheckSupportSSEUsingSSE2NEON.cmake
|
||||
+++ b/share/cmake/utils/CheckSupportSSEUsingSSE2NEON.cmake
|
||||
@@ -6,8 +6,13 @@ include(CheckCXXSourceCompiles)
|
||||
set(_cmake_required_flags_orig "${CMAKE_REQUIRED_FLAGS}")
|
||||
set(_cmake_required_includes_orig "${CMAKE_REQUIRED_INCLUDES}")
|
||||
set(_cmake_osx_architectures_orig "${CMAKE_OSX_ARCHITECTURES}")
|
||||
+set(_cmake_cxx_flags_orig "${CMAKE_CXX_FLAGS}")
|
||||
|
||||
-if(APPLE AND COMPILER_SUPPORTS_ARM_NEON)
|
||||
+if(MSVC)
|
||||
+ set(CMAKE_CXX_FLAGS "/Zc:preprocessor")
|
||||
+endif()
|
||||
+
|
||||
+if((APPLE OR WIN32) AND COMPILER_SUPPORTS_ARM_NEON)
|
||||
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" MATCHES "arm64;x86_64" OR
|
||||
"${CMAKE_OSX_ARCHITECTURES}" MATCHES "x86_64;arm64")
|
||||
@@ -63,8 +68,9 @@ endif()
|
||||
set(CMAKE_REQUIRED_FLAGS "${_cmake_required_flags_orig}")
|
||||
set(CMAKE_REQUIRED_INCLUDES "${_cmake_required_includes_orig}")
|
||||
set(CMAKE_OSX_ARCHITECTURES "${_cmake_osx_architectures_orig}")
|
||||
+set(CMAKE_CXX_FLAGS "${_cmake_cxx_flags_orig}")
|
||||
|
||||
unset(_cmake_required_flags_orig)
|
||||
unset(_cmake_required_includes_orig)
|
||||
unset(_cmake_osx_architectures_orig)
|
||||
-
|
||||
+unset(_cmake_cxx_flags_orig)
|
||||
diff --git a/share/cmake/utils/CompilerFlags.cmake b/share/cmake/utils/CompilerFlags.cmake
|
||||
index 536b5eebd..d87e73f2d 100644
|
||||
--- a/share/cmake/utils/CompilerFlags.cmake
|
||||
+++ b/share/cmake/utils/CompilerFlags.cmake
|
||||
@@ -18,7 +18,12 @@ if(OCIO_USE_SIMD)
|
||||
|
||||
if (OCIO_USE_SSE2NEON AND COMPILER_SUPPORTS_ARM_NEON)
|
||||
include(CheckSupportSSEUsingSSE2NEON)
|
||||
- if(NOT COMPILER_SUPPORTS_SSE_WITH_SSE2NEON)
|
||||
+ if(COMPILER_SUPPORTS_SSE_WITH_SSE2NEON)
|
||||
+ if(WIN32 AND MSVC)
|
||||
+ # Enable the "new" preprocessor, to more closely match Clang/GCC, required for sse2neon
|
||||
+ set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};/Zc:preprocessor")
|
||||
+ endif()
|
||||
+ else()
|
||||
set(OCIO_USE_SSE2NEON OFF)
|
||||
endif()
|
||||
endif()
|
||||
diff --git a/src/OpenColorIO/CPUInfo.cpp b/src/OpenColorIO/CPUInfo.cpp
|
||||
index dce813a4f..edf341792 100644
|
||||
--- a/src/OpenColorIO/CPUInfo.cpp
|
||||
+++ b/src/OpenColorIO/CPUInfo.cpp
|
||||
@@ -183,7 +183,7 @@ CPUInfo::CPUInfo()
|
||||
}
|
||||
}
|
||||
|
||||
-#elif defined(__aarch64__) // ARM Processor or Apple ARM.
|
||||
+#elif defined(__aarch64__) || defined(_M_ARM64) // ARM 64-bit processor (multiple platforms)
|
||||
|
||||
CPUInfo::CPUInfo()
|
||||
{
|
||||
diff --git a/src/OpenColorIO/CPUInfoConfig.h.in b/src/OpenColorIO/CPUInfoConfig.h.in
|
||||
index b8f5045d2..c105d4159 100644
|
||||
--- a/src/OpenColorIO/CPUInfoConfig.h.in
|
||||
+++ b/src/OpenColorIO/CPUInfoConfig.h.in
|
||||
@@ -6,7 +6,7 @@
|
||||
#cmakedefine01 OCIO_ARCH_X86_32
|
||||
|
||||
// Relevant only for arm64 architecture.
|
||||
-#if defined(__aarch64__)
|
||||
+#if defined(__aarch64__) || defined(_M_ARM64)
|
||||
#cmakedefine01 OCIO_USE_SSE2NEON
|
||||
#else
|
||||
#define OCIO_USE_SSE2NEON 0
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
// Building for x86_64 processor on a non-ARM host architecture
|
||||
// OR Building on/for an ARM architecture and using SSE2NEON.
|
||||
-#if (OCIO_ARCH_X86 && !defined(__aarch64__)) || (defined(__aarch64__) && OCIO_USE_SSE2NEON)
|
||||
+#if (OCIO_ARCH_X86 && !defined(__aarch64__)) || ((defined(__aarch64__) || defined(_M_ARM64)) && OCIO_USE_SSE2NEON)
|
||||
#cmakedefine01 OCIO_USE_SSE2
|
||||
#cmakedefine01 OCIO_USE_SSE3
|
||||
#cmakedefine01 OCIO_USE_SSSE3
|
||||
diff --git a/src/OpenColorIO/SSE.h b/src/OpenColorIO/SSE.h
|
||||
index 2494698c5..6aebc45d4 100644
|
||||
--- a/src/OpenColorIO/SSE.h
|
||||
+++ b/src/OpenColorIO/SSE.h
|
||||
@@ -9,14 +9,25 @@
|
||||
#if OCIO_USE_SSE2
|
||||
|
||||
// Include the appropriate SIMD intrinsics header based on the architecture (Intel vs. ARM).
|
||||
-#if !defined(__aarch64__)
|
||||
+#if !defined(__aarch64__) && !defined(_M_ARM64)
|
||||
#if OCIO_USE_SSE2
|
||||
#include <emmintrin.h>
|
||||
#endif
|
||||
-#elif defined(__aarch64__)
|
||||
+#elif defined(__aarch64__) || defined(_M_ARM64)
|
||||
// ARM architecture A64 (ARM64)
|
||||
#if OCIO_USE_SSE2NEON
|
||||
+ // MSVC doesn't like the redefinitions below and requires the existing functions to be undef-ed
|
||||
+ #if defined(_M_ARM64)
|
||||
+ #define _mm_max_ps _mm_max_ps_orig
|
||||
+ #define _mm_min_ps _mm_min_ps_orig
|
||||
+ #endif
|
||||
+
|
||||
#include <sse2neon.h>
|
||||
+
|
||||
+ #if defined(_M_ARM64)
|
||||
+ #undef _mm_max_ps
|
||||
+ #undef _mm_min_ps
|
||||
+ #endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -30,7 +41,7 @@ namespace OCIO_NAMESPACE
|
||||
// Note that it is important for the code below this ifdef stays in the OCIO_NAMESPACE since
|
||||
// it is redefining two of the functions from sse2neon.
|
||||
|
||||
-#if defined(__aarch64__)
|
||||
+#if defined(__aarch64__) || defined(_M_ARM64)
|
||||
#if OCIO_USE_SSE2NEON
|
||||
// Using vmaxnmq_f32 and vminnmq_f32 rather than sse2neon's vmaxq_f32 and vminq_f32 due to
|
||||
// NaN handling. This doesn't seem to be significantly slower than the default sse2neon behavior.
|
||||
@@ -77,6 +88,9 @@ static const __m128 EPOS128 = _mm_set1_ps(128.0f);
|
||||
|
||||
static const __m128 EPOSINF = _mm_set1_ps(std::numeric_limits<float>::infinity());
|
||||
|
||||
+// These funtions won't work when using MSVC + ARM64 unless you specify /Zc:arm64-aliased-neon-types-
|
||||
+// This comes with its own issues, so it is easier to just disable them when using MSVC + ARM64
|
||||
+#if !defined(_M_ARM64)
|
||||
// Debug function to print out the contents of a floating-point SSE register
|
||||
inline void ssePrintRegister(const char* msg, __m128& reg)
|
||||
{
|
||||
@@ -91,6 +105,7 @@ inline void ssePrintRegister(const char* msg, __m128i& reg)
|
||||
int *r = (int*) ®
|
||||
printf("%s : %d %d %d %d\n", msg, r[0], r[1], r[2], r[3]);
|
||||
}
|
||||
+#endif
|
||||
|
||||
// Determine whether a floating-point value is negative based on its sign bit.
|
||||
// This function will treat special values, like -0, -NaN, -Inf, as they were indeed
|
||||
@@ -170,7 +185,7 @@ inline __m128 sseLog2(__m128 x)
|
||||
{
|
||||
// y = log2( x ) = log2( 2^exponent * mantissa )
|
||||
// = exponent + log2( mantissa )
|
||||
-
|
||||
+
|
||||
__m128 mantissa
|
||||
= _mm_or_ps( // OR with EONE
|
||||
_mm_andnot_ps( // NOT(EMASK) AND x
|
||||
diff --git a/src/OpenColorIO/SSE2.h b/src/OpenColorIO/SSE2.h
|
||||
index 918694fc8..e51dad9b5 100644
|
||||
--- a/src/OpenColorIO/SSE2.h
|
||||
+++ b/src/OpenColorIO/SSE2.h
|
||||
@@ -9,12 +9,35 @@
|
||||
#if OCIO_USE_SSE2
|
||||
|
||||
// Include the appropriate SIMD intrinsics header based on the architecture (Intel vs. ARM).
|
||||
-#if !defined(__aarch64__)
|
||||
+#if !defined(__aarch64__) && !defined(_M_ARM64)
|
||||
#include <emmintrin.h>
|
||||
-#elif defined(__aarch64__)
|
||||
+#elif defined(__aarch64__) || defined(_M_ARM64)
|
||||
// ARM architecture A64 (ARM64)
|
||||
#if OCIO_USE_SSE2NEON
|
||||
+ // MSVC doesn't like the redefinitions below and requires the existing functions to be undef-ed
|
||||
+ #if defined(_M_ARM64)
|
||||
+ #define _mm_max_ps _mm_max_ps_orig
|
||||
+ #define _mm_min_ps _mm_min_ps_orig
|
||||
+ #endif
|
||||
+
|
||||
#include <sse2neon.h>
|
||||
+
|
||||
+ #if defined(_M_ARM64)
|
||||
+ #undef _mm_max_ps
|
||||
+ #undef _mm_min_ps
|
||||
+ #endif
|
||||
+
|
||||
+ // Current versions of MSVC do not define float16_t, so we do it ourselves using
|
||||
+ // int16_t as an intermediate type
|
||||
+ #if defined(_M_ARM64) && !defined(float16_t)
|
||||
+ #define float16_t int16_t
|
||||
+ #endif
|
||||
+
|
||||
+ // Current versions of MSVC do not define vst1q_f16, so we do it ourselves using
|
||||
+ // internal methods from MSVC's arm_neon.h
|
||||
+ #if defined(_M_ARM64) && !defined(vst1q_f16)
|
||||
+ #define vst1q_f16(A, B) neon_st1m_q16((A), __float16x8_t_to_n128(B));
|
||||
+ #endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -30,7 +53,7 @@ namespace OCIO_NAMESPACE
|
||||
// Note that it is important for the code below this ifdef stays in the OCIO_NAMESPACE since
|
||||
// it is redefining two of the functions from sse2neon.
|
||||
|
||||
-#if defined(__aarch64__)
|
||||
+#if defined(__aarch64__) || defined(_M_ARM64)
|
||||
#if OCIO_USE_SSE2NEON
|
||||
// Using vmaxnmq_f32 and vminnmq_f32 rather than sse2neon's vmaxq_f32 and vminq_f32 due to
|
||||
// NaN handling. This doesn't seem to be significantly slower than the default sse2neon behavior.
|
||||
@@ -321,7 +344,7 @@ struct SSE2RGBAPack<BIT_DEPTH_F16>
|
||||
sse2RGBATranspose_4x4(r, g, b, a, rgba0, rgba1, rgba2, rgba3);
|
||||
|
||||
#if OCIO_USE_SSE2NEON
|
||||
- // use neon hardware support for f32 to f16
|
||||
+ // use neon hardware support for f32 to f16 (apart from in MSVC, which doesnt support it)
|
||||
float16x8_t rgba;
|
||||
float16x4_t rgba00_01 = vcvt_f16_f32(vreinterpretq_f32_m128(rgba0));
|
||||
float16x4_t rgba03_03 = vcvt_f16_f32(vreinterpretq_f32_m128(rgba1));
|
||||
diff --git a/src/OpenColorIO/ops/fixedfunction/FixedFunctionOpCPU.cpp b/src/OpenColorIO/ops/fixedfunction/FixedFunctionOpCPU.cpp
|
||||
index 96adff44b..e9e977433 100644
|
||||
--- a/src/OpenColorIO/ops/fixedfunction/FixedFunctionOpCPU.cpp
|
||||
+++ b/src/OpenColorIO/ops/fixedfunction/FixedFunctionOpCPU.cpp
|
||||
@@ -1844,7 +1844,7 @@ __m128 Renderer_LIN_TO_PQ_SSE<true>::myPower(__m128 x, __m128 exp)
|
||||
return ssePower(x, exp);
|
||||
}
|
||||
|
||||
-#ifdef _WIN32
|
||||
+#if (_MSC_VER >= 1920) && (OCIO_USE_AVX)
|
||||
// Only Windows compilers have built-in _mm_pow_ps() SVML intrinsic
|
||||
// implementation, so non-fast SIMD version is available only on Windows for
|
||||
// now.
|
||||
@@ -1853,7 +1853,7 @@ __m128 Renderer_LIN_TO_PQ_SSE<false>::myPower(__m128 x, __m128 exp)
|
||||
{
|
||||
return _mm_pow_ps(x, exp);
|
||||
}
|
||||
-#endif // _WIN32
|
||||
+#endif // (_MSC_VER >= 1920) && (OCIO_USE_AVX)
|
||||
|
||||
template<bool FAST_POWER>
|
||||
void Renderer_LIN_TO_PQ_SSE<FAST_POWER>::apply(const void* inImg, void* outImg, long numPixels) const
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/shared/offline_compiler/source/CMakeLists.txt b/shared/offline_compiler/source/CMakeLists.txt
|
||||
index 9d16ca0e736..88e236acd1a 100644
|
||||
--- a/shared/offline_compiler/source/CMakeLists.txt
|
||||
+++ b/shared/offline_compiler/source/CMakeLists.txt
|
||||
@@ -463,7 +463,7 @@ elseif(UNIX)
|
||||
set(NEO_OCLOC_FORMER_LIB_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}${OCLOC_NAME}${NEO__LEGACY_NAME_SUFFIX}${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||
endif()
|
||||
|
||||
- set(OCLOC_OUTPUT_NAME_SUFFIX "-${NEO_OCL_VERSION_MAJOR}.${NEO_OCL_VERSION_MINOR}.${NEO_OCLOC_VERSION_MODE}")
|
||||
+ #set(OCLOC_OUTPUT_NAME_SUFFIX "-${NEO_OCL_VERSION_MAJOR}.${NEO_OCL_VERSION_MINOR}.${NEO_OCLOC_VERSION_MODE}")
|
||||
endif()
|
||||
set_target_properties(${OCLOC_NAME} PROPERTIES OUTPUT_NAME ${OCLOC_NAME}${OCLOC_OUTPUT_NAME_SUFFIX})
|
||||
set_target_properties(${OCLOC_NAME}_lib PROPERTIES OUTPUT_NAME ${OCLOC_NAME}${LIBOCLOC_OUTPUT_NAME_SUFFIX})
|
||||
@@ -1,14 +0,0 @@
|
||||
diff --git a/src/include/OpenImageIO/simd.h b/src/include/OpenImageIO/simd.h
|
||||
index b1701946f..d148a89d3 100644
|
||||
--- a/src/include/OpenImageIO/simd.h
|
||||
+++ b/src/include/OpenImageIO/simd.h
|
||||
@@ -119,6 +119,9 @@
|
||||
// Cuda -- don't include any of these headers
|
||||
#elif defined(_WIN32)
|
||||
# include <intrin.h>
|
||||
+# if defined(__ARM_NEON__) && !defined(OIIO_NO_NEON)
|
||||
+# include <arm_neon.h>
|
||||
+# endif
|
||||
#elif defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__)) || defined(__e2k__)
|
||||
# include <x86intrin.h>
|
||||
#elif defined(__GNUC__) && defined(__ARM_NEON__) && !defined(OIIO_NO_NEON)
|
||||
@@ -1,62 +0,0 @@
|
||||
commit df162955c613d17f966dd4d42a6c9582a3d57683
|
||||
Author: Kimball Thurston <kdt3rd@gmail.com>
|
||||
Date: Wed Feb 19 05:07:18 2025 +1300
|
||||
|
||||
Adjust the clamping on the dwa compression (#1986)
|
||||
|
||||
* Adjust the clamping on the dwa compression
|
||||
|
||||
The dwa compression is not truly a quality level like other things, so a
|
||||
maximal value is controlling quantization, not quality. A value of 0 is
|
||||
allowed, but negative is not.
|
||||
|
||||
Signed-off-by: Kimball Thurston <kdt3rd@gmail.com>
|
||||
|
||||
* improve tests for dwa compression level set
|
||||
|
||||
Signed-off-by: Kimball Thurston <kdt3rd@gmail.com>
|
||||
|
||||
---------
|
||||
|
||||
Signed-off-by: Kimball Thurston <kdt3rd@gmail.com>
|
||||
|
||||
diff --git a/src/lib/OpenEXRCore/part.c b/src/lib/OpenEXRCore/part.c
|
||||
index 6a51b3c7..814fd5ce 100644
|
||||
--- a/src/lib/OpenEXRCore/part.c
|
||||
+++ b/src/lib/OpenEXRCore/part.c
|
||||
@@ -609,7 +609,12 @@ exr_set_dwa_compression_level (exr_context_t ctxt, int part_index, float level)
|
||||
return EXR_UNLOCK_AND_RETURN (
|
||||
ctxt->standard_error (ctxt, EXR_ERR_NOT_OPEN_WRITE));
|
||||
|
||||
- if (level > 0.f && level <= 100.f)
|
||||
+ // avoid bad math (fp exceptions or whatever) by clamping here
|
||||
+ // there has always been a clamp to 0, but on the upper end, there
|
||||
+ // is a limit too, where you only get black images anyway, so that
|
||||
+ // is not particularly useful, not that any large value will
|
||||
+ // really be crushing the image
|
||||
+ if (level >= 0.f && level <= (65504.f*100000.f))
|
||||
{
|
||||
part->dwa_compression_level = level;
|
||||
rv = EXR_ERR_SUCCESS;
|
||||
diff --git a/src/test/OpenEXRCoreTest/write.cpp b/src/test/OpenEXRCoreTest/write.cpp
|
||||
index 7da03422..7f971c71 100644
|
||||
--- a/src/test/OpenEXRCoreTest/write.cpp
|
||||
+++ b/src/test/OpenEXRCoreTest/write.cpp
|
||||
@@ -435,10 +435,16 @@ testWriteBaseHeader (const std::string& tempdir)
|
||||
exr_set_dwa_compression_level (outf, 0, -2.f));
|
||||
EXRCORE_TEST_RVAL_FAIL (
|
||||
EXR_ERR_INVALID_ARGUMENT,
|
||||
- exr_set_dwa_compression_level (outf, 0, 420.f));
|
||||
+ exr_set_dwa_compression_level (outf, 0, INFINITY));
|
||||
+ EXRCORE_TEST_RVAL_FAIL (
|
||||
+ EXR_ERR_INVALID_ARGUMENT,
|
||||
+ exr_set_dwa_compression_level (outf, 0, NAN));
|
||||
EXRCORE_TEST_RVAL (exr_set_dwa_compression_level (outf, 0, 42.f));
|
||||
EXRCORE_TEST_RVAL (exr_get_dwa_compression_level (outf, 0, &dlev));
|
||||
EXRCORE_TEST (dlev == 42.f);
|
||||
+ EXRCORE_TEST_RVAL (exr_set_dwa_compression_level (outf, 0, 420.f));
|
||||
+ EXRCORE_TEST_RVAL (exr_get_dwa_compression_level (outf, 0, &dlev));
|
||||
+ EXRCORE_TEST (dlev == 420.f);
|
||||
|
||||
EXRCORE_TEST_RVAL (exr_finish (&outf));
|
||||
remove (outfn.c_str ());
|
||||
@@ -0,0 +1,105 @@
|
||||
diff --git a/src/include/OpenImageIO/imageio.h b/src/include/OpenImageIO/imageio.h
|
||||
index bb575880c..6a8e04cec 100644
|
||||
--- a/src/include/OpenImageIO/imageio.h
|
||||
+++ b/src/include/OpenImageIO/imageio.h
|
||||
@@ -2016,6 +2016,9 @@ public:
|
||||
/// Does this format allow 0x0 sized images, i.e. an image file
|
||||
/// with metadata only and no pixels?
|
||||
///
|
||||
+ /// - `"cicp"` :
|
||||
+ /// Does this format support embedding CICP metadata?
|
||||
+ ///
|
||||
/// This list of queries may be extended in future releases. Since this
|
||||
/// can be done simply by recognizing new query strings, and does not
|
||||
/// require any new API entry points, addition of support for new
|
||||
@@ -3224,7 +3227,6 @@ OIIO_API void set_colorspace(ImageSpec& spec, string_view name);
|
||||
/// @version 3.0
|
||||
OIIO_API void set_colorspace_rec709_gamma(ImageSpec& spec, float gamma);
|
||||
|
||||
-
|
||||
/// Are the two named color spaces equivalent, based on the default color
|
||||
/// config in effect?
|
||||
///
|
||||
diff --git a/src/png.imageio/png_pvt.h b/src/png.imageio/png_pvt.h
|
||||
index 85ac6ec74..450689a67 100644
|
||||
--- a/src/png.imageio/png_pvt.h
|
||||
+++ b/src/png.imageio/png_pvt.h
|
||||
@@ -40,7 +40,7 @@ http://lists.openimageio.org/pipermail/oiio-dev-openimageio.org/2009-April/00065
|
||||
OIIO_PLUGIN_NAMESPACE_BEGIN
|
||||
|
||||
#define ICC_PROFILE_ATTR "ICCProfile"
|
||||
-
|
||||
+#define CICP_ATTR "CICP"
|
||||
|
||||
namespace PNG_pvt {
|
||||
|
||||
@@ -326,6 +326,16 @@ read_info(png_structp& sp, png_infop& ip, int& bit_depth, int& color_type,
|
||||
|
||||
interlace_type = png_get_interlace_type(sp, ip);
|
||||
|
||||
+#ifdef PNG_cICP_SUPPORTED
|
||||
+ {
|
||||
+ png_byte pri = 0, trc = 0, mtx = 0, vfr = 0;
|
||||
+ if (png_get_cICP(sp, ip, &pri, &trc, &mtx, &vfr)) {
|
||||
+ int cicp[4] = { pri, trc, mtx, vfr };
|
||||
+ spec.attribute(CICP_ATTR, TypeDesc(TypeDesc::INT, 4), cicp);
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
#ifdef PNG_eXIf_SUPPORTED
|
||||
// Recent version of PNG and libpng (>= 1.6.32, I think) have direct
|
||||
// support for Exif chunks. Older versions don't support it, and I'm not
|
||||
@@ -698,6 +708,21 @@ write_info(png_structp& sp, png_infop& ip, int& color_type, ImageSpec& spec,
|
||||
(png_uint_32)(yres * scale), unittype);
|
||||
}
|
||||
|
||||
+#ifdef PNG_cICP_SUPPORTED
|
||||
+ const ParamValue* p = spec.find_attribute(CICP_ATTR,
|
||||
+ TypeDesc(TypeDesc::INT, 4));
|
||||
+ if (p) {
|
||||
+ const int* int_vals = static_cast<const int*>(p->data());
|
||||
+ png_byte vals[4];
|
||||
+ for (int i = 0; i < 4; ++i)
|
||||
+ vals[i] = static_cast<png_byte>(int_vals[i]);
|
||||
+ if (setjmp(png_jmpbuf(sp))) // NOLINT(cert-err52-cpp)
|
||||
+ return "Could not set PNG cICP chunk";
|
||||
+ // libpng will only write the chunk if the third byte is 0
|
||||
+ png_set_cICP(sp, ip, vals[0], vals[1], (png_byte)0, vals[3]);
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
#ifdef PNG_eXIf_SUPPORTED
|
||||
std::vector<char> exifBlob;
|
||||
encode_exif(spec, exifBlob, endian::big);
|
||||
diff --git a/src/png.imageio/pnginput.cpp b/src/png.imageio/pnginput.cpp
|
||||
index 4947b3b6a..085448e24 100644
|
||||
--- a/src/png.imageio/pnginput.cpp
|
||||
+++ b/src/png.imageio/pnginput.cpp
|
||||
@@ -18,7 +18,11 @@ public:
|
||||
const char* format_name(void) const override { return "png"; }
|
||||
int supports(string_view feature) const override
|
||||
{
|
||||
- return (feature == "ioproxy" || feature == "exif");
|
||||
+ return (feature == "ioproxy" || feature == "exif"
|
||||
+#ifdef PNG_cICP_SUPPORTED
|
||||
+ || feature == "cicp"
|
||||
+#endif
|
||||
+ );
|
||||
}
|
||||
bool valid_file(Filesystem::IOProxy* ioproxy) const override;
|
||||
bool open(const std::string& name, ImageSpec& newspec) override;
|
||||
diff --git a/src/png.imageio/pngoutput.cpp b/src/png.imageio/pngoutput.cpp
|
||||
index 1b5c2c385..00e11947c 100644
|
||||
--- a/src/png.imageio/pngoutput.cpp
|
||||
+++ b/src/png.imageio/pngoutput.cpp
|
||||
@@ -24,6 +24,9 @@ public:
|
||||
return (feature == "alpha" || feature == "ioproxy"
|
||||
#ifdef PNG_eXIf_SUPPORTED
|
||||
|| feature == "exif"
|
||||
+#endif
|
||||
+#ifdef PNG_cICP_SUPPORTED
|
||||
+ || feature == "cicp"
|
||||
#endif
|
||||
);
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/src/lib/openjp2/ht_dec.c b/src/lib/openjp2/ht_dec.c
|
||||
index 1eb4d525..e2f3afd6 100644
|
||||
--- a/src/lib/openjp2/ht_dec.c
|
||||
+++ b/src/lib/openjp2/ht_dec.c
|
||||
@@ -69,7 +69,7 @@ static OPJ_BOOL only_cleanup_pass_is_decoded = OPJ_FALSE;
|
||||
static INLINE
|
||||
OPJ_UINT32 population_count(OPJ_UINT32 val)
|
||||
{
|
||||
-#ifdef OPJ_COMPILER_MSVC
|
||||
+#if defined(OPJ_COMPILER_MSVC) && (defined(_M_IX86) || defined(_M_AMD64))
|
||||
return (OPJ_UINT32)__popcnt(val);
|
||||
#elif (defined OPJ_COMPILER_GNUC)
|
||||
return (OPJ_UINT32)__builtin_popcount(val);
|
||||
@@ -35,10 +35,10 @@ index 6d0e10d..3c1f60e 100644
|
||||
+# we are patching this dirirectly for Blender.
|
||||
\ No newline at end of file
|
||||
diff --git a/source/adapters/level_zero/CMakeLists.txt b/source/adapters/level_zero/CMakeLists.txt
|
||||
index cb7e028..d3241fa 100644
|
||||
index 5bb5cf6..b457adf 100644
|
||||
--- a/source/adapters/level_zero/CMakeLists.txt
|
||||
+++ b/source/adapters/level_zero/CMakeLists.txt
|
||||
@@ -59,7 +59,7 @@ if(UR_BUILD_ADAPTER_L0)
|
||||
@@ -58,7 +58,7 @@ if(UR_BUILD_ADAPTER_L0)
|
||||
# 'utils' target from 'level-zero-loader' includes path which is prefixed
|
||||
# in the source directory, this breaks the installation of 'utils' target.
|
||||
set_target_properties(utils PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "")
|
||||
@@ -47,7 +47,7 @@ index cb7e028..d3241fa 100644
|
||||
EXPORT ${PROJECT_NAME}-targets
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
@@ -110,7 +110,6 @@ if(UR_BUILD_ADAPTER_L0)
|
||||
@@ -109,7 +109,6 @@ if(UR_BUILD_ADAPTER_L0)
|
||||
${PROJECT_NAME}::umf
|
||||
LevelZeroLoader
|
||||
LevelZeroLoader-Headers
|
||||
@@ -55,7 +55,7 @@ index cb7e028..d3241fa 100644
|
||||
)
|
||||
|
||||
target_include_directories(ur_adapter_level_zero PRIVATE
|
||||
@@ -206,7 +205,6 @@ if(UR_BUILD_ADAPTER_L0_V2)
|
||||
@@ -211,7 +210,6 @@ if(UR_BUILD_ADAPTER_L0_V2)
|
||||
${PROJECT_NAME}::umf
|
||||
LevelZeroLoader
|
||||
LevelZeroLoader-Headers
|
||||
@@ -87,15 +87,3 @@ index fb4c519..615b588 100644
|
||||
#include <ur/ur.hpp>
|
||||
#include <ur_ddi.h>
|
||||
#include <ze_api.h>
|
||||
diff --git a/source/adapters/level_zero/image.cpp b/source/adapters/level_zero/image.cpp
|
||||
index 8c205f5..217a185 100644
|
||||
--- a/source/adapters/level_zero/image.cpp
|
||||
+++ b/source/adapters/level_zero/image.cpp
|
||||
@@ -517,6 +517,7 @@ ur_result_t bindlessImagesCreateImpl(ur_context_handle_t hContext,
|
||||
ZE2UR_CALL(zeContextMakeImageResident,
|
||||
(hContext->ZeContext, hDevice->ZeDevice, ZeImage));
|
||||
} else if (MemAllocProperties.type == ZE_MEMORY_TYPE_DEVICE ||
|
||||
+ MemAllocProperties.type == ZE_MEMORY_TYPE_HOST ||
|
||||
MemAllocProperties.type == ZE_MEMORY_TYPE_SHARED) {
|
||||
ZeStruct<ze_image_pitched_exp_desc_t> PitchedDesc;
|
||||
PitchedDesc.ptr = reinterpret_cast<void *>(hImageMem);
|
||||
|
||||
@@ -1,21 +1,8 @@
|
||||
diff --git a/cmake/defaults/Packages.cmake b/cmake/defaults/Packages.cmake
|
||||
index 2bb1f30d0..adcc7422e 100644
|
||||
--- a/cmake/defaults/Packages.cmake
|
||||
+++ b/cmake/defaults/Packages.cmake
|
||||
@@ -152,7 +152,7 @@ endif()
|
||||
|
||||
|
||||
# --TBB
|
||||
-find_package(TBB REQUIRED COMPONENTS tbb)
|
||||
+find_package(TBB)
|
||||
add_definitions(${TBB_DEFINITIONS})
|
||||
|
||||
# --math
|
||||
diff --git a/cmake/defaults/msvcdefaults.cmake b/cmake/defaults/msvcdefaults.cmake
|
||||
index 0f7fb7ef6..a467341ed 100644
|
||||
index f5780c0db..9b5d5c68c 100644
|
||||
--- a/cmake/defaults/msvcdefaults.cmake
|
||||
+++ b/cmake/defaults/msvcdefaults.cmake
|
||||
@@ -140,9 +140,6 @@ _add_define("WIN32_LEAN_AND_MEAN")
|
||||
@@ -126,9 +126,6 @@ _add_define("WIN32_LEAN_AND_MEAN")
|
||||
# for all translation units.
|
||||
set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /bigobj")
|
||||
|
||||
@@ -25,49 +12,11 @@ index 0f7fb7ef6..a467341ed 100644
|
||||
# Enable multiprocessor builds.
|
||||
set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /MP")
|
||||
set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /Gm-")
|
||||
diff --git a/pxr/base/arch/defines.h b/pxr/base/arch/defines.h
|
||||
index cb6ad44c5..c6c1a604b 100644
|
||||
--- a/pxr/base/arch/defines.h
|
||||
+++ b/pxr/base/arch/defines.h
|
||||
@@ -49,7 +49,8 @@
|
||||
#if defined(i386) || defined(__i386__) || defined(__x86_64__) || \
|
||||
defined(_M_IX86) || defined(_M_X64)
|
||||
#define ARCH_CPU_INTEL
|
||||
-#elif defined(__arm__) || defined(__aarch64__) || defined(_M_ARM)
|
||||
+#elif defined(__arm__) || defined(__aarch64__) || defined(_M_ARM) || \
|
||||
+ defined(_M_ARM64)
|
||||
#define ARCH_CPU_ARM
|
||||
#endif
|
||||
|
||||
@@ -57,7 +58,8 @@
|
||||
// Bits
|
||||
//
|
||||
|
||||
-#if defined(__x86_64__) || defined(__aarch64__) || defined(_M_X64)
|
||||
+#if defined(__x86_64__) || defined(__aarch64__) || defined(_M_X64) || \
|
||||
+ defined(_M_ARM64)
|
||||
#define ARCH_BITS_64
|
||||
#else
|
||||
#error "Unsupported architecture. x86_64 or ARM64 required."
|
||||
diff --git a/pxr/base/arch/timing.h b/pxr/base/arch/timing.h
|
||||
index d78598a84..2f44a5f89 100644
|
||||
index 2907195c0..7f8c6097c 100644
|
||||
--- a/pxr/base/arch/timing.h
|
||||
+++ b/pxr/base/arch/timing.h
|
||||
@@ -69,7 +69,13 @@ ArchGetTickTime()
|
||||
return __rdtsc();
|
||||
#elif defined (ARCH_CPU_ARM)
|
||||
uint64_t result;
|
||||
+ #if defined(ARCH_COMPILER_MSVC)
|
||||
+ // MSVC does not support inline assembly on ARM64 platforms
|
||||
+ // 0x5F02 == ARM64_CNTVCT - manually calculated value avoids <windows.h>
|
||||
+ result = _ReadStatusReg(0x5F02);
|
||||
+ #else
|
||||
__asm __volatile("mrs %0, CNTVCT_EL0" : "=&r" (result));
|
||||
+ #endif
|
||||
return result;
|
||||
#else
|
||||
#error Unknown architecture.
|
||||
@@ -84,6 +90,10 @@ ArchGetTickTime()
|
||||
@@ -77,6 +77,10 @@ ArchGetTickTime()
|
||||
inline uint64_t
|
||||
ArchGetStartTickTime()
|
||||
{
|
||||
@@ -76,9 +25,9 @@ index d78598a84..2f44a5f89 100644
|
||||
+
|
||||
+#if 0
|
||||
uint64_t t;
|
||||
#if defined (ARCH_OS_DARWIN)
|
||||
return ArchGetTickTime();
|
||||
@@ -116,6 +126,7 @@ ArchGetStartTickTime()
|
||||
#if defined (ARCH_OS_DARWIN) || defined(ARCH_OS_WASM_VM) || \
|
||||
(defined (ARCH_CPU_ARM) && defined (ARCH_COMPILER_MSVC))
|
||||
@@ -110,6 +114,7 @@ ArchGetStartTickTime()
|
||||
#error "Unsupported architecture."
|
||||
#endif
|
||||
return t;
|
||||
@@ -86,7 +35,7 @@ index d78598a84..2f44a5f89 100644
|
||||
}
|
||||
|
||||
/// Get a "stop" tick time for measuring an interval of time. See
|
||||
@@ -125,6 +136,10 @@ ArchGetStartTickTime()
|
||||
@@ -119,6 +124,10 @@ ArchGetStartTickTime()
|
||||
inline uint64_t
|
||||
ArchGetStopTickTime()
|
||||
{
|
||||
@@ -95,9 +44,9 @@ index d78598a84..2f44a5f89 100644
|
||||
+
|
||||
+#if 0
|
||||
uint64_t t;
|
||||
#if defined (ARCH_OS_DARWIN)
|
||||
return ArchGetTickTime();
|
||||
@@ -155,11 +170,11 @@ ArchGetStopTickTime()
|
||||
#if defined (ARCH_OS_DARWIN) || defined(ARCH_OS_WASM_VM) || \
|
||||
(defined (ARCH_CPU_ARM) && defined (ARCH_COMPILER_MSVC))
|
||||
@@ -150,11 +159,11 @@ ArchGetStopTickTime()
|
||||
#error "Unsupported architecture."
|
||||
#endif
|
||||
return t;
|
||||
@@ -113,7 +62,7 @@ index d78598a84..2f44a5f89 100644
|
||||
/// A simple timer class for measuring an interval of time using the
|
||||
/// ArchTickTimer facilities.
|
||||
diff --git a/pxr/imaging/hioOpenVDB/CMakeLists.txt b/pxr/imaging/hioOpenVDB/CMakeLists.txt
|
||||
index e32762cea..d2c08d3da 100644
|
||||
index c94b63c5a..b3bcae4eb 100644
|
||||
--- a/pxr/imaging/hioOpenVDB/CMakeLists.txt
|
||||
+++ b/pxr/imaging/hioOpenVDB/CMakeLists.txt
|
||||
@@ -20,6 +20,12 @@ else()
|
||||
@@ -143,10 +92,10 @@ index 53c026689..e99a5ac17 100644
|
||||
)
|
||||
|
||||
diff --git a/cmake/macros/Private.cmake b/cmake/macros/Private.cmake
|
||||
index f0bc34ed8..c39db4bc4 100644
|
||||
index 6fe1134c1..1d6586fff 100644
|
||||
--- a/cmake/macros/Private.cmake
|
||||
+++ b/cmake/macros/Private.cmake
|
||||
@@ -979,7 +979,7 @@ function(_pxr_python_module NAME)
|
||||
@@ -992,7 +992,7 @@ function(_pxr_python_module NAME)
|
||||
return()
|
||||
endif()
|
||||
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
diff --git a/pxr/usd/usdMtlx/reader.cpp b/pxr/usd/usdMtlx/reader.cpp
|
||||
index f04ab07ac1..aa4d1e65de 100644
|
||||
--- a/pxr/usd/usdMtlx/reader.cpp
|
||||
+++ b/pxr/usd/usdMtlx/reader.cpp
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "pxr/usd/usdMtlx/reader.h"
|
||||
#include "pxr/usd/usdMtlx/utils.h"
|
||||
|
||||
+#include "pxr/usd/usdGeom/metrics.h"
|
||||
#include "pxr/usd/usdGeom/primvar.h"
|
||||
#include "pxr/usd/usdGeom/primvarsAPI.h"
|
||||
#include "pxr/usd/usdShade/material.h"
|
||||
@@ -740,11 +741,11 @@ _NodeGraphBuilder::Build(ShaderNamesByOutputName* outputs)
|
||||
return UsdPrim();
|
||||
}
|
||||
|
||||
- const bool isInsideNodeGraph = _mtlxContainer->isA<mx::NodeGraph>();
|
||||
+ const bool isExplicitNodeGraph = _mtlxContainer->isA<mx::NodeGraph>();
|
||||
|
||||
// Create the USD nodegraph.
|
||||
UsdPrim usdPrim;
|
||||
- if (isInsideNodeGraph) {
|
||||
+ if (isExplicitNodeGraph) {
|
||||
// Create the nodegraph.
|
||||
auto usdNodeGraph = UsdShadeNodeGraph::Define(_usdStage, _usdPath);
|
||||
if (!usdNodeGraph) {
|
||||
@@ -769,7 +770,7 @@ _NodeGraphBuilder::Build(ShaderNamesByOutputName* outputs)
|
||||
}
|
||||
}
|
||||
else {
|
||||
- usdPrim = _usdStage->DefinePrim(_usdPath);
|
||||
+ usdPrim = UsdShadeNodeGraph::Define(_usdStage, _usdPath).GetPrim();
|
||||
}
|
||||
|
||||
// Build the graph of nodes.
|
||||
@@ -783,19 +784,7 @@ _NodeGraphBuilder::Build(ShaderNamesByOutputName* outputs)
|
||||
_AddNode(mtlxNode, usdPrim);
|
||||
}
|
||||
_ConnectNodes();
|
||||
-
|
||||
- if (isInsideNodeGraph) {
|
||||
- _ConnectTerminals(_mtlxContainer, UsdShadeConnectableAPI(usdPrim));
|
||||
- }
|
||||
- else if (outputs) {
|
||||
- // Collect the outputs on the existing shader nodes.
|
||||
- for (mx::OutputPtr& mtlxOutput :
|
||||
- _mtlxContainer->getChildrenOfType<mx::Output>()) {
|
||||
- if (auto nodeName = _Attr(mtlxOutput, names.nodename)) {
|
||||
- (*outputs)[_Name(mtlxOutput)] = TfToken(nodeName);
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
+ _ConnectTerminals(_mtlxContainer, UsdShadeConnectableAPI(usdPrim));
|
||||
|
||||
return usdPrim;
|
||||
}
|
||||
@@ -2623,6 +2612,13 @@ UsdMtlxRead(
|
||||
// Translate all materials.
|
||||
ReadMaterials(mtlxDoc, context);
|
||||
|
||||
+ if (!mtlxDoc->getChildren().empty()) {
|
||||
+ // This metadata is required to pass usdchecker
|
||||
+ UsdGeomSetStageUpAxis(stage, UsdGeomGetFallbackUpAxis());
|
||||
+ UsdGeomSetStageMetersPerUnit(stage, UsdGeomLinearUnits::centimeters);
|
||||
+ stage->SetDefaultPrim(stage->GetPrimAtPath(internalPath));
|
||||
+ }
|
||||
+
|
||||
// If there are no looks then we're done.
|
||||
if (mtlxDoc->getLooks().empty()) {
|
||||
return;
|
||||
@@ -1,70 +0,0 @@
|
||||
commit 84c1a9f8e5a8c413dea56852894541f0cc28193b
|
||||
Author: Brecht Van Lommel <brecht@blender.org>
|
||||
Date: Tue Feb 4 23:33:50 2025 +0100
|
||||
|
||||
Fix Metal shader errors with MaterialX 1.39
|
||||
|
||||
* mx_microfacet.glsl uses functions from mx_math.metal, so the
|
||||
latter must be included first.
|
||||
* Defining atan(y, x) for GLSL compatibility conflicts with
|
||||
mx_math.metal using ::atan(y_over_x). Work around this by tweaking
|
||||
the definition.
|
||||
* textureQueryLevels(u_envRadiance) does not take into account that
|
||||
this texture is wrapped in a MetalTexture class.
|
||||
|
||||
Signed-off-by: Brecht Van Lommel <brecht@blender.org>
|
||||
|
||||
diff --git a/pxr/imaging/hdSt/materialXShaderGen.cpp b/pxr/imaging/hdSt/materialXShaderGen.cpp
|
||||
index 58687a760..8345b6fb2 100644
|
||||
--- a/pxr/imaging/hdSt/materialXShaderGen.cpp
|
||||
+++ b/pxr/imaging/hdSt/materialXShaderGen.cpp
|
||||
@@ -447,8 +447,17 @@ HdStMaterialXShaderGen<Base>::_EmitMxInitFunction(
|
||||
emitLine("u_envIrradiance = HdGetSampler_domeLightFallback()", mxStage);
|
||||
emitLine("u_envRadiance = HdGetSampler_domeLightFallback()", mxStage);
|
||||
emitLine("#endif", mxStage, false);
|
||||
+ emitLine("u_envRadianceMips = textureQueryLevels(u_envRadiance)", mxStage);
|
||||
+ }
|
||||
+ else {
|
||||
+ if (std::is_same_v<Base, MaterialX::MslShaderGenerator>) {
|
||||
+ // Msl has this wrapped in a MetalTexture class
|
||||
+ emitLine("u_envRadianceMips = textureQueryLevels(u_envRadiance.tex)", mxStage);
|
||||
+ }
|
||||
+ else {
|
||||
+ emitLine("u_envRadianceMips = textureQueryLevels(u_envRadiance)", mxStage);
|
||||
+ }
|
||||
}
|
||||
- emitLine("u_envRadianceMips = textureQueryLevels(u_envRadiance)", mxStage);
|
||||
Base::emitLineBreak(mxStage);
|
||||
|
||||
// Initialize MaterialX Texture samplers with HdGetSampler equivalents
|
||||
@@ -1309,12 +1318,12 @@ HdStMaterialXShaderGenMsl::_EmitMxFunctions(
|
||||
mx::GenContext& mxContext,
|
||||
mx::ShaderStage& mxStage) const
|
||||
{
|
||||
- mx::ShaderGenerator::emitLibraryInclude(
|
||||
- "pbrlib/" + mx::GlslShaderGenerator::TARGET
|
||||
- + "/lib/mx_microfacet.glsl", mxContext, mxStage);
|
||||
mx::ShaderGenerator::emitLibraryInclude(
|
||||
"stdlib/" + mx::MslShaderGenerator::TARGET
|
||||
+ "/lib/mx_math.metal", mxContext, mxStage);
|
||||
+ mx::ShaderGenerator::emitLibraryInclude(
|
||||
+ "pbrlib/" + mx::GlslShaderGenerator::TARGET
|
||||
+ + "/lib/mx_microfacet.glsl", mxContext, mxStage);
|
||||
_EmitConstantsUniformsAndTypeDefs(
|
||||
mxContext, mxStage,_syntax->getConstantQualifier());
|
||||
|
||||
diff --git a/pxr/imaging/hgiMetal/shaderGenerator.mm b/pxr/imaging/hgiMetal/shaderGenerator.mm
|
||||
index f1db1beb1..6ace76999 100644
|
||||
--- a/pxr/imaging/hgiMetal/shaderGenerator.mm
|
||||
+++ b/pxr/imaging/hgiMetal/shaderGenerator.mm
|
||||
@@ -515,7 +515,9 @@ _ComputeHeader(id<MTLDevice> device, HgiShaderStage stage)
|
||||
"template <typename T>\n"
|
||||
"T mod(T y, T x) { return fmod(y, x); }\n\n"
|
||||
"template <typename T>\n"
|
||||
- "T atan(T y, T x) { return atan2(y, x); }\n\n"
|
||||
+ "T atan(T y_over_x) { return ::atan(y_over_x); }\n\n"
|
||||
+ "template <typename T>\n"
|
||||
+ "T atan(T y, T x) { return ::atan2(y, x); }\n\n"
|
||||
"template <typename T>\n"
|
||||
"T bitfieldReverse(T x) { return reverse_bits(x); }\n\n"
|
||||
"template <typename T>\n"
|
||||
@@ -1,19 +0,0 @@
|
||||
diff --git a/pxr/imaging/hgiVulkan/computeCmds.cpp b/pxr/imaging/hgiVulkan/computeCmds.cpp
|
||||
index cbf9704fd..74a81c787 100644
|
||||
--- a/pxr/imaging/hgiVulkan/computeCmds.cpp
|
||||
+++ b/pxr/imaging/hgiVulkan/computeCmds.cpp
|
||||
@@ -119,10 +119,11 @@ HgiVulkanComputeCmds::Dispatch(int dimX, int dimY)
|
||||
// Determine device's num compute work group limits
|
||||
const VkPhysicalDeviceLimits limits =
|
||||
_hgi->GetCapabilities()->vkDeviceProperties.limits;
|
||||
+ const uint32_t maxAllowedLimit = (1 << 31) - 1;
|
||||
const GfVec3i maxNumWorkGroups = GfVec3i(
|
||||
- limits.maxComputeWorkGroupCount[0],
|
||||
- limits.maxComputeWorkGroupCount[1],
|
||||
- limits.maxComputeWorkGroupCount[2]);
|
||||
+ std::min<uint32_t>(maxAllowedLimit, limits.maxComputeWorkGroupCount[0]),
|
||||
+ std::min<uint32_t>(maxAllowedLimit, limits.maxComputeWorkGroupCount[1]),
|
||||
+ std::min<uint32_t>(maxAllowedLimit, limits.maxComputeWorkGroupCount[2]));
|
||||
|
||||
if (numWorkGroupsX > maxNumWorkGroups[0]) {
|
||||
TF_WARN("Max number of work group available from device is %i, larger "
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/pxr/imaging/hdSt/indirectDrawBatch.cpp b/pxr/imaging/hdSt/indirectDrawBatch.cpp
|
||||
index cdf400222f..e780d7343b 100644
|
||||
index 2b88b2f0f..0b036ffa2 100644
|
||||
--- a/pxr/imaging/hdSt/indirectDrawBatch.cpp
|
||||
+++ b/pxr/imaging/hdSt/indirectDrawBatch.cpp
|
||||
@@ -111,11 +111,17 @@ HdSt_IndirectDrawBatch::HdSt_IndirectDrawBatch(
|
||||
@@ -94,11 +94,17 @@ HdSt_IndirectDrawBatch::HdSt_IndirectDrawBatch(
|
||||
, _instanceCountOffset(0)
|
||||
, _cullInstanceCountOffset(0)
|
||||
, _needsTextureResourceRebinding(false)
|
||||
@@ -21,7 +21,7 @@ index cdf400222f..e780d7343b 100644
|
||||
|
||||
/*virtual*/
|
||||
void
|
||||
@@ -1199,6 +1205,14 @@ HdSt_IndirectDrawBatch::_ExecuteDraw(
|
||||
@@ -1182,6 +1188,14 @@ HdSt_IndirectDrawBatch::_ExecuteDraw(
|
||||
state.instancePrimvarBars);
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ index cdf400222f..e780d7343b 100644
|
||||
state.BindResourcesForDrawing(renderPassState, *capabilities);
|
||||
|
||||
HdSt_GeometricShaderSharedPtr geometricShader = state.geometricShader;
|
||||
@@ -1455,6 +1469,15 @@ HdSt_IndirectDrawBatch::_ExecuteFrustumCull(
|
||||
@@ -1438,6 +1452,15 @@ HdSt_IndirectDrawBatch::_ExecuteFrustumCull(
|
||||
cullingProgram.GetGeometricShader());
|
||||
|
||||
Hgi * hgi = resourceRegistry->GetHgi();
|
||||
@@ -53,10 +53,10 @@ index cdf400222f..e780d7343b 100644
|
||||
HgiGraphicsPipelineSharedPtr const & pso =
|
||||
_GetCullPipeline(resourceRegistry,
|
||||
diff --git a/pxr/imaging/hdSt/indirectDrawBatch.h b/pxr/imaging/hdSt/indirectDrawBatch.h
|
||||
index 13da3917b0..84f013d310 100644
|
||||
index 2b4c9dafb..aad43302a 100644
|
||||
--- a/pxr/imaging/hdSt/indirectDrawBatch.h
|
||||
+++ b/pxr/imaging/hdSt/indirectDrawBatch.h
|
||||
@@ -201,6 +201,8 @@ class HdSt_IndirectDrawBatch : public HdSt_DrawBatch
|
||||
@@ -184,6 +184,8 @@ private:
|
||||
int _cullInstanceCountOffset;
|
||||
|
||||
bool _needsTextureResourceRebinding;
|
||||
@@ -66,10 +66,10 @@ index 13da3917b0..84f013d310 100644
|
||||
|
||||
|
||||
diff --git a/pxr/imaging/hdSt/renderPassState.cpp b/pxr/imaging/hdSt/renderPassState.cpp
|
||||
index 5c4d2fac07..908a49f310 100644
|
||||
index 76c44980d..730502a22 100644
|
||||
--- a/pxr/imaging/hdSt/renderPassState.cpp
|
||||
+++ b/pxr/imaging/hdSt/renderPassState.cpp
|
||||
@@ -760,7 +760,9 @@ HdStRenderPassState::Bind(HgiCapabilities const &hgiCapabilities)
|
||||
@@ -776,7 +776,9 @@ HdStRenderPassState::Bind(HgiCapabilities const &hgiCapabilities)
|
||||
// If not using GL_MULTISAMPLE, use GL_POINT_SMOOTH to render points as
|
||||
// circles instead of square.
|
||||
// XXX Switch points rendering to emit quad with FS that draws circle.
|
||||
@@ -80,22 +80,24 @@ index 5c4d2fac07..908a49f310 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -804,7 +806,9 @@ HdStRenderPassState::Unbind(HgiCapabilities const &hgiCapabilities)
|
||||
@@ -820,8 +822,10 @@ HdStRenderPassState::Unbind(HgiCapabilities const &hgiCapabilities)
|
||||
}
|
||||
|
||||
glEnable(GL_MULTISAMPLE);
|
||||
- glDisable(GL_POINT_SMOOTH);
|
||||
- glDisable(GL_POINT_SPRITE);
|
||||
+ if (!hgiCapabilities.GetCoreProfile()) {
|
||||
+ glDisable(GL_POINT_SMOOTH);
|
||||
+ glDisable(GL_POINT_SPRITE);
|
||||
+ }
|
||||
}
|
||||
|
||||
void
|
||||
diff --git a/pxr/imaging/hgi/capabilities.h b/pxr/imaging/hgi/capabilities.h
|
||||
index ae2ecb4e5b..c86afcb387 100644
|
||||
index b53197566..605e4d7ca 100644
|
||||
--- a/pxr/imaging/hgi/capabilities.h
|
||||
+++ b/pxr/imaging/hgi/capabilities.h
|
||||
@@ -52,6 +52,11 @@ class HgiCapabilities
|
||||
@@ -35,6 +35,11 @@ public:
|
||||
HGI_API
|
||||
virtual int GetShaderVersion() const = 0;
|
||||
|
||||
@@ -108,10 +110,10 @@ index ae2ecb4e5b..c86afcb387 100644
|
||||
size_t GetMaxUniformBlockSize() const {
|
||||
return _maxUniformBlockSize;
|
||||
diff --git a/pxr/imaging/hgiGL/blitCmds.cpp b/pxr/imaging/hgiGL/blitCmds.cpp
|
||||
index ce62f41a51..20888a1109 100644
|
||||
index 46b2aa0fd..38e5fd4b1 100644
|
||||
--- a/pxr/imaging/hgiGL/blitCmds.cpp
|
||||
+++ b/pxr/imaging/hgiGL/blitCmds.cpp
|
||||
@@ -136,7 +136,7 @@ HgiGLBlitCmds::_Submit(Hgi* hgi, HgiSubmitWaitType wait)
|
||||
@@ -119,7 +119,7 @@ HgiGLBlitCmds::_Submit(Hgi* hgi, HgiSubmitWaitType wait)
|
||||
// Capture OpenGL state before executing the 'ops' and restore it when this
|
||||
// function ends. We do this defensively because parts of our pipeline may
|
||||
// not set and restore all relevant gl state.
|
||||
@@ -121,10 +123,10 @@ index ce62f41a51..20888a1109 100644
|
||||
HgiGL* hgiGL = static_cast<HgiGL*>(hgi);
|
||||
HgiGLDevice* device = hgiGL->GetPrimaryDevice();
|
||||
diff --git a/pxr/imaging/hgiGL/capabilities.cpp b/pxr/imaging/hgiGL/capabilities.cpp
|
||||
index 920f9cdff4..9941bef7b2 100644
|
||||
index eaf70a477..dfd44f5fb 100644
|
||||
--- a/pxr/imaging/hgiGL/capabilities.cpp
|
||||
+++ b/pxr/imaging/hgiGL/capabilities.cpp
|
||||
@@ -57,6 +57,7 @@ static const int _DefaultMaxClipDistances = 8;
|
||||
@@ -42,6 +42,7 @@ static const int _DefaultMaxClipDistances = 8;
|
||||
HgiGLCapabilities::HgiGLCapabilities()
|
||||
: _glVersion(0)
|
||||
, _glslVersion(_DefaultGLSLVersion)
|
||||
@@ -132,7 +134,7 @@ index 920f9cdff4..9941bef7b2 100644
|
||||
{
|
||||
_LoadCapabilities();
|
||||
}
|
||||
@@ -131,6 +132,11 @@ HgiGLCapabilities::_LoadCapabilities()
|
||||
@@ -117,6 +118,11 @@ HgiGLCapabilities::_LoadCapabilities()
|
||||
&uniformBufferOffsetAlignment);
|
||||
_uniformBufferOffsetAlignment = uniformBufferOffsetAlignment;
|
||||
}
|
||||
@@ -144,7 +146,7 @@ index 920f9cdff4..9941bef7b2 100644
|
||||
if (_glVersion >= 430) {
|
||||
GLint maxShaderStorageBlockSize = 0;
|
||||
glGetIntegerv(GL_MAX_SHADER_STORAGE_BLOCK_SIZE,
|
||||
@@ -259,4 +265,9 @@ HgiGLCapabilities::GetShaderVersion() const {
|
||||
@@ -250,4 +256,9 @@ HgiGLCapabilities::GetShaderVersion() const {
|
||||
return _glslVersion;
|
||||
}
|
||||
|
||||
@@ -155,10 +157,10 @@ index 920f9cdff4..9941bef7b2 100644
|
||||
+
|
||||
PXR_NAMESPACE_CLOSE_SCOPE
|
||||
diff --git a/pxr/imaging/hgiGL/capabilities.h b/pxr/imaging/hgiGL/capabilities.h
|
||||
index 3c8f026426..2f25b44936 100644
|
||||
index 2ba137e95..64821ad27 100644
|
||||
--- a/pxr/imaging/hgiGL/capabilities.h
|
||||
+++ b/pxr/imaging/hgiGL/capabilities.h
|
||||
@@ -52,6 +52,9 @@ class HgiGLCapabilities final : public HgiCapabilities
|
||||
@@ -35,6 +35,9 @@ public:
|
||||
HGIGL_API
|
||||
int GetShaderVersion() const override;
|
||||
|
||||
@@ -168,7 +170,7 @@ index 3c8f026426..2f25b44936 100644
|
||||
private:
|
||||
void _LoadCapabilities();
|
||||
|
||||
@@ -60,6 +63,9 @@ class HgiGLCapabilities final : public HgiCapabilities
|
||||
@@ -43,6 +46,9 @@ private:
|
||||
|
||||
// GLSL version
|
||||
int _glslVersion; // 400, 410, ...
|
||||
@@ -179,10 +181,10 @@ index 3c8f026426..2f25b44936 100644
|
||||
|
||||
PXR_NAMESPACE_CLOSE_SCOPE
|
||||
diff --git a/pxr/imaging/hgiGL/graphicsCmds.cpp b/pxr/imaging/hgiGL/graphicsCmds.cpp
|
||||
index 5e174165d7..e59ae3502f 100644
|
||||
index c22f2d75e..f6b724bb5 100644
|
||||
--- a/pxr/imaging/hgiGL/graphicsCmds.cpp
|
||||
+++ b/pxr/imaging/hgiGL/graphicsCmds.cpp
|
||||
@@ -249,7 +249,7 @@ HgiGLGraphicsCmds::_Submit(Hgi* hgi, HgiSubmitWaitType wait)
|
||||
@@ -232,7 +232,7 @@ HgiGLGraphicsCmds::_Submit(Hgi* hgi, HgiSubmitWaitType wait)
|
||||
// Capture OpenGL state before executing the 'ops' and restore it when this
|
||||
// function ends. We do this defensively because parts of our pipeline may
|
||||
// not set and restore all relevant gl state.
|
||||
@@ -192,10 +194,10 @@ index 5e174165d7..e59ae3502f 100644
|
||||
// Resolve multisample textures
|
||||
HgiGL* hgiGL = static_cast<HgiGL*>(hgi);
|
||||
diff --git a/pxr/imaging/hgiGL/graphicsPipeline.cpp b/pxr/imaging/hgiGL/graphicsPipeline.cpp
|
||||
index 6983dd11e9..a1c7af754e 100644
|
||||
index 9704c6e11..6d864f398 100644
|
||||
--- a/pxr/imaging/hgiGL/graphicsPipeline.cpp
|
||||
+++ b/pxr/imaging/hgiGL/graphicsPipeline.cpp
|
||||
@@ -42,7 +42,12 @@ HgiGLGraphicsPipeline::HgiGLGraphicsPipeline(
|
||||
@@ -25,7 +25,12 @@ HgiGLGraphicsPipeline::HgiGLGraphicsPipeline(
|
||||
{
|
||||
}
|
||||
|
||||
@@ -209,7 +211,7 @@ index 6983dd11e9..a1c7af754e 100644
|
||||
|
||||
void
|
||||
HgiGLGraphicsPipeline::BindPipeline()
|
||||
@@ -50,6 +55,7 @@ HgiGLGraphicsPipeline::BindPipeline()
|
||||
@@ -33,6 +38,7 @@ HgiGLGraphicsPipeline::BindPipeline()
|
||||
if (_vao) {
|
||||
glBindVertexArray(0);
|
||||
glDeleteVertexArrays(1, &_vao);
|
||||
@@ -217,7 +219,7 @@ index 6983dd11e9..a1c7af754e 100644
|
||||
}
|
||||
|
||||
if (!_descriptor.vertexBuffers.empty()) {
|
||||
@@ -108,6 +114,8 @@ HgiGLGraphicsPipeline::BindPipeline()
|
||||
@@ -91,6 +97,8 @@ HgiGLGraphicsPipeline::BindPipeline()
|
||||
glBindVertexArray(_vao);
|
||||
}
|
||||
|
||||
@@ -226,7 +228,7 @@ index 6983dd11e9..a1c7af754e 100644
|
||||
//
|
||||
// Depth Stencil State
|
||||
//
|
||||
@@ -172,7 +180,9 @@ HgiGLGraphicsPipeline::BindPipeline()
|
||||
@@ -160,7 +168,9 @@ HgiGLGraphicsPipeline::BindPipeline()
|
||||
// If not using GL_MULTISAMPLE, use GL_POINT_SMOOTH to render points as
|
||||
// circles instead of square.
|
||||
// XXX Switch points rendering to emit quad with FS that draws circle.
|
||||
@@ -237,7 +239,7 @@ index 6983dd11e9..a1c7af754e 100644
|
||||
}
|
||||
if (_descriptor.multiSampleState.alphaToCoverageEnable) {
|
||||
glEnable(GL_SAMPLE_ALPHA_TO_COVERAGE);
|
||||
@@ -207,7 +217,7 @@ HgiGLGraphicsPipeline::BindPipeline()
|
||||
@@ -195,7 +205,7 @@ HgiGLGraphicsPipeline::BindPipeline()
|
||||
glFrontFace(GL_CCW);
|
||||
}
|
||||
|
||||
@@ -247,10 +249,10 @@ index 6983dd11e9..a1c7af754e 100644
|
||||
}
|
||||
|
||||
diff --git a/pxr/imaging/hgiGL/scopedStateHolder.cpp b/pxr/imaging/hgiGL/scopedStateHolder.cpp
|
||||
index 89cd0ac224..5c6575330b 100644
|
||||
index 28e31b12e..737a75dad 100644
|
||||
--- a/pxr/imaging/hgiGL/scopedStateHolder.cpp
|
||||
+++ b/pxr/imaging/hgiGL/scopedStateHolder.cpp
|
||||
@@ -26,6 +26,7 @@
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "pxr/imaging/hgiGL/scopedStateHolder.h"
|
||||
#include "pxr/imaging/hgiGL/conversions.h"
|
||||
#include "pxr/imaging/hgiGL/diagnostic.h"
|
||||
@@ -258,7 +260,7 @@ index 89cd0ac224..5c6575330b 100644
|
||||
|
||||
#include "pxr/base/trace/trace.h"
|
||||
#include "pxr/base/tf/diagnostic.h"
|
||||
@@ -33,8 +34,10 @@
|
||||
@@ -16,8 +17,10 @@
|
||||
|
||||
PXR_NAMESPACE_OPEN_SCOPE
|
||||
|
||||
@@ -271,7 +273,7 @@ index 89cd0ac224..5c6575330b 100644
|
||||
, _restoreVao(0)
|
||||
, _restoreDepthTest(false)
|
||||
, _restoreDepthWriteMask(false)
|
||||
@@ -115,7 +118,9 @@ HgiGL_ScopedStateHolder::HgiGL_ScopedStateHolder()
|
||||
@@ -101,7 +104,9 @@ HgiGL_ScopedStateHolder::HgiGL_ScopedStateHolder()
|
||||
glGetBooleanv(
|
||||
GL_SAMPLE_ALPHA_TO_ONE,
|
||||
(GLboolean*)&_restoreSampleAlphaToOne);
|
||||
@@ -282,18 +284,20 @@ index 89cd0ac224..5c6575330b 100644
|
||||
glGetBooleanv(GL_CULL_FACE, (GLboolean*)&_cullFace);
|
||||
glGetIntegerv(GL_CULL_FACE_MODE, &_cullMode);
|
||||
glGetIntegerv(GL_FRONT_FACE, &_frontFace);
|
||||
@@ -139,7 +144,9 @@ HgiGL_ScopedStateHolder::HgiGL_ScopedStateHolder()
|
||||
@@ -125,8 +130,10 @@ HgiGL_ScopedStateHolder::HgiGL_ScopedStateHolder()
|
||||
}
|
||||
|
||||
glGetBooleanv(GL_MULTISAMPLE, (GLboolean*)&_restoreMultiSample);
|
||||
- glGetBooleanv(GL_POINT_SMOOTH, (GLboolean*)&_restorePointSmooth);
|
||||
- glGetBooleanv(GL_POINT_SPRITE, (GLboolean*)&_restorePointSprite);
|
||||
+ if (!_coreProfile) {
|
||||
+ glGetBooleanv(GL_POINT_SMOOTH, (GLboolean*)&_restorePointSmooth);
|
||||
+ glGetBooleanv(GL_POINT_SPRITE, (GLboolean*)&_restorePointSprite);
|
||||
+ }
|
||||
|
||||
HGIGL_POST_PENDING_GL_ERRORS();
|
||||
#if defined(GL_KHR_debug)
|
||||
@@ -235,7 +242,9 @@ HgiGL_ScopedStateHolder::~HgiGL_ScopedStateHolder()
|
||||
glGetIntegerv(GL_UNPACK_ALIGNMENT, &_restoreUnpackAlignment);
|
||||
glGetIntegerv(GL_PACK_ALIGNMENT, &_restorePackAlignment);
|
||||
@@ -225,7 +232,9 @@ HgiGL_ScopedStateHolder::~HgiGL_ScopedStateHolder()
|
||||
_restoreViewport[2], _restoreViewport[3]);
|
||||
glBindVertexArray(_restoreVao);
|
||||
glBindRenderbuffer(GL_RENDERBUFFER, _restoreRenderBuffer);
|
||||
@@ -304,7 +308,7 @@ index 89cd0ac224..5c6575330b 100644
|
||||
if (_cullFace) {
|
||||
glEnable(GL_CULL_FACE);
|
||||
} else {
|
||||
@@ -285,10 +294,12 @@ HgiGL_ScopedStateHolder::~HgiGL_ScopedStateHolder()
|
||||
@@ -275,10 +284,12 @@ HgiGL_ScopedStateHolder::~HgiGL_ScopedStateHolder()
|
||||
glDisable(GL_MULTISAMPLE);
|
||||
}
|
||||
|
||||
@@ -320,12 +324,12 @@ index 89cd0ac224..5c6575330b 100644
|
||||
+ }
|
||||
}
|
||||
|
||||
static const GLuint samplers[8] = {0};
|
||||
if (_restorePointSprite) {
|
||||
diff --git a/pxr/imaging/hgiGL/scopedStateHolder.h b/pxr/imaging/hgiGL/scopedStateHolder.h
|
||||
index d006480b9b..be6698e04c 100644
|
||||
index 4e76d5426..39de06111 100644
|
||||
--- a/pxr/imaging/hgiGL/scopedStateHolder.h
|
||||
+++ b/pxr/imaging/hgiGL/scopedStateHolder.h
|
||||
@@ -32,6 +32,7 @@
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
PXR_NAMESPACE_OPEN_SCOPE
|
||||
|
||||
@@ -333,7 +337,7 @@ index d006480b9b..be6698e04c 100644
|
||||
|
||||
/// \class HgiGLScopedStateHolder
|
||||
///
|
||||
@@ -50,7 +51,7 @@ class HgiGL_ScopedStateHolder final
|
||||
@@ -33,7 +34,7 @@ class HgiGL_ScopedStateHolder final
|
||||
{
|
||||
public:
|
||||
HGIGL_API
|
||||
@@ -342,7 +346,7 @@ index d006480b9b..be6698e04c 100644
|
||||
|
||||
HGIGL_API
|
||||
~HgiGL_ScopedStateHolder();
|
||||
@@ -59,6 +60,8 @@ class HgiGL_ScopedStateHolder final
|
||||
@@ -42,6 +43,8 @@ private:
|
||||
HgiGL_ScopedStateHolder& operator=(const HgiGL_ScopedStateHolder&) = delete;
|
||||
HgiGL_ScopedStateHolder(const HgiGL_ScopedStateHolder&) = delete;
|
||||
|
||||
@@ -352,26 +356,26 @@ index d006480b9b..be6698e04c 100644
|
||||
int32_t _restoreVao;
|
||||
|
||||
diff --git a/pxr/imaging/hgiInterop/opengl.cpp b/pxr/imaging/hgiInterop/opengl.cpp
|
||||
index 95736721f1..4f970ed608 100644
|
||||
index 36bc59bdf..672b9b044 100644
|
||||
--- a/pxr/imaging/hgiInterop/opengl.cpp
|
||||
+++ b/pxr/imaging/hgiInterop/opengl.cpp
|
||||
@@ -110,6 +110,7 @@ HgiInteropOpenGL::HgiInteropOpenGL()
|
||||
@@ -93,6 +93,7 @@ HgiInteropOpenGL::HgiInteropOpenGL()
|
||||
, _fsDepth(0)
|
||||
, _prgNoDepth(0)
|
||||
, _prgDepth(0)
|
||||
+ , _vao(0)
|
||||
, _vertexBuffer(0)
|
||||
{
|
||||
_vs = _CompileShader(_vertexFullscreen, GL_VERTEX_SHADER);
|
||||
@@ -117,6 +118,7 @@ HgiInteropOpenGL::HgiInteropOpenGL()
|
||||
_fsDepth = _CompileShader(_fragmentDepthFullscreen, GL_FRAGMENT_SHADER);
|
||||
_vs = _CompileShader(_vertexFullscreen120, GL_VERTEX_SHADER);
|
||||
@@ -100,6 +101,7 @@ HgiInteropOpenGL::HgiInteropOpenGL()
|
||||
_fsDepth = _CompileShader(_fragmentDepthFullscreen120, GL_FRAGMENT_SHADER);
|
||||
_prgNoDepth = _LinkProgram(_vs, _fsNoDepth);
|
||||
_prgDepth = _LinkProgram(_vs, _fsDepth);
|
||||
+ glCreateVertexArrays(1, &_vao);
|
||||
_vertexBuffer = _CreateVertexBuffer();
|
||||
TF_VERIFY(glGetError() == GL_NO_ERROR);
|
||||
}
|
||||
@@ -129,6 +131,7 @@ HgiInteropOpenGL::~HgiInteropOpenGL()
|
||||
@@ -112,6 +114,7 @@ HgiInteropOpenGL::~HgiInteropOpenGL()
|
||||
glDeleteProgram(_prgNoDepth);
|
||||
glDeleteProgram(_prgDepth);
|
||||
glDeleteBuffers(1, &_vertexBuffer);
|
||||
@@ -379,7 +383,7 @@ index 95736721f1..4f970ed608 100644
|
||||
TF_VERIFY(glGetError() == GL_NO_ERROR);
|
||||
}
|
||||
|
||||
@@ -202,10 +205,13 @@ HgiInteropOpenGL::CompositeToInterop(
|
||||
@@ -185,10 +188,13 @@ HgiInteropOpenGL::CompositeToInterop(
|
||||
}
|
||||
|
||||
// Get the current array buffer binding state
|
||||
@@ -393,7 +397,7 @@ index 95736721f1..4f970ed608 100644
|
||||
const GLint locPosition = glGetAttribLocation(prg, "position");
|
||||
glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer);
|
||||
glVertexAttribPointer(locPosition, 4, GL_FLOAT, GL_FALSE,
|
||||
@@ -271,6 +277,7 @@ HgiInteropOpenGL::CompositeToInterop(
|
||||
@@ -254,6 +260,7 @@ HgiInteropOpenGL::CompositeToInterop(
|
||||
glDisableVertexAttribArray(locPosition);
|
||||
glDisableVertexAttribArray(locUv);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, restoreArrayBuffer);
|
||||
@@ -402,10 +406,10 @@ index 95736721f1..4f970ed608 100644
|
||||
if (!blendEnabled) {
|
||||
glDisable(GL_BLEND);
|
||||
diff --git a/pxr/imaging/hgiInterop/opengl.h b/pxr/imaging/hgiInterop/opengl.h
|
||||
index 18840a92bd..27434ac36f 100644
|
||||
index b0dd64a71..5cd1bad95 100644
|
||||
--- a/pxr/imaging/hgiInterop/opengl.h
|
||||
+++ b/pxr/imaging/hgiInterop/opengl.h
|
||||
@@ -62,6 +62,7 @@ class HgiInteropOpenGL final
|
||||
@@ -45,6 +45,7 @@ private:
|
||||
uint32_t _fsDepth;
|
||||
uint32_t _prgNoDepth;
|
||||
uint32_t _prgDepth;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/pxr/base/arch/attributes.cpp b/pxr/base/arch/attributes.cpp
|
||||
index 1309d6f..de65e99 100644
|
||||
index 1309d6f24..b65893b9c 100644
|
||||
--- a/pxr/base/arch/attributes.cpp
|
||||
+++ b/pxr/base/arch/attributes.cpp
|
||||
@@ -187,7 +187,7 @@ AddImage(const struct mach_header* mh, intptr_t slide)
|
||||
@@ -39,50 +39,50 @@ index 1309d6f..de65e99 100644
|
||||
if (entries[i].function &&
|
||||
entries[i].version == static_cast<unsigned>(PXR_VERSION)) {
|
||||
diff --git a/pxr/base/arch/attributes.h b/pxr/base/arch/attributes.h
|
||||
index 1d2820d..424e060 100644
|
||||
index ea7afe825..b38375ad0 100644
|
||||
--- a/pxr/base/arch/attributes.h
|
||||
+++ b/pxr/base/arch/attributes.h
|
||||
@@ -225,22 +225,22 @@ struct Arch_ConstructorEntry {
|
||||
@@ -219,22 +219,22 @@ struct Arch_ConstructorEntry {
|
||||
unsigned int priority:8; // Priority of function
|
||||
};
|
||||
|
||||
-// Emit a Arch_ConstructorEntry in the __Data,pxrctor section.
|
||||
+// Emit a Arch_ConstructorEntry in the __Data,pxbctor section.
|
||||
# define ARCH_CONSTRUCTOR(_name, _priority, ...) \
|
||||
static void _name(__VA_ARGS__); \
|
||||
# define ARCH_CONSTRUCTOR(_name, _priority) \
|
||||
static void _name(); \
|
||||
static const Arch_ConstructorEntry _ARCH_CAT_NOEXPAND(arch_ctor_, _name) \
|
||||
- __attribute__((used, section("__DATA,pxrctor"))) = { \
|
||||
+ __attribute__((used, section("__DATA,pxbctor"))) = { \
|
||||
+ __attribute__((used, section("__DATA,pxbctor"))) = { \
|
||||
reinterpret_cast<Arch_ConstructorEntry::Type>(&_name), \
|
||||
static_cast<unsigned>(PXR_VERSION), \
|
||||
_priority \
|
||||
}; \
|
||||
static void _name(__VA_ARGS__)
|
||||
static void _name()
|
||||
|
||||
-// Emit a Arch_ConstructorEntry in the __Data,pxrdtor section.
|
||||
+// Emit a Arch_ConstructorEntry in the __Data,pxbdtor section.
|
||||
# define ARCH_DESTRUCTOR(_name, _priority, ...) \
|
||||
static void _name(__VA_ARGS__); \
|
||||
# define ARCH_DESTRUCTOR(_name, _priority) \
|
||||
static void _name(); \
|
||||
static const Arch_ConstructorEntry _ARCH_CAT_NOEXPAND(arch_dtor_, _name) \
|
||||
- __attribute__((used, section("__DATA,pxrdtor"))) = { \
|
||||
+ __attribute__((used, section("__DATA,pxbdtor"))) = { \
|
||||
+ __attribute__((used, section("__DATA,pxbdtor"))) = { \
|
||||
reinterpret_cast<Arch_ConstructorEntry::Type>(&_name), \
|
||||
static_cast<unsigned>(PXR_VERSION), \
|
||||
_priority \
|
||||
@@ -252,10 +252,10 @@ struct Arch_ConstructorEntry {
|
||||
@@ -246,10 +246,10 @@ struct Arch_ConstructorEntry {
|
||||
// The used attribute is required to prevent these apparently unused functions
|
||||
// from being removed by the linker.
|
||||
# define ARCH_CONSTRUCTOR(_name, _priority, ...) \
|
||||
# define ARCH_CONSTRUCTOR(_name, _priority) \
|
||||
- __attribute__((used, section(".pxrctor"), constructor((_priority) + 100))) \
|
||||
+ __attribute__((used, section(".pxbctor"), constructor((_priority) + 100))) \
|
||||
static void _name(__VA_ARGS__)
|
||||
# define ARCH_DESTRUCTOR(_name, _priority, ...) \
|
||||
static void _name()
|
||||
# define ARCH_DESTRUCTOR(_name, _priority) \
|
||||
- __attribute__((used, section(".pxrdtor"), destructor((_priority) + 100))) \
|
||||
+ __attribute__((used, section(".pxbdtor"), destructor((_priority) + 100))) \
|
||||
static void _name(__VA_ARGS__)
|
||||
static void _name()
|
||||
|
||||
#elif defined(ARCH_OS_WINDOWS)
|
||||
@@ -272,8 +272,8 @@ struct Arch_ConstructorEntry {
|
||||
@@ -266,8 +266,8 @@ struct Arch_ConstructorEntry {
|
||||
};
|
||||
|
||||
// Declare the special sections.
|
||||
@@ -93,7 +93,7 @@ index 1d2820d..424e060 100644
|
||||
|
||||
// Objects of this type run the ARCH_CONSTRUCTOR and ARCH_DESTRUCTOR functions
|
||||
// for the library containing the object in the c'tor and d'tor, respectively.
|
||||
@@ -283,14 +283,14 @@ struct Arch_ConstructorInit {
|
||||
@@ -277,14 +277,14 @@ struct Arch_ConstructorInit {
|
||||
ARCH_API ~Arch_ConstructorInit();
|
||||
};
|
||||
|
||||
@@ -102,25 +102,25 @@ index 1d2820d..424e060 100644
|
||||
// extern are to convince the compiler and linker to leave the object in the
|
||||
// final library/executable instead of stripping it out. In clang/gcc we use
|
||||
// __attribute__((used)) to do that.
|
||||
# define ARCH_CONSTRUCTOR(_name, _priority, ...) \
|
||||
static void _name(__VA_ARGS__); \
|
||||
# define ARCH_CONSTRUCTOR(_name, _priority) \
|
||||
static void _name(); \
|
||||
namespace { \
|
||||
- __declspec(allocate(".pxrctor")) \
|
||||
+ __declspec(allocate(".pxbctor")) \
|
||||
+ __declspec(allocate(".pxbctor")) \
|
||||
extern const Arch_ConstructorEntry \
|
||||
_ARCH_CAT_NOEXPAND(arch_ctor_, _name) = { \
|
||||
reinterpret_cast<Arch_ConstructorEntry::Type>(&_name), \
|
||||
@@ -301,11 +301,11 @@ struct Arch_ConstructorInit {
|
||||
@@ -295,11 +295,11 @@ struct Arch_ConstructorInit {
|
||||
_ARCH_ENSURE_PER_LIB_INIT(Arch_ConstructorInit, _archCtorInit); \
|
||||
static void _name(__VA_ARGS__)
|
||||
static void _name()
|
||||
|
||||
- // Emit a Arch_ConstructorEntry in the .pxrdtor section.
|
||||
+ // Emit a Arch_ConstructorEntry in the .pxbdtor section.
|
||||
# define ARCH_DESTRUCTOR(_name, _priority, ...) \
|
||||
static void _name(__VA_ARGS__); \
|
||||
# define ARCH_DESTRUCTOR(_name, _priority) \
|
||||
static void _name(); \
|
||||
namespace { \
|
||||
- __declspec(allocate(".pxrdtor")) \
|
||||
+ __declspec(allocate(".pxbdtor")) \
|
||||
+ __declspec(allocate(".pxbdtor")) \
|
||||
extern const Arch_ConstructorEntry \
|
||||
_ARCH_CAT_NOEXPAND(arch_dtor_, _name) = { \
|
||||
reinterpret_cast<Arch_ConstructorEntry::Type>(&_name), \
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
diff --git a/pxr/usd/usd/crateFile.cpp b/pxr/usd/usd/crateFile.cpp
|
||||
index 55c6d71e1..5d0fcbcfa 100644
|
||||
--- a/pxr/usd/usd/crateFile.cpp
|
||||
+++ b/pxr/usd/usd/crateFile.cpp
|
||||
@@ -102,7 +102,8 @@ TF_REGISTRY_FUNCTION(TfType) {
|
||||
TfType::Define<Usd_CrateFile::TimeSamples>();
|
||||
}
|
||||
|
||||
-#define DEFAULT_NEW_VERSION "0.10.0"
|
||||
+// BLENDER: Keep USD files forward compatible for longer.
|
||||
+#define DEFAULT_NEW_VERSION "0.9.0"
|
||||
TF_DEFINE_ENV_SETTING(
|
||||
USD_WRITE_NEW_USDC_FILES_AS_VERSION, DEFAULT_NEW_VERSION,
|
||||
"When writing new Usd Crate files, write them as this version. "
|
||||
@@ -23,16 +23,14 @@ https://github.com/PixarAnimationStudios/OpenUSD/pull/3603
|
||||
15 files changed, 305 insertions(+), 98 deletions(-)
|
||||
create mode 100644 cmake/modules/FindShaderC.cmake
|
||||
create mode 100644 cmake/modules/FindSpirvReflect.cmake
|
||||
delete mode 100644 pxr/imaging/hgiVulkan/spirv_reflect.cpp
|
||||
delete mode 100644 pxr/imaging/hgiVulkan/spirv_reflect.h
|
||||
delete mode 100644 pxr/imaging/hgiVulkan/vk_mem_alloc.cpp
|
||||
delete mode 100644 pxr/imaging/hgiVulkan/vk_mem_alloc.h
|
||||
|
||||
diff --git a/cmake/defaults/Packages.cmake b/cmake/defaults/Packages.cmake
|
||||
index 4e9066ca3a..0a929fda3b 100644
|
||||
index 0112058e5..501a0e481 100644
|
||||
--- a/cmake/defaults/Packages.cmake
|
||||
+++ b/cmake/defaults/Packages.cmake
|
||||
@@ -187,38 +187,59 @@ if (PXR_BUILD_IMAGING)
|
||||
@@ -188,38 +188,56 @@ if (PXR_BUILD_IMAGING)
|
||||
endif()
|
||||
if (PXR_ENABLE_VULKAN_SUPPORT)
|
||||
message(STATUS "Enabling experimental feature Vulkan support")
|
||||
@@ -44,27 +42,7 @@ index 4e9066ca3a..0a929fda3b 100644
|
||||
- include_directories(BEFORE SYSTEM $ENV{VULKAN_SDK} $ENV{VULKAN_SDK}/include $ENV{VULKAN_SDK}/lib $ENV{VULKAN_SDK}/source)
|
||||
- set(ENV{PATH} "$ENV{VULKAN_SDK}:$ENV{VULKAN_SDK}/include:$ENV{VULKAN_SDK}/lib:$ENV{VULKAN_SDK}/source:$ENV{PATH}")
|
||||
- find_package(Vulkan REQUIRED)
|
||||
+
|
||||
+ if (DEFINED ENV{VULKAN_SDK})
|
||||
+ message(STATUS "Using Vulkan components from: \"$ENV{VULKAN_SDK}\"")
|
||||
+ # Not using usd_build.py: find from the Vulkan SDK
|
||||
+ find_package(Vulkan MODULE REQUIRED COMPONENTS shaderc_combined)
|
||||
+
|
||||
+ # The SDK uniquely places the "vk_mem_alloc.h" header inside a "vma"
|
||||
+ # subdirectory. This means we would need to use "#include <vma/vk_mem_alloc.h>"
|
||||
+ # only for the SDK build. Instead of forcing non-SDK users to create
|
||||
+ # this path, we'll add a another include directory for the SDK build.
|
||||
+ # That way "#include <vk_mem_alloc.h>" should work for everyone.
|
||||
+ target_include_directories(Vulkan::Vulkan INTERFACE
|
||||
+ "${Vulkan_INCLUDE_DIR}/vma")
|
||||
+
|
||||
list(APPEND VULKAN_LIBS Vulkan::Vulkan)
|
||||
+ list(APPEND VULKAN_LIBS Vulkan::shaderc_combined)
|
||||
+ else()
|
||||
+ message(STATUS "Using locally built Vulkan components")
|
||||
+ # Using usd_build.py: find individual components
|
||||
+ find_package(VulkanHeaders CONFIG REQUIRED)
|
||||
+ list(APPEND VULKAN_LIBS Vulkan::Headers)
|
||||
- list(APPEND VULKAN_LIBS Vulkan::Vulkan)
|
||||
|
||||
- # Find the extra vulkan libraries we need
|
||||
- set(EXTRA_VULKAN_LIBS shaderc_combined)
|
||||
@@ -75,7 +53,13 @@ index 4e9066ca3a..0a929fda3b 100644
|
||||
- find_library("${EXTRA_LIBRARY}_PATH" NAMES "${EXTRA_LIBRARY}" PATHS $ENV{VULKAN_SDK}/lib)
|
||||
- list(APPEND VULKAN_LIBS "${${EXTRA_LIBRARY}_PATH}")
|
||||
- endforeach()
|
||||
-
|
||||
+ # We use BUILD_LOCAL_INTERFACE so that the Vulkan dependencies remain
|
||||
+ # internal only. Except for the headers, which are publicly accessible
|
||||
+ # from hgiVulkan.
|
||||
+ if (DEFINED ENV{VULKAN_SDK})
|
||||
+ message(STATUS "Using Vulkan components from: \"$ENV{VULKAN_SDK}\"")
|
||||
+ set(PXR_USING_VULKAN_SDK ON) # for pxrConfig.cmake
|
||||
|
||||
- # Find the OS specific libs we need
|
||||
- if (UNIX AND NOT APPLE)
|
||||
- find_package(X11 REQUIRED)
|
||||
@@ -83,36 +67,47 @@ index 4e9066ca3a..0a929fda3b 100644
|
||||
- elseif (WIN32)
|
||||
- # No extra libs required
|
||||
- endif()
|
||||
+ # Not using usd_build.py: find from the Vulkan SDK
|
||||
+ find_package(Vulkan MODULE REQUIRED COMPONENTS shaderc_combined)
|
||||
|
||||
- add_definitions(-DPXR_VULKAN_SUPPORT_ENABLED)
|
||||
+ list(APPEND VULKAN_LIBS Vulkan::Headers)
|
||||
+ # The SDK uniquely places the "vk_mem_alloc.h" header inside a "vma"
|
||||
+ # subdirectory. This means we would need to use "#include <vma/vk_mem_alloc.h>"
|
||||
+ # only for the SDK build. Instead of forcing non-SDK users to create
|
||||
+ # this path, we'll add a another include directory for the SDK build.
|
||||
+ # That way "#include <vk_mem_alloc.h>" should work for everyone.
|
||||
+ target_include_directories(Vulkan::Headers INTERFACE
|
||||
+ "${Vulkan_INCLUDE_DIR}/vma")
|
||||
+
|
||||
+ list(APPEND VULKAN_LIBS $<BUILD_LOCAL_INTERFACE:Vulkan::Vulkan>)
|
||||
+ list(APPEND VULKAN_LIBS $<BUILD_LOCAL_INTERFACE:Vulkan::shaderc_combined>)
|
||||
else()
|
||||
- message(FATAL_ERROR "VULKAN_SDK not valid")
|
||||
+ message(STATUS "Using locally built Vulkan components")
|
||||
+ set(PXR_USING_VULKAN_SDK OFF) # for pxrConfig.cmake
|
||||
+
|
||||
+ # Using usd_build.py: find individual components
|
||||
+ find_package(VulkanHeaders CONFIG REQUIRED)
|
||||
+ list(APPEND VULKAN_LIBS Vulkan::Headers)
|
||||
+
|
||||
+ find_package(VulkanUtilityLibraries CONFIG REQUIRED)
|
||||
+ list(APPEND VULKAN_LIBS Vulkan::UtilityHeaders)
|
||||
+
|
||||
+ find_package(VulkanLoader CONFIG REQUIRED)
|
||||
+ list(APPEND VULKAN_LIBS Vulkan::Loader)
|
||||
|
||||
- add_definitions(-DPXR_VULKAN_SUPPORT_ENABLED)
|
||||
+ list(APPEND VULKAN_LIBS $<BUILD_LOCAL_INTERFACE:Vulkan::Loader>)
|
||||
+
|
||||
+ find_package(VulkanMemoryAllocator CONFIG REQUIRED)
|
||||
+ list(APPEND VULKAN_LIBS GPUOpen::VulkanMemoryAllocator)
|
||||
+
|
||||
+ find_package(ShaderC MODULE REQUIRED)
|
||||
+ list(APPEND VULKAN_LIBS shaderc_combined)
|
||||
+ endif()
|
||||
+
|
||||
+ # In either case we have custom logic for SPIRV-Reflect
|
||||
+ find_package(SpirvReflect MODULE REQUIRED)
|
||||
+ if(SpirvReflect_IS_SOURCE_DEP)
|
||||
+ # SPIRV-Reflect should not be installed nor exported
|
||||
+ list(APPEND VULKAN_LIBS $<BUILD_LOCAL_INTERFACE:spirv-reflect>)
|
||||
else()
|
||||
- message(FATAL_ERROR "VULKAN_SDK not valid")
|
||||
+ list(APPEND VULKAN_LIBS spirv-reflect)
|
||||
+ list(APPEND VULKAN_LIBS $<BUILD_LOCAL_INTERFACE:shaderc_combined>)
|
||||
endif()
|
||||
+
|
||||
+ # Find the OS specific libs we need
|
||||
+ if (UNIX AND NOT APPLE)
|
||||
+ find_package(X11 REQUIRED)
|
||||
+ list(APPEND VULKAN_LIBS ${X11_LIBRARIES})
|
||||
+ elseif (WIN32)
|
||||
+ # No extra libs required
|
||||
+ list(APPEND VULKAN_LIBS $<BUILD_LOCAL_INTERFACE:X11::X11>)
|
||||
+ endif()
|
||||
+
|
||||
+ add_definitions(-DPXR_VULKAN_SUPPORT_ENABLED)
|
||||
@@ -120,7 +115,7 @@ index 4e9066ca3a..0a929fda3b 100644
|
||||
# --Opensubdiv
|
||||
set(OPENSUBDIV_USE_GPU ${PXR_BUILD_GPU_SUPPORT})
|
||||
diff --git a/cmake/macros/Private.cmake b/cmake/macros/Private.cmake
|
||||
index 6fe1134c14..4629e5a03f 100644
|
||||
index 6fe1134c1..4629e5a03 100644
|
||||
--- a/cmake/macros/Private.cmake
|
||||
+++ b/cmake/macros/Private.cmake
|
||||
@@ -823,6 +823,12 @@ function(_pxr_target_link_libraries NAME)
|
||||
@@ -138,7 +133,7 @@ index 6fe1134c14..4629e5a03f 100644
|
||||
endif()
|
||||
diff --git a/cmake/modules/FindShaderC.cmake b/cmake/modules/FindShaderC.cmake
|
||||
new file mode 100644
|
||||
index 0000000000..4dffb19bcc
|
||||
index 000000000..4dffb19bc
|
||||
--- /dev/null
|
||||
+++ b/cmake/modules/FindShaderC.cmake
|
||||
@@ -0,0 +1,41 @@
|
||||
@@ -183,71 +178,11 @@ index 0000000000..4dffb19bcc
|
||||
+ IMPORTED_CONFIGURATIONS "${found_configurations}")
|
||||
+ endif()
|
||||
+endif()
|
||||
diff --git a/cmake/modules/FindSpirvReflect.cmake b/cmake/modules/FindSpirvReflect.cmake
|
||||
new file mode 100644
|
||||
index 0000000000..c563252b88
|
||||
--- /dev/null
|
||||
+++ b/cmake/modules/FindSpirvReflect.cmake
|
||||
@@ -0,0 +1,54 @@
|
||||
+include(FindPackageHandleStandardArgs)
|
||||
+
|
||||
+set(vulkan_sdk_source_path_hints)
|
||||
+set(vulkan_sdk_lib_path_hints)
|
||||
+if (DEFINED ENV{VULKAN_SDK})
|
||||
+ list(APPEND vulkan_sdk_source_path_hints "$ENV{VULKAN_SDK}/source/SPIRV-Reflect")
|
||||
+ list(APPEND vulkan_sdk_source_path_hints "$ENV{VULKAN_SDK}/include/SPIRV-Reflect")
|
||||
+ list(APPEND vulkan_sdk_lib_path_hints "$ENV{VULKAN_SDK}/lib")
|
||||
+endif()
|
||||
+
|
||||
+find_path(spirv-reflect_INCLUDE_DIR "spirv_reflect.h"
|
||||
+ HINTS ${vulkan_sdk_source_path_hints})
|
||||
+find_library(spirv-reflect_LIBRARY "spirv-reflect-static"
|
||||
+ HINTS ${vulkan_sdk_lib_path_hints})
|
||||
+
|
||||
+# SPIRV-Reflect is distributed as a source and header file pair,
|
||||
+# but can also be built as a static library.
|
||||
+if (spirv-reflect_LIBRARY)
|
||||
+ find_package_handle_standard_args(SpirvReflect DEFAULT_MSG
|
||||
+ spirv-reflect_LIBRARY
|
||||
+ spirv-reflect_INCLUDE_DIR)
|
||||
+
|
||||
+ if (SpirvReflect_FOUND)
|
||||
+ add_library(spirv-reflect STATIC IMPORTED)
|
||||
+ set_target_properties(spirv-reflect PROPERTIES IMPORTED_LOCATION "${spirv-reflect_LIBRARY}")
|
||||
+ target_include_directories(spirv-reflect INTERFACE "${spirv-reflect_INCLUDE_DIR}")
|
||||
+ set(SpirvReflect_IS_SOURCE_DEP FALSE)
|
||||
+ endif()
|
||||
+else()
|
||||
+ find_file(spirv-reflect_SOURCE "spirv_reflect.c"
|
||||
+ HINTS ${vulkan_sdk_source_path_hints})
|
||||
+ find_package_handle_standard_args(SpirvReflect DEFAULT_MSG
|
||||
+ spirv-reflect_SOURCE
|
||||
+ spirv-reflect_INCLUDE_DIR)
|
||||
+
|
||||
+ if (SpirvReflect_FOUND)
|
||||
+ add_library(spirv-reflect STATIC)
|
||||
+ target_sources(spirv-reflect PRIVATE "${spirv-reflect_SOURCE}")
|
||||
+ target_include_directories(spirv-reflect PUBLIC "${spirv-reflect_INCLUDE_DIR}")
|
||||
+ set_target_properties(spirv-reflect PROPERTIES
|
||||
+ ARCHIVE_OUTPUT_DIRECTORY "third_party")
|
||||
+ set(SpirvReflect_IS_SOURCE_DEP TRUE)
|
||||
+ endif()
|
||||
+endif()
|
||||
+
|
||||
+if (SpirvReflect_FOUND AND NOT EXISTS "${spirv-reflect_INCLUDE_DIR}/include/spirv/unified1/spirv.h")
|
||||
+ # Most probably not from the Vulkan SDK, so use a "system path."
|
||||
+ # If installed from build_usd.py this will be found in the USD install path.
|
||||
+ if (SpirvReflect_IS_SOURCE_DEP)
|
||||
+ target_compile_definitions(spirv-reflect PUBLIC SPIRV_REFLECT_USE_SYSTEM_SPIRV_H)
|
||||
+ else()
|
||||
+ target_compile_definitions(spirv-reflect INTERFACE SPIRV_REFLECT_USE_SYSTEM_SPIRV_H)
|
||||
+ endif()
|
||||
+endif()
|
||||
diff --git a/pxr/imaging/hgiVulkan/CMakeLists.txt b/pxr/imaging/hgiVulkan/CMakeLists.txt
|
||||
index 00ad754480..dff4754366 100644
|
||||
index e98893d3f..772c3edb6 100644
|
||||
--- a/pxr/imaging/hgiVulkan/CMakeLists.txt
|
||||
+++ b/pxr/imaging/hgiVulkan/CMakeLists.txt
|
||||
@@ -40,15 +40,11 @@ pxr_library(hgiVulkan
|
||||
@@ -41,7 +41,6 @@ pxr_library(hgiVulkan
|
||||
shaderProgram
|
||||
shaderSection
|
||||
texture
|
||||
@@ -255,16 +190,8 @@ index 00ad754480..dff4754366 100644
|
||||
|
||||
PUBLIC_HEADERS
|
||||
api.h
|
||||
vulkan.h
|
||||
|
||||
- PRIVATE_CLASSES
|
||||
- spirv_reflect
|
||||
-
|
||||
RESOURCE_FILES
|
||||
plugInfo.json
|
||||
)
|
||||
diff --git a/pxr/imaging/hgiVulkan/device.cpp b/pxr/imaging/hgiVulkan/device.cpp
|
||||
index 4e5a9627ad..5c0b70ddcb 100644
|
||||
index a1c44143a..28fb8d91b 100644
|
||||
--- a/pxr/imaging/hgiVulkan/device.cpp
|
||||
+++ b/pxr/imaging/hgiVulkan/device.cpp
|
||||
@@ -11,10 +11,12 @@
|
||||
@@ -281,7 +208,7 @@ index 4e5a9627ad..5c0b70ddcb 100644
|
||||
|
||||
PXR_NAMESPACE_OPEN_SCOPE
|
||||
|
||||
@@ -171,11 +173,9 @@ HgiVulkanDevice::HgiVulkanDevice(HgiVulkanInstance* instance)
|
||||
@@ -179,11 +181,9 @@ HgiVulkanDevice::HgiVulkanDevice(HgiVulkanInstance* instance)
|
||||
|
||||
// Allow certain buffers/images to have dedicated memory allocations to
|
||||
// improve performance on some GPUs.
|
||||
@@ -293,7 +220,7 @@ index 4e5a9627ad..5c0b70ddcb 100644
|
||||
extensions.push_back(VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME);
|
||||
extensions.push_back(VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME);
|
||||
}
|
||||
@@ -335,9 +335,16 @@ HgiVulkanDevice::HgiVulkanDevice(HgiVulkanInstance* instance)
|
||||
@@ -400,9 +400,16 @@ HgiVulkanDevice::HgiVulkanDevice(HgiVulkanInstance* instance)
|
||||
allocatorInfo.instance = instance->GetVulkanInstance();
|
||||
allocatorInfo.physicalDevice = _vkPhysicalDevice;
|
||||
allocatorInfo.device = _vkDevice;
|
||||
@@ -314,7 +241,7 @@ index 4e5a9627ad..5c0b70ddcb 100644
|
||||
if (supportsMemExtension) {
|
||||
allocatorInfo.flags |= VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT;
|
||||
diff --git a/pxr/imaging/hgiVulkan/diagnostic.cpp b/pxr/imaging/hgiVulkan/diagnostic.cpp
|
||||
index fb8d756d6d..455780e2c8 100644
|
||||
index fb8d756d6..455780e2c 100644
|
||||
--- a/pxr/imaging/hgiVulkan/diagnostic.cpp
|
||||
+++ b/pxr/imaging/hgiVulkan/diagnostic.cpp
|
||||
@@ -274,4 +274,4 @@ HgiVulkanResultString(VkResult result)
|
||||
@@ -325,7 +252,7 @@ index fb8d756d6d..455780e2c8 100644
|
||||
\ No newline at end of file
|
||||
+PXR_NAMESPACE_CLOSE_SCOPE
|
||||
diff --git a/pxr/imaging/hgiVulkan/sampler.cpp b/pxr/imaging/hgiVulkan/sampler.cpp
|
||||
index e89235cd6f..01de3a85d0 100644
|
||||
index e89235cd6..01de3a85d 100644
|
||||
--- a/pxr/imaging/hgiVulkan/sampler.cpp
|
||||
+++ b/pxr/imaging/hgiVulkan/sampler.cpp
|
||||
@@ -12,7 +12,8 @@
|
||||
@@ -345,64 +272,6 @@ index e89235cd6f..01de3a85d0 100644
|
||||
-PXR_NAMESPACE_CLOSE_SCOPE
|
||||
\ No newline at end of file
|
||||
+PXR_NAMESPACE_CLOSE_SCOPE
|
||||
diff --git a/pxr/imaging/hgiVulkan/shaderCompiler.cpp b/pxr/imaging/hgiVulkan/shaderCompiler.cpp
|
||||
index 333c2bf125..576b898a99 100644
|
||||
--- a/pxr/imaging/hgiVulkan/shaderCompiler.cpp
|
||||
+++ b/pxr/imaging/hgiVulkan/shaderCompiler.cpp
|
||||
@@ -10,9 +10,9 @@
|
||||
#include "pxr/imaging/hgiVulkan/device.h"
|
||||
#include "pxr/imaging/hgiVulkan/diagnostic.h"
|
||||
#include "pxr/imaging/hgiVulkan/shaderCompiler.h"
|
||||
-#include "pxr/imaging/hgiVulkan/spirv_reflect.h"
|
||||
|
||||
#include <shaderc/shaderc.hpp>
|
||||
+#include <spirv_reflect.h>
|
||||
|
||||
#include <unordered_map>
|
||||
|
||||
@@ -278,4 +278,4 @@ HgiVulkanMakeDescriptorSetLayouts(
|
||||
return layouts;
|
||||
}
|
||||
|
||||
-PXR_NAMESPACE_CLOSE_SCOPE
|
||||
\ No newline at end of file
|
||||
+PXR_NAMESPACE_CLOSE_SCOPE
|
||||
diff --git a/pxr/imaging/hgiVulkan/spirv_reflect.cpp b/pxr/imaging/hgiVulkan/spirv_reflect.cpp
|
||||
deleted file mode 100644
|
||||
index b2862df17d..0000000000
|
||||
--- a/pxr/imaging/hgiVulkan/spirv_reflect.cpp
|
||||
+++ /dev/null
|
||||
@@ -1,9 +0,0 @@
|
||||
-//
|
||||
-// Copyright 2023 Pixar
|
||||
-//
|
||||
-// Licensed under the terms set forth in the LICENSE.txt file available at
|
||||
-// https://openusd.org/license.
|
||||
-//
|
||||
-#include "pxr/imaging/hgiVulkan/spirv_reflect.h"
|
||||
-
|
||||
-#include <SPIRV-Reflect/spirv_reflect.c>
|
||||
diff --git a/pxr/imaging/hgiVulkan/spirv_reflect.h b/pxr/imaging/hgiVulkan/spirv_reflect.h
|
||||
deleted file mode 100644
|
||||
index b2779079a5..0000000000
|
||||
--- a/pxr/imaging/hgiVulkan/spirv_reflect.h
|
||||
+++ /dev/null
|
||||
@@ -1,15 +0,0 @@
|
||||
-//
|
||||
-// Copyright 2023 Pixar
|
||||
-//
|
||||
-// Licensed under the terms set forth in the LICENSE.txt file available at
|
||||
-// https://openusd.org/license.
|
||||
-//
|
||||
-#ifndef PXR_IMAGING_HGIVULKAN_SPIRV_REFLECT_H
|
||||
-#define PXR_IMAGING_HGIVULKAN_SPIRV_REFLECT_H
|
||||
-
|
||||
-// This is an implementation of SPIRV-Reflect included
|
||||
-// from the Vulkan SDK.
|
||||
-
|
||||
-#include <SPIRV-Reflect/spirv_reflect.h>
|
||||
-
|
||||
-#endif
|
||||
diff --git a/pxr/imaging/hgiVulkan/vk_mem_alloc.cpp b/pxr/imaging/hgiVulkan/vk_mem_alloc.cpp
|
||||
deleted file mode 100644
|
||||
index 8f47ddc85f..0000000000
|
||||
@@ -441,12 +310,12 @@ index 48f5fceff2..0000000000
|
||||
-
|
||||
-#endif
|
||||
diff --git a/pxr/imaging/hgiVulkan/vulkan.h b/pxr/imaging/hgiVulkan/vulkan.h
|
||||
index 3ea215679f..7f28679328 100644
|
||||
index 2e8f59064..70b539211 100644
|
||||
--- a/pxr/imaging/hgiVulkan/vulkan.h
|
||||
+++ b/pxr/imaging/hgiVulkan/vulkan.h
|
||||
@@ -22,7 +22,11 @@
|
||||
|
||||
#include <vulkan/vulkan.h>
|
||||
@@ -35,7 +35,11 @@
|
||||
#define VK_EXTERNAL_MEMORY_HANDLE_AUTO 0
|
||||
#endif
|
||||
|
||||
-#include "pxr/imaging/hgiVulkan/vk_mem_alloc.h"
|
||||
+#define VMA_STATIC_VULKAN_FUNCTIONS 1
|
||||
@@ -457,97 +326,12 @@ index 3ea215679f..7f28679328 100644
|
||||
|
||||
// Use the default allocator (nullptr)
|
||||
inline VkAllocationCallbacks*
|
||||
|
||||
From b8db3a3ed8dea771fdfa3103562f4f33976efd16 Mon Sep 17 00:00:00 2001
|
||||
From: Aleksi Sapon <aleksi.sapon@autodesk.com>
|
||||
Date: Tue, 22 Apr 2025 14:43:10 -0400
|
||||
Subject: [PATCH 2/2] Add Vulkan dependencies to pxrConfig.cmake
|
||||
|
||||
---
|
||||
cmake/defaults/Packages.cmake | 29 +++++++++++++++--------------
|
||||
pxr/pxrConfig.cmake.in | 26 ++++++++++++++++++++++++++
|
||||
2 files changed, 41 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/cmake/defaults/Packages.cmake b/cmake/defaults/Packages.cmake
|
||||
index 0a929fda3b..4d2658441e 100644
|
||||
--- a/cmake/defaults/Packages.cmake
|
||||
+++ b/cmake/defaults/Packages.cmake
|
||||
@@ -188,23 +188,31 @@ if (PXR_BUILD_IMAGING)
|
||||
if (PXR_ENABLE_VULKAN_SUPPORT)
|
||||
message(STATUS "Enabling experimental feature Vulkan support")
|
||||
|
||||
+ # We use BUILD_LOCAL_INTERFACE so that the Vulkan dependencies remain
|
||||
+ # internal only. Except for the headers, which are publicly accessible
|
||||
+ # from hgiVulkan.
|
||||
if (DEFINED ENV{VULKAN_SDK})
|
||||
message(STATUS "Using Vulkan components from: \"$ENV{VULKAN_SDK}\"")
|
||||
+ set(PXR_USING_VULKAN_SDK ON) # for pxrConfig.cmake
|
||||
+
|
||||
# Not using usd_build.py: find from the Vulkan SDK
|
||||
find_package(Vulkan MODULE REQUIRED COMPONENTS shaderc_combined)
|
||||
|
||||
+ list(APPEND VULKAN_LIBS Vulkan::Headers)
|
||||
# The SDK uniquely places the "vk_mem_alloc.h" header inside a "vma"
|
||||
# subdirectory. This means we would need to use "#include <vma/vk_mem_alloc.h>"
|
||||
# only for the SDK build. Instead of forcing non-SDK users to create
|
||||
# this path, we'll add a another include directory for the SDK build.
|
||||
# That way "#include <vk_mem_alloc.h>" should work for everyone.
|
||||
- target_include_directories(Vulkan::Vulkan INTERFACE
|
||||
+ target_include_directories(Vulkan::Headers INTERFACE
|
||||
"${Vulkan_INCLUDE_DIR}/vma")
|
||||
|
||||
- list(APPEND VULKAN_LIBS Vulkan::Vulkan)
|
||||
- list(APPEND VULKAN_LIBS Vulkan::shaderc_combined)
|
||||
+ list(APPEND VULKAN_LIBS $<BUILD_LOCAL_INTERFACE:Vulkan::Vulkan>)
|
||||
+ list(APPEND VULKAN_LIBS $<BUILD_LOCAL_INTERFACE:Vulkan::shaderc_combined>)
|
||||
else()
|
||||
message(STATUS "Using locally built Vulkan components")
|
||||
+ set(PXR_USING_VULKAN_SDK OFF) # for pxrConfig.cmake
|
||||
+
|
||||
# Using usd_build.py: find individual components
|
||||
find_package(VulkanHeaders CONFIG REQUIRED)
|
||||
list(APPEND VULKAN_LIBS Vulkan::Headers)
|
||||
@@ -213,30 +221,23 @@ if (PXR_BUILD_IMAGING)
|
||||
list(APPEND VULKAN_LIBS Vulkan::UtilityHeaders)
|
||||
|
||||
find_package(VulkanLoader CONFIG REQUIRED)
|
||||
- list(APPEND VULKAN_LIBS Vulkan::Loader)
|
||||
+ list(APPEND VULKAN_LIBS $<BUILD_LOCAL_INTERFACE:Vulkan::Loader>)
|
||||
|
||||
find_package(VulkanMemoryAllocator CONFIG REQUIRED)
|
||||
list(APPEND VULKAN_LIBS GPUOpen::VulkanMemoryAllocator)
|
||||
|
||||
find_package(ShaderC MODULE REQUIRED)
|
||||
- list(APPEND VULKAN_LIBS shaderc_combined)
|
||||
+ list(APPEND VULKAN_LIBS $<BUILD_LOCAL_INTERFACE:shaderc_combined>)
|
||||
endif()
|
||||
|
||||
# In either case we have custom logic for SPIRV-Reflect
|
||||
find_package(SpirvReflect MODULE REQUIRED)
|
||||
- if(SpirvReflect_IS_SOURCE_DEP)
|
||||
- # SPIRV-Reflect should not be installed nor exported
|
||||
- list(APPEND VULKAN_LIBS $<BUILD_LOCAL_INTERFACE:spirv-reflect>)
|
||||
- else()
|
||||
- list(APPEND VULKAN_LIBS spirv-reflect)
|
||||
- endif()
|
||||
+ list(APPEND VULKAN_LIBS $<BUILD_LOCAL_INTERFACE:spirv-reflect>)
|
||||
|
||||
# Find the OS specific libs we need
|
||||
if (UNIX AND NOT APPLE)
|
||||
find_package(X11 REQUIRED)
|
||||
- list(APPEND VULKAN_LIBS ${X11_LIBRARIES})
|
||||
- elseif (WIN32)
|
||||
- # No extra libs required
|
||||
+ list(APPEND VULKAN_LIBS $<BUILD_LOCAL_INTERFACE:X11::X11>)
|
||||
endif()
|
||||
|
||||
add_definitions(-DPXR_VULKAN_SUPPORT_ENABLED)
|
||||
diff --git a/pxr/pxrConfig.cmake.in b/pxr/pxrConfig.cmake.in
|
||||
index a7e566bac2..07bd1ad412 100644
|
||||
index ae8d02c5c..7c88bb5e9 100644
|
||||
--- a/pxr/pxrConfig.cmake.in
|
||||
+++ b/pxr/pxrConfig.cmake.in
|
||||
@@ -90,6 +90,32 @@ if(@Imath_FOUND@)
|
||||
find_dependency(Imath)
|
||||
@@ -115,6 +115,32 @@ if(NOT "@PXR_WORK_IMPL_PACKAGE@" STREQUAL "")
|
||||
find_dependency(@PXR_WORK_IMPL_PACKAGE@)
|
||||
endif()
|
||||
|
||||
+if(@PXR_ENABLE_VULKAN_SUPPORT@)
|
||||
|
||||
@@ -1,11 +1,21 @@
|
||||
--- a/cmake/defaults/Packages.cmake 2025-01-22 08:14:27
|
||||
+++ b/cmake/defaults/Packages.cmake 2025-01-22 08:14:41
|
||||
@@ -20,7 +20,7 @@
|
||||
--- a/cmake/defaults/Packages.cmake 2025-08-20 13:06:07.093053300 -0700
|
||||
+++ b/cmake/defaults/Packages.cmake 2025-08-20 13:47:11.656614900 -0700
|
||||
@@ -20,18 +20,6 @@
|
||||
find_package(Threads REQUIRED)
|
||||
set(PXR_THREAD_LIBS "${CMAKE_THREAD_LIBS_INIT}")
|
||||
|
||||
-if((PXR_ENABLE_PYTHON_SUPPORT AND PXR_USE_BOOST_PYTHON) OR PXR_ENABLE_OPENVDB_SUPPORT)
|
||||
+if(PXR_ENABLE_PYTHON_SUPPORT AND PXR_USE_BOOST_PYTHON)
|
||||
# Find Boost package before getting any boost specific components as we need to
|
||||
# disable boost-provided cmake config, based on the boost version found.
|
||||
find_package(Boost REQUIRED)
|
||||
-if(PXR_ENABLE_OPENVDB_SUPPORT)
|
||||
- # Find Boost package before getting any boost specific components as we need to
|
||||
- # disable boost-provided cmake config, based on the boost version found.
|
||||
- find_package(Boost REQUIRED)
|
||||
- # If a user explicitly sets Boost_NO_BOOST_CMAKE to On, following will
|
||||
- # disable the use of boost provided cmake config.
|
||||
- option(Boost_NO_BOOST_CMAKE "Disable boost-provided cmake config" OFF)
|
||||
- if (Boost_NO_BOOST_CMAKE)
|
||||
- message(STATUS "Disabling boost-provided cmake config")
|
||||
- endif()
|
||||
-endif()
|
||||
-
|
||||
if(PXR_ENABLE_PYTHON_SUPPORT)
|
||||
# 1--Python.
|
||||
macro(setup_python_package package)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/pxr/imaging/hdSt/renderDelegate.cpp b/pxr/imaging/hdSt/renderDelegate.cpp
|
||||
index 2e34715d2..329933383 100644
|
||||
index 8e81f3804..b171ac540 100644
|
||||
--- a/pxr/imaging/hdSt/renderDelegate.cpp
|
||||
+++ b/pxr/imaging/hdSt/renderDelegate.cpp
|
||||
@@ -541,7 +541,10 @@ HdStRenderDelegate::CommitResources(HdChangeTracker *tracker)
|
||||
@@ -549,7 +549,10 @@ HdStRenderDelegate::CommitResources(HdChangeTracker *tracker)
|
||||
bool
|
||||
HdStRenderDelegate::IsSupported()
|
||||
{
|
||||
|
||||
@@ -4,6 +4,6 @@ call nuke dpcpp
|
||||
call nuke vcintrinsics
|
||||
call nuke openclheaders
|
||||
call nuke icdloader
|
||||
call nuke mp11
|
||||
call nuke emhash
|
||||
call nuke spirvheaders
|
||||
|
||||
|
||||
@@ -11,8 +11,8 @@ set CMAKE_GENERATOR_INSTANCE=c:\vs2019bt\
|
||||
set CMAKE_GENERATOR=Visual Studio 16 2019
|
||||
set NODEBUG=
|
||||
set TMPDIR=c:\t\
|
||||
set ROCM_PATH=c:\tools\hip
|
||||
set HIP_PATH=c:\tools\hip
|
||||
set ROCM_PATH=c:\tools\rocm\6.4
|
||||
set HIP_PATH=c:\tools\rocm\6.4
|
||||
set PERL=c:\db\build\downloads\perl\perl\bin\perl.exe
|
||||
set path=%path%;c:\db\build\downloads\perl\perl\bin\;
|
||||
if not exist c:\db\ (
|
||||
|
||||
@@ -28,7 +28,7 @@ echo # - Visual Studio 2010 X64 redist (required for the yaml binary)
|
||||
echo # - Git 2.38.0
|
||||
echo # - CMake 3.31.7
|
||||
echo # - Cuda 12.8.0
|
||||
echo # - HIP 6.3.42560
|
||||
echo # - HIP 6.4.50101
|
||||
echo #
|
||||
echo # Additionally this will also create and populate the following folders :
|
||||
echo #
|
||||
@@ -105,10 +105,15 @@ echo *********************************************************************
|
||||
mkdir c:\tools\cuda\12.8.0\
|
||||
start /wait c:\install\cuda_12.8.0_571.96_windows.exe
|
||||
|
||||
echo Obtaining Hip SDK 6.3.42560-881c2d702
|
||||
curl https://gpuopen.com/download/hiprt/HIP_SDK_6.3.42560-881c2d702_update.zip -o c:\install\HIP_SDK_6.3.42560-881c2d702_update.zip
|
||||
echo Installing Hip SDK 6.3.42560-881c2d702
|
||||
tar -zxvf c:\install\HIP_SDK_6.3.42560-881c2d702_update.zip -C c:\tools\
|
||||
echo Obtaining 7zr
|
||||
curl https://www.7-zip.org/a/7zr.exe -o c:\install\7zr.exe
|
||||
|
||||
echo Obtaining Hip SDK 6.4.50101-9a6572ae7
|
||||
curl https://download.amd.com/developer/eula/rocm-hub/AMD-Software-PRO-Edition-25.Q3-Win10-Win11-For-HIP.exe -o c:\install\AMD-Software-PRO-Edition-25.Q3-Win10-Win11-For-HIP.exe
|
||||
c:\install\7zr.exe x C:\install\AMD-Software-PRO-Edition-25.Q3-Win10-Win11-For-HIP.exe -oC:\install\
|
||||
mkdir C:\tools\rocm
|
||||
echo Installing Hip SDK 6.4.50101-9a6572ae7
|
||||
msiexec /i C:\install\Packages\Apps\ROCmSDKPackages\SDKCore\ROCm_SDK_Core.msi INSTALLDIR="C:\tools\rocm"
|
||||
|
||||
echo Cloning Blender repository
|
||||
mkdir c:\blendergit
|
||||
|
||||
63
build_files/cmake/Modules/FindRubberband.cmake
Normal file
63
build_files/cmake/Modules/FindRubberband.cmake
Normal file
@@ -0,0 +1,63 @@
|
||||
# SPDX-FileCopyrightText: 2025 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
# - Find Rubberband libraries
|
||||
# Find the Rubberband includes and libraries
|
||||
# This module defines
|
||||
# RUBBERBAND_INCLUDE_DIRS, where to find Rubberband headers, Set when
|
||||
# RUBBERBAND_INCLUDE_DIR is found.
|
||||
# RUBBERBAND_LIBRARIES, libraries to link against to use Rubberband.
|
||||
# RUBBERBAND_ROOT_DIR, The base directory to search for Rubberband.
|
||||
# This can also be an environment variable.
|
||||
# RUBBERBAND_FOUND, If false, do not try to use the Rubberband library.
|
||||
#
|
||||
# also defined, but not for general use are
|
||||
# RUBBERBAND_LIBRARY, where to find the Rubberband library.
|
||||
|
||||
if(DEFINED RUBBERBAND_ROOT_DIR)
|
||||
elseif(DEFINED ENV{RUBBERBAND_ROOT_DIR})
|
||||
set(RUBBERBAND_ROOT_DIR $ENV{RUBBERBAND_ROOT_DIR})
|
||||
else()
|
||||
set(RUBBERBAND_ROOT_DIR "")
|
||||
endif()
|
||||
|
||||
set(_rubberband_SEARCH_DIRS
|
||||
${RUBBERBAND_ROOT_DIR}
|
||||
)
|
||||
|
||||
find_path(RUBBERBAND_INCLUDE_DIR
|
||||
NAMES
|
||||
rubberband/RubberBandStretcher.h
|
||||
HINTS
|
||||
${_rubberband_SEARCH_DIRS}
|
||||
PATH_SUFFIXES
|
||||
include
|
||||
)
|
||||
|
||||
find_library(RUBBERBAND_LIBRARY
|
||||
NAMES
|
||||
rubberband
|
||||
HINTS
|
||||
${_rubberband_SEARCH_DIRS}
|
||||
PATH_SUFFIXES
|
||||
lib lib64
|
||||
)
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set RUBBERBAND_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
find_package(PackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Rubberband DEFAULT_MSG RUBBERBAND_LIBRARY RUBBERBAND_INCLUDE_DIR)
|
||||
|
||||
if(RUBBERBAND_FOUND)
|
||||
set(RUBBERBAND_LIBRARIES ${RUBBERBAND_LIBRARY})
|
||||
set(RUBBERBAND_INCLUDE_DIRS ${RUBBERBAND_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
|
||||
mark_as_advanced(
|
||||
RUBBERBAND_LIBRARY
|
||||
RUBBERBAND_INCLUDE_DIR
|
||||
)
|
||||
|
||||
unset(_rubberband_SEARCH_DIRS)
|
||||
@@ -158,13 +158,22 @@ find_package(OpenEXR REQUIRED)
|
||||
add_bundled_libraries(openexr/lib)
|
||||
add_bundled_libraries(imath/lib)
|
||||
|
||||
string(APPEND PLATFORM_CFLAGS " -pipe -funsigned-char -fno-strict-aliasing -ffp-contract=off")
|
||||
set(PLATFORM_LINKFLAGS
|
||||
"-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Cocoa \
|
||||
-framework Carbon -framework AudioUnit -framework AudioToolbox -framework CoreAudio -framework Metal \
|
||||
-framework QuartzCore"
|
||||
)
|
||||
|
||||
if(WITH_CODEC_FFMPEG)
|
||||
set(FFMPEG_ROOT_DIR ${LIBDIR}/ffmpeg)
|
||||
set(FFMPEG_FIND_COMPONENTS
|
||||
avcodec avdevice avformat avutil
|
||||
avcodec avdevice avfilter avformat avutil
|
||||
mp3lame ogg opus swresample swscale
|
||||
theora theoradec theoraenc vorbis vorbisenc
|
||||
vorbisfile vpx x264)
|
||||
# Frameworks required by libavfilter, using legacy macOS CGL
|
||||
string(APPEND PLATFORM_LINKFLAGS " -framework CoreImage -framework OpenGL")
|
||||
if(EXISTS ${LIBDIR}/ffmpeg/lib/libaom.a)
|
||||
list(APPEND FFMPEG_FIND_COMPONENTS aom)
|
||||
endif()
|
||||
@@ -192,11 +201,6 @@ if(SYSTEMSTUBS_LIBRARY)
|
||||
list(APPEND PLATFORM_LINKLIBS SystemStubs)
|
||||
endif()
|
||||
|
||||
string(APPEND PLATFORM_CFLAGS " -pipe -funsigned-char -fno-strict-aliasing -ffp-contract=off")
|
||||
set(PLATFORM_LINKFLAGS
|
||||
"-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Cocoa -framework Carbon -framework AudioUnit -framework AudioToolbox -framework CoreAudio -framework Metal -framework QuartzCore"
|
||||
)
|
||||
|
||||
if(WITH_OPENIMAGEDENOISE)
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
||||
# OpenImageDenoise uses BNNS from the Accelerate framework.
|
||||
@@ -367,6 +371,10 @@ if(WITH_MANIFOLD)
|
||||
find_package(manifold REQUIRED)
|
||||
endif()
|
||||
|
||||
if(WITH_RUBBERBAND)
|
||||
find_package(Rubberband REQUIRED)
|
||||
endif()
|
||||
|
||||
if(WITH_CYCLES AND WITH_CYCLES_PATH_GUIDING)
|
||||
find_package(openpgl QUIET)
|
||||
if(openpgl_FOUND)
|
||||
|
||||
@@ -298,7 +298,7 @@ if(WITH_CODEC_FFMPEG)
|
||||
# Override FFMPEG components to also include static library dependencies
|
||||
# included with precompiled libraries, and to ensure correct link order.
|
||||
set(FFMPEG_FIND_COMPONENTS
|
||||
avformat avcodec avdevice avutil swresample swscale
|
||||
avformat avdevice avfilter avcodec avutil swresample swscale
|
||||
sndfile
|
||||
FLAC
|
||||
mp3lame
|
||||
@@ -588,6 +588,17 @@ if(WITH_MANIFOLD)
|
||||
mark_as_advanced(manifold_DIR)
|
||||
endif()
|
||||
|
||||
if(WITH_RUBBERBAND)
|
||||
if(DEFINED LIBDIR)
|
||||
find_package_wrapper(Rubberband)
|
||||
else()
|
||||
# Use system libs
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(RUBBERBAND rubberband)
|
||||
endif()
|
||||
set_and_warn_library_found("Rubberband" RUBBERBAND_FOUND WITH_RUBBERBAND)
|
||||
endif()
|
||||
|
||||
if(WITH_CYCLES AND WITH_CYCLES_PATH_GUIDING)
|
||||
find_package_wrapper(openpgl)
|
||||
mark_as_advanced(openpgl_DIR)
|
||||
|
||||
@@ -904,6 +904,15 @@ if(WITH_OPENSUBDIV)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_RUBBERBAND)
|
||||
set(RUBBERBAND_FOUND TRUE)
|
||||
set(RUBBERBAND_INCLUDE_DIRS ${LIBDIR}/rubberband/include)
|
||||
set(RUBBERBAND_LIBRARIES
|
||||
optimized ${LIBDIR}/rubberband/lib/rubberband-static.lib
|
||||
debug ${LIBDIR}/rubberband/lib/rubberband-static_d.lib
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WITH_SDL)
|
||||
set(SDL ${LIBDIR}/sdl)
|
||||
set(SDL_INCLUDE_DIR ${SDL}/include)
|
||||
@@ -1256,7 +1265,11 @@ if(WITH_HARU)
|
||||
set(HARU_FOUND ON)
|
||||
set(HARU_ROOT_DIR ${LIBDIR}/haru)
|
||||
set(HARU_INCLUDE_DIRS ${HARU_ROOT_DIR}/include)
|
||||
set(HARU_LIBRARIES ${HARU_ROOT_DIR}/lib/libhpdfs.lib)
|
||||
if(EXISTS ${HARU_ROOT_DIR}/lib/hpdf.lib) # blender 5.0+
|
||||
set(HARU_LIBRARIES ${HARU_ROOT_DIR}/lib/hpdf.lib)
|
||||
else()
|
||||
set(HARU_LIBRARIES ${HARU_ROOT_DIR}/lib/libhpdfs.lib)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_VULKAN_BACKEND)
|
||||
|
||||
2
extern/audaspace/blender_config.cmake
vendored
2
extern/audaspace/blender_config.cmake
vendored
@@ -14,7 +14,7 @@ if(DEFINED WITH_FFTW3 AND WITH_FFTW3) # "Build With FFTW"
|
||||
set(FFTW_LIBRARY ${FFTW3_LIBRARIES})
|
||||
endif()
|
||||
set(WITH_LIBSNDFILE ${WITH_CODEC_SNDFILE}) # "Build With LibSndFile"
|
||||
set(WITH_RUBBERBAND FALSE) # "Build With Rubber Band Library"
|
||||
set(WITH_RUBBERBAND ${WITH_RUBBERBAND}) # "Build With Rubber Band Library"
|
||||
set(SEPARATE_C FALSE) # "Build C Binding as separate library"
|
||||
set(PLUGIN_COREAUDIO FALSE) # "Build CoreAudio Plugin"
|
||||
set(PLUGIN_FFMPEG FALSE) # "Build FFMPEG Plugin"
|
||||
|
||||
@@ -1354,7 +1354,7 @@ static const int lowest_supported_driver_version_win = 1016554;
|
||||
* This information is returned by `ocloc query OCL_DRIVER_VERSION`. */
|
||||
static const int lowest_supported_driver_version_neo = 31896;
|
||||
# else
|
||||
static const int lowest_supported_driver_version_neo = 31740;
|
||||
static const int lowest_supported_driver_version_neo = 34666;
|
||||
# endif
|
||||
|
||||
int parse_driver_build_version(const sycl::device &device)
|
||||
|
||||
Submodule lib/linux_x64 updated: 728b8641b6...9897062edb
Submodule lib/macos_arm64 updated: fb94c1b78b...58078e56ac
Submodule lib/windows_arm64 updated: 5fba888df6...43203f73a3
Submodule lib/windows_x64 updated: d5a0d6a659...72cdb679df
@@ -62,12 +62,8 @@ if(WITH_HARU)
|
||||
${HARU_INCLUDE_DIRS}
|
||||
)
|
||||
list(APPEND LIB
|
||||
${HARU_LIBRARIES}
|
||||
|
||||
# Haru needs `TIFFFaxBlackCodes` & `TIFFFaxWhiteCodes` symbols from TIFF.
|
||||
# Can be removed with Haru 2.4.0. They should be shipping with their own
|
||||
# Fax codes defined by default from that version onward.
|
||||
${TIFF_LIBRARY}
|
||||
PRIVATE ${HARU_LIBRARIES}
|
||||
PRIVATE ${TIFF_LIBRARY} # needed for TIFFFaxBlackCodes in older (<5.0) lib folders
|
||||
)
|
||||
add_definitions(-DWITH_HARU)
|
||||
endif()
|
||||
|
||||
@@ -1420,6 +1420,13 @@ elseif(WIN32)
|
||||
|
||||
# Filenames change slightly between FFMPEG versions check both 6.0 and fallback to 5.0
|
||||
# to ease the transition between versions.
|
||||
if(EXISTS "${LIBDIR}/ffmpeg/lib/avfilter-10.dll")
|
||||
windows_install_shared_manifest(
|
||||
FILES
|
||||
${LIBDIR}/ffmpeg/lib/avfilter-10.dll
|
||||
ALL
|
||||
)
|
||||
endif()
|
||||
if(EXISTS "${LIBDIR}/ffmpeg/lib/avcodec-61.dll")
|
||||
windows_install_shared_manifest(
|
||||
FILES
|
||||
|
||||
BIN
tests/files/sequence_editing/video_output/reference/video_output_p3_10bit_aces_mov.png
(Stored with Git LFS)
BIN
tests/files/sequence_editing/video_output/reference/video_output_p3_10bit_aces_mov.png
(Stored with Git LFS)
Binary file not shown.
Reference in New Issue
Block a user