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:
Thomas Dinges
2025-10-02 18:34:11 +02:00
committed by Thomas Dinges
parent 61cc3af675
commit 66224d69b0
69 changed files with 1008 additions and 1595 deletions

View File

@@ -417,6 +417,13 @@ Build with external audaspace library installed on the system \
mark_as_advanced(WITH_AUDASPACE) mark_as_advanced(WITH_AUDASPACE)
mark_as_advanced(WITH_SYSTEM_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) set_and_warn_dependency(WITH_AUDASPACE WITH_SYSTEM_AUDASPACE OFF)
if(WITH_GHOST_X11) if(WITH_GHOST_X11)

View File

@@ -91,6 +91,8 @@ if(NOT APPLE)
include(cmake/hiprt.cmake) include(cmake/hiprt.cmake)
include(cmake/dpcpp.cmake) include(cmake/dpcpp.cmake)
include(cmake/dpcpp_deps.cmake) include(cmake/dpcpp_deps.cmake)
include(cmake/emhash.cmake)
include(cmake/parallelhashmap.cmake)
if(NOT WIN32) if(NOT WIN32)
include(cmake/igc.cmake) include(cmake/igc.cmake)
include(cmake/gmmlib.cmake) include(cmake/gmmlib.cmake)
@@ -134,6 +136,8 @@ endif()
if(NOT WIN32 OR ENABLE_MSYS2) if(NOT WIN32 OR ENABLE_MSYS2)
include(cmake/gmp.cmake) include(cmake/gmp.cmake)
include(cmake/openjpeg.cmake) include(cmake/openjpeg.cmake)
include(cmake/sqlite.cmake)
include(cmake/fftw.cmake)
if(NOT WIN32 OR BUILD_MODE STREQUAL Release) if(NOT WIN32 OR BUILD_MODE STREQUAL Release)
include(cmake/openimagedenoise.cmake) include(cmake/openimagedenoise.cmake)
include(cmake/lame.cmake) include(cmake/lame.cmake)
@@ -146,7 +150,6 @@ if(NOT WIN32 OR ENABLE_MSYS2)
include(cmake/x265.cmake) include(cmake/x265.cmake)
include(cmake/aom.cmake) include(cmake/aom.cmake)
include(cmake/ffmpeg.cmake) include(cmake/ffmpeg.cmake)
include(cmake/fftw.cmake)
include(cmake/flac.cmake) include(cmake/flac.cmake)
include(cmake/sndfile.cmake) include(cmake/sndfile.cmake)
if(UNIX) if(UNIX)
@@ -162,7 +165,6 @@ if(UNIX)
include(cmake/bzip2.cmake) include(cmake/bzip2.cmake)
include(cmake/ffi.cmake) include(cmake/ffi.cmake)
include(cmake/lzma.cmake) include(cmake/lzma.cmake)
include(cmake/sqlite.cmake)
endif() endif()
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
@@ -182,6 +184,7 @@ include(cmake/spirv-reflect.cmake)
include(cmake/pybind11.cmake) include(cmake/pybind11.cmake)
include(cmake/nanobind.cmake) include(cmake/nanobind.cmake)
include(cmake/manifold.cmake) include(cmake/manifold.cmake)
include(cmake/rubberband.cmake)
# Keep these last. # Keep these last.
include(cmake/deps_html.cmake) include(cmake/deps_html.cmake)
include(cmake/cve_check.cmake) include(cmake/cve_check.cmake)

View File

@@ -158,10 +158,11 @@ download_source(DPCPP)
download_source(VCINTRINSICS) download_source(VCINTRINSICS)
download_source(OPENCLHEADERS) download_source(OPENCLHEADERS)
download_source(ICDLOADER) download_source(ICDLOADER)
download_source(MP11) download_source(EMHASH)
download_source(DPCPP_SPIRV_HEADERS) download_source(DPCPP_SPIRV_HEADERS)
download_source(UNIFIED_RUNTIME) download_source(UNIFIED_RUNTIME)
download_source(UNIFIED_MEMORY_FRAMEWORK) download_source(UNIFIED_MEMORY_FRAMEWORK)
download_source(PARALLEL_HASHMAP)
download_source(IGC) download_source(IGC)
download_source(IGC_LLVM) download_source(IGC_LLVM)
download_source(IGC_OPENCL_CLANG) download_source(IGC_OPENCL_CLANG)
@@ -189,3 +190,4 @@ download_source(DEFLATE)
download_source(HIPRT) download_source(HIPRT)
download_source(NANOBIND) download_source(NANOBIND)
download_source(MANIFOLD) download_source(MANIFOLD)
download_source(RUBBERBAND)

View File

@@ -39,7 +39,8 @@ set(DPCPP_EXTRA_ARGS
-DLLVMGenXIntrinsics_SOURCE_DIR=${BUILD_DIR}/vcintrinsics/src/external_vcintrinsics/ -DLLVMGenXIntrinsics_SOURCE_DIR=${BUILD_DIR}/vcintrinsics/src/external_vcintrinsics/
-DOpenCL_HEADERS=file://${PACKAGE_DIR}/${OPENCLHEADERS_FILE} -DOpenCL_HEADERS=file://${PACKAGE_DIR}/${OPENCLHEADERS_FILE}
-DOpenCL_LIBRARY_SRC=file://${PACKAGE_DIR}/${ICDLOADER_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_LIBRARY=${LIBDIR}/level-zero/lib/${LIBPREFIX}ze_loader${SHAREDLIBEXT}
-DLEVEL_ZERO_INCLUDE_DIR=${LIBDIR}/level-zero/include/level_zero -DLEVEL_ZERO_INCLUDE_DIR=${LIBDIR}/level-zero/include/level_zero
-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${BUILD_DIR}/dpcpp_spirvheaders/src/external_dpcpp_spirvheaders/ -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 -DSYCL_UMF_DISABLE_HWLOC=ON
-DUMF_DISABLE_HWLOC=ON -DUMF_DISABLE_HWLOC=ON
-DUMF_BUILD_SHARED_LIBRARY=OFF -DUMF_BUILD_SHARED_LIBRARY=OFF
-DSYCL_ENABLE_XPTI_TRACING=OFF -DSYCL_ENABLE_XPTI_TRACING=ON
-DSYCL_INCLUDE_TESTS=OFF -DSYCL_INCLUDE_TESTS=OFF
-DUR_ENABLE_TRACING=OFF -DUR_ENABLE_TRACING=ON
-DUR_BUILD_TOOLS=OFF -DXPTIFW_PARALLEL_HASHMAP_HEADERS=${LIBDIR}/parallelhashmap/include
# Below here is copied from an invocation of buildbot/config.py # Below here is copied from an invocation of buildbot/config.py
-DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_ASSERTIONS=ON
-DLLVM_TARGETS_TO_BUILD=X86 -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_SYCL_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/sycl
-DLLVM_EXTERNAL_LLVM_SPIRV_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/llvm-spirv -DLLVM_EXTERNAL_LLVM_SPIRV_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/llvm-spirv
-DLLVM_EXTERNAL_XPTI_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/xpti -DLLVM_EXTERNAL_XPTI_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/xpti
-DXPTI_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/xpti -DXPTI_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/xpti
-DLLVM_EXTERNAL_XPTIFW_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/xptifw -DLLVM_EXTERNAL_XPTIFW_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/xptifw
-DLLVM_EXTERNAL_LIBDEVICE_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/libdevice -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_TARGETS_TO_BUILD=
-DLIBCLC_GENERATE_REMANGLED_VARIANTS=OFF -DLIBCLC_GENERATE_REMANGLED_VARIANTS=OFF
-DSYCL_BUILD_PI_HIP_PLATFORM=AMD -DSYCL_BUILD_PI_HIP_PLATFORM=AMD
@@ -136,12 +137,13 @@ add_dependencies(
external_vcintrinsics external_vcintrinsics
external_openclheaders external_openclheaders
external_icdloader external_icdloader
external_mp11 external_emhash
external_level-zero external_level-zero
external_dpcpp_spirvheaders external_dpcpp_spirvheaders
external_unifiedruntime external_unifiedruntime
external_unifiedmemoryframework external_unifiedmemoryframework
external_zstd external_zstd
external_parallelhashmap
) )
if(WIN32) if(WIN32)
@@ -162,6 +164,7 @@ else()
harvest(external_dpcpp dpcpp/bin dpcpp/bin "*") harvest(external_dpcpp dpcpp/bin dpcpp/bin "*")
harvest(external_dpcpp dpcpp/include dpcpp/include "*") harvest(external_dpcpp dpcpp/include dpcpp/include "*")
harvest(external_dpcpp dpcpp/lib dpcpp/lib "libsycl*") 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 dpcpp/lib "libur*")
harvest(external_dpcpp dpcpp/lib/clang dpcpp/lib/clang "*") harvest(external_dpcpp dpcpp/lib/clang dpcpp/lib/clang "*")
endif() endif()

View File

@@ -42,16 +42,6 @@ ExternalProject_Add(external_icdloader
INSTALL_COMMAND echo . 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 ExternalProject_Add(external_dpcpp_spirvheaders
URL file://${PACKAGE_DIR}/${DPCPP_SPIRV_HEADERS_FILE} URL file://${PACKAGE_DIR}/${DPCPP_SPIRV_HEADERS_FILE}
URL_HASH ${DPCPP_SPIRV_HEADERS_HASH_TYPE}=${DPCPP_SPIRV_HEADERS_HASH} URL_HASH ${DPCPP_SPIRV_HEADERS_HASH_TYPE}=${DPCPP_SPIRV_HEADERS_HASH}

View File

@@ -139,6 +139,9 @@ if(WIN32)
COMMAND ${CMAKE_COMMAND} -E copy COMMAND ${CMAKE_COMMAND} -E copy
${LIBDIR}/embree/lib/embree4_d.lib ${LIBDIR}/embree/lib/embree4_d.lib
${HARVEST_TARGET}/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 DEPENDEES install
) )

View File

@@ -20,6 +20,7 @@ set(EMBREE_EXTRA_ARGS
-DEMBREE_TASKING_SYSTEM=TBB -DEMBREE_TASKING_SYSTEM=TBB
-DEMBREE_TBB_ROOT=${LIBDIR}/tbb -DEMBREE_TBB_ROOT=${LIBDIR}/tbb
-DTBB_ROOT=${LIBDIR}/tbb -DTBB_ROOT=${LIBDIR}/tbb
-DCOMPILER_HAS_SYCL_SUPPORT=OFF
) )
set(EMBREE_EXTRA_ARGS set(EMBREE_EXTRA_ARGS

View 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}
)

View File

@@ -11,6 +11,7 @@ ExternalProject_Add(external_ffi
CONFIGURE_COMMAND ${CONFIGURE_ENV} && CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
cd ${BUILD_DIR}/ffi/src/external_ffi/ && cd ${BUILD_DIR}/ffi/src/external_ffi/ &&
${CONFIGURE_COMMAND} --prefix=${LIBDIR}/ffi ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/ffi
--disable-multi-os-directory
--enable-shared=no --enable-shared=no
--enable-static=yes --enable-static=yes
--with-pic --with-pic
@@ -24,11 +25,8 @@ ExternalProject_Add(external_ffi
cd ${BUILD_DIR}/ffi/src/external_ffi/ && cd ${BUILD_DIR}/ffi/src/external_ffi/ &&
make install make install
PATCH_COMMAND ${PATCH_CMD} -p 0 -d PATCH_COMMAND ${PATCH_CMD} -p 1 -d
${BUILD_DIR}/ffi/src/external_ffi <
${PATCH_DIR}/ffi.diff &&
# Fix compilation errors on Apple Clang >= 17, remove when FFI is updated beyond 3.4.7, see PR #136934 for details. # 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 < ${BUILD_DIR}/ffi/src/external_ffi <
${PATCH_DIR}/ffi_apple_clang_17.diff ${PATCH_DIR}/ffi_apple_clang_17.diff

View File

@@ -163,7 +163,6 @@ ExternalProject_Add(external_ffmpeg
cd ${BUILD_DIR}/ffmpeg/src/external_ffmpeg/ && cd ${BUILD_DIR}/ffmpeg/src/external_ffmpeg/ &&
${FFMPEG_ENV} ${CONFIGURE_COMMAND_NO_TARGET} ${FFMPEG_EXTRA_FLAGS} ${FFMPEG_ENV} ${CONFIGURE_COMMAND_NO_TARGET} ${FFMPEG_EXTRA_FLAGS}
--disable-lzma --disable-lzma
--disable-avfilter
--disable-vdpau --disable-vdpau
--disable-bzlib --disable-bzlib
--disable-libgsm --disable-libgsm

View File

@@ -79,13 +79,15 @@ if(WIN32)
DEPENDEES install DEPENDEES install
) )
endif() endif()
else() endif()
add_custom_target(external_fftw)
add_dependencies( add_custom_target(external_fftw)
add_dependencies(
external_fftw external_fftw
external_fftw3_double external_fftw3_double
external_fftw3_float) external_fftw3_float)
if(NOT WIN32)
harvest(external_fftw3 fftw3/include fftw3/include "*.h") harvest(external_fftw3 fftw3/include fftw3/include "*.h")
harvest(external_fftw3 fftw3/lib fftw3/lib "*.a") harvest(external_fftw3 fftw3/lib fftw3/lib "*.a")
endif() endif()

View File

@@ -3,8 +3,7 @@
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
set(HARU_EXTRA_ARGS set(HARU_EXTRA_ARGS
-DLIBHPDF_SHARED=OFF -DBUILD_SHARED_LIBS=OFF
-DLIBHPDF_STATIC=ON
-DLIBHPDF_EXAMPLES=OFF -DLIBHPDF_EXAMPLES=OFF
-DLIBHPDF_ENABLE_EXCEPTIONS=ON -DLIBHPDF_ENABLE_EXCEPTIONS=ON
) )
@@ -15,10 +14,6 @@ ExternalProject_Add(external_haru
URL_HASH ${HARU_HASH_TYPE}=${HARU_HASH} URL_HASH ${HARU_HASH_TYPE}=${HARU_HASH}
PREFIX ${BUILD_DIR}/haru PREFIX ${BUILD_DIR}/haru
PATCH_COMMAND ${PATCH_CMD} -p 1 -d
${BUILD_DIR}/haru/src/external_haru <
${PATCH_DIR}/haru.diff
CMAKE_ARGS CMAKE_ARGS
-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=${LIBDIR}/haru -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=${LIBDIR}/haru
${DEFAULT_CMAKE_FLAGS} ${HARU_EXTRA_ARGS} ${DEFAULT_CMAKE_FLAGS} ${HARU_EXTRA_ARGS}
@@ -33,8 +28,8 @@ if(WIN32)
${LIBDIR}/haru/include ${LIBDIR}/haru/include
${HARVEST_TARGET}/haru/include ${HARVEST_TARGET}/haru/include
COMMAND ${CMAKE_COMMAND} -E copy COMMAND ${CMAKE_COMMAND} -E copy
${LIBDIR}/haru/lib/libhpdfs.lib ${LIBDIR}/haru/lib/hpdf.lib
${HARVEST_TARGET}/haru/lib/libhpdfs.lib ${HARVEST_TARGET}/haru/lib/hpdf.lib
DEPENDEES install DEPENDEES install
) )

View File

@@ -51,13 +51,7 @@ ExternalProject_Add(external_igc_llvm
${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0004-OpenCL-Allow-undefining-header-only-macros.patch && ${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0004-OpenCL-Allow-undefining-header-only-macros.patch &&
${PATCH_CMD} -p 1 -d ${PATCH_CMD} -p 1 -d
${IGC_LLVM_SOURCE_DIR} < ${IGC_LLVM_SOURCE_DIR} <
${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0005-Enable-use-of-GNU-C-extension.patch && ${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
) )
add_dependencies( add_dependencies(
external_igc_llvm external_igc_llvm

View File

@@ -65,6 +65,7 @@ ExternalProject_Add(external_ispc
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH ${ISPC_HASH_TYPE}=${ISPC_HASH} URL_HASH ${ISPC_HASH_TYPE}=${ISPC_HASH}
PREFIX ${BUILD_DIR}/ispc PREFIX ${BUILD_DIR}/ispc
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
PATCH_COMMAND ${PATCH_CMD} -p 1 -d PATCH_COMMAND ${PATCH_CMD} -p 1 -d
${BUILD_DIR}/ispc/src/external_ispc < ${BUILD_DIR}/ispc/src/external_ispc <

View File

@@ -8,6 +8,7 @@ set(OCLOC_EXTRA_ARGS
-DNEO_CURRENT_PLATFORMS_SUPPORT=1 -DNEO_CURRENT_PLATFORMS_SUPPORT=1
-DNEO_LEGACY_PLATFORMS_SUPPORT=0 -DNEO_LEGACY_PLATFORMS_SUPPORT=0
-DBUILD_WITH_L0=0 -DBUILD_WITH_L0=0
-DNEO_BUILD_UNVERSIONED_OCLOC=TRUE
-DIGC_DIR=${LIBDIR}/igc -DIGC_DIR=${LIBDIR}/igc
-DGMM_DIR=${LIBDIR}/gmmlib -DGMM_DIR=${LIBDIR}/gmmlib
) )
@@ -24,10 +25,6 @@ ExternalProject_Add(external_ocloc
${OCLOC_EXTRA_ARGS} ${OCLOC_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/ocloc INSTALL_DIR ${LIBDIR}/ocloc
PATCH_COMMAND ${PATCH_CMD} -p 1 -d
${BUILD_DIR}/ocloc/src/external_ocloc/ <
${PATCH_DIR}/ocloc.diff
) )
add_dependencies( add_dependencies(

View File

@@ -41,19 +41,11 @@ if(APPLE)
) )
endif() endif()
if(BLENDER_PLATFORM_ARM) if(BLENDER_PLATFORM_ARM AND NOT WIN32)
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 set(OPENCOLORIO_EXTRA_ARGS
${OPENCOLORIO_EXTRA_ARGS} ${OPENCOLORIO_EXTRA_ARGS}
-DOCIO_USE_SSE=OFF -DOCIO_USE_SSE=OFF
) )
endif()
endif() endif()
if(WIN32) if(WIN32)

View File

@@ -31,10 +31,6 @@ ExternalProject_Add(external_openexr
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR} CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
PREFIX ${BUILD_DIR}/openexr PREFIX ${BUILD_DIR}/openexr
PATCH_COMMAND ${PATCH_CMD} -p 1 -d
${BUILD_DIR}/openexr/src/external_openexr <
${PATCH_DIR}/openexr_1986.diff
CMAKE_ARGS CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/openexr -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openexr
${DEFAULT_CMAKE_FLAGS} ${DEFAULT_CMAKE_FLAGS}

View File

@@ -46,6 +46,15 @@ if(WIN32 AND NOT BLENDER_PLATFORM_ARM)
-DCMAKE_C_COMPILER=${LIBDIR}/dpcpp/bin/clang.exe -DCMAKE_C_COMPILER=${LIBDIR}/dpcpp/bin/clang.exe
-DCMAKE_DEBUG_POSTFIX=_d -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} set(OIDN_CMAKE_FLAGS ${DEFAULT_CLANG_CMAKE_FLAGS}
-DCMAKE_CXX_COMPILER=${LIBDIR}/dpcpp/bin/clang++.exe -DCMAKE_CXX_COMPILER=${LIBDIR}/dpcpp/bin/clang++.exe
-DCMAKE_C_COMPILER=${LIBDIR}/dpcpp/bin/clang.exe -DCMAKE_C_COMPILER=${LIBDIR}/dpcpp/bin/clang.exe

View File

@@ -12,6 +12,7 @@ if(UNIX AND NOT APPLE)
# This causes linking to static pthread libraries which gives link errors. # This causes linking to static pthread libraries which gives link errors.
# Since we manually specify library paths it should static link other libs. # Since we manually specify library paths it should static link other libs.
set(OPENIMAGEIO_LINKSTATIC -DLINKSTATIC=OFF) set(OPENIMAGEIO_LINKSTATIC -DLINKSTATIC=OFF)
set(OIIO_SIMD_FLAGS -DUSE_SIMD=sse4.2)
else() else()
set(OPENIMAGEIO_LINKSTATIC -DLINKSTATIC=ON) set(OPENIMAGEIO_LINKSTATIC -DLINKSTATIC=ON)
endif() endif()
@@ -20,7 +21,7 @@ if(WIN32)
if(BLENDER_PLATFORM_ARM) if(BLENDER_PLATFORM_ARM)
set(OIIO_SIMD_FLAGS -DUSE_SIMD=0) set(OIIO_SIMD_FLAGS -DUSE_SIMD=0)
else() else()
set(OIIO_SIMD_FLAGS -DUSE_SIMD=sse2) set(OIIO_SIMD_FLAGS -DUSE_SIMD=sse4.2)
endif() endif()
set(OPENJPEG_POSTFIX _msvc) set(OPENJPEG_POSTFIX _msvc)
if(BUILD_MODE STREQUAL Debug) if(BUILD_MODE STREQUAL Debug)
@@ -133,7 +134,7 @@ ExternalProject_Add(external_openimageio
${PATCH_DIR}/openimageio.diff && ${PATCH_DIR}/openimageio.diff &&
${PATCH_CMD} -p 1 -N -d ${PATCH_CMD} -p 1 -N -d
${BUILD_DIR}/openimageio/src/external_openimageio/ < ${BUILD_DIR}/openimageio/src/external_openimageio/ <
${PATCH_DIR}/oiio_windows_arm64.diff ${PATCH_DIR}/openimageio_png_cicp_4746.diff
CMAKE_ARGS CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/openimageio -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openimageio
${DEFAULT_CMAKE_FLAGS} ${DEFAULT_CMAKE_FLAGS}

View File

@@ -47,10 +47,6 @@ else()
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH ${OPENJPEG_HASH_TYPE}=${OPENJPEG_HASH} 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 PREFIX ${BUILD_DIR}/openjpeg_msvc
CMAKE_ARGS CMAKE_ARGS

View 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}
)

View File

@@ -30,11 +30,13 @@ if(WIN32)
set(PYTHON_EXTERNALS_FOLDER ${BUILD_DIR}/python/src/external_python/externals) set(PYTHON_EXTERNALS_FOLDER ${BUILD_DIR}/python/src/external_python/externals)
set(ZLIB_SOURCE_FOLDER ${BUILD_DIR}/zlib/src/external_zlib) set(ZLIB_SOURCE_FOLDER ${BUILD_DIR}/zlib/src/external_zlib)
set(SSL_SOURCE_FOLDER ${BUILD_DIR}/ssl/src/external_ssl) 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) set(DOWNLOADS_EXTERNALS_FOLDER ${DOWNLOAD_DIR}/externals)
cmake_to_dos_path(${PYTHON_EXTERNALS_FOLDER} PYTHON_EXTERNALS_FOLDER_DOS) 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(${ZLIB_SOURCE_FOLDER} ZLIB_SOURCE_FOLDER_DOS)
cmake_to_dos_path(${SSL_SOURCE_FOLDER} SSL_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) cmake_to_dos_path(${DOWNLOADS_EXTERNALS_FOLDER} DOWNLOADS_EXTERNALS_FOLDER_DOS)
ExternalProject_Add(external_python ExternalProject_Add(external_python
@@ -50,6 +52,7 @@ if(WIN32)
PATCH_COMMAND mkdir ${PYTHON_EXTERNALS_FOLDER_DOS} && 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}\\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}\\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 ${CMAKE_COMMAND} -E copy
${ZLIB_SOURCE_FOLDER}/../external_zlib-build/zconf.h ${ZLIB_SOURCE_FOLDER}/../external_zlib-build/zconf.h
${PYTHON_EXTERNALS_FOLDER}/zlib-1.3.1/zconf.h && ${PYTHON_EXTERNALS_FOLDER}/zlib-1.3.1/zconf.h &&
@@ -195,6 +198,7 @@ add_dependencies(
external_python external_python
external_ssl external_ssl
external_zlib external_zlib
external_sqlite
) )
if(UNIX) if(UNIX)
add_dependencies( add_dependencies(
@@ -202,7 +206,6 @@ if(UNIX)
external_bzip2 external_bzip2
external_ffi external_ffi
external_lzma external_lzma
external_sqlite
) )
endif() endif()

View 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()

View File

@@ -5,6 +5,21 @@
set(SQLITE_CONFIGURE_ENV echo .) set(SQLITE_CONFIGURE_ENV echo .)
set(SQLITE_CONFIGURATION_ARGS) 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(UNIX)
if(NOT APPLE) if(NOT APPLE)
set(SQLITE_LDFLAGS -Wl,--as-needed) set(SQLITE_LDFLAGS -Wl,--as-needed)
@@ -21,7 +36,6 @@ if(UNIX)
-DSQLITE_ENABLE_DBSTAT_VTAB \ -DSQLITE_ENABLE_DBSTAT_VTAB \
-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1 \ -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1 \
-DSQLITE_ENABLE_LOAD_EXTENSION \ -DSQLITE_ENABLE_LOAD_EXTENSION \
-DSQLITE_ENABLE_JSON1 \
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS \ -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
-DSQLITE_THREADSAFE=1 \ -DSQLITE_THREADSAFE=1 \
-DSQLITE_ENABLE_FTS3_TOKENIZER=1 \ -DSQLITE_ENABLE_FTS3_TOKENIZER=1 \
@@ -41,20 +55,11 @@ if(UNIX)
${SQLITE_CONFIGURATION_ARGS} ${SQLITE_CONFIGURATION_ARGS}
--enable-threadsafe --enable-threadsafe
--enable-load-extension --enable-load-extension
--enable-json1
--enable-fts4 --enable-fts4
--enable-fts5 --enable-fts5
# While building `tcl` is harmless, it causes problems when the install step --disable-shared
# 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
) )
endif() ExternalProject_Add(external_sqlite
ExternalProject_Add(external_sqlite
URL file://${PACKAGE_DIR}/${SQLITE_FILE} URL file://${PACKAGE_DIR}/${SQLITE_FILE}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH ${SQLITE_HASH_TYPE}=${SQLITE_HASH} URL_HASH ${SQLITE_HASH_TYPE}=${SQLITE_HASH}
@@ -73,4 +78,5 @@ ExternalProject_Add(external_sqlite
make install make install
INSTALL_DIR ${LIBDIR}/sqlite INSTALL_DIR ${LIBDIR}/sqlite
) )
endif()

View File

@@ -24,6 +24,7 @@ if(WIN32)
if(BUILD_MODE STREQUAL Debug) if(BUILD_MODE STREQUAL Debug)
list(APPEND USD_PLATFORM_FLAGS -DPXR_USE_DEBUG_PYTHON=ON) 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 -DOPENVDB_LIBRARY=${LIBDIR}/openvdb/lib/openvdb_d.lib)
list(APPEND USD_PLATFORM_FLAGS -DCMAKE_MSVC_DEBUG_INFORMATION_FORMAT='')
endif() endif()
elseif(UNIX) elseif(UNIX)
set(USD_PLATFORM_FLAGS set(USD_PLATFORM_FLAGS
@@ -45,11 +46,6 @@ elseif(UNIX)
list(APPEND USD_PLATFORM_FLAGS list(APPEND USD_PLATFORM_FLAGS
-DCMAKE_SHARED_LINKER_FLAGS=${USD_SHARED_LINKER_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()
endif() endif()
@@ -103,6 +99,7 @@ set(USD_EXTRA_ARGS
-DPXR_BUILD_USD_TOOLS=OFF -DPXR_BUILD_USD_TOOLS=OFF
-DCMAKE_DEBUG_POSTFIX=_d -DCMAKE_DEBUG_POSTFIX=_d
-DBUILD_SHARED_LIBS=ON -DBUILD_SHARED_LIBS=ON
-DTBB_DIR=${LIBDIR}/tbb/lib/cmake/TBB
-DTBB_INCLUDE_DIRS=${LIBDIR}/tbb/include -DTBB_INCLUDE_DIRS=${LIBDIR}/tbb/include
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${SHAREDLIBEXT} -DTBB_LIBRARIES=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${SHAREDLIBEXT}
-DTBB_LIBRARIES_DEBUG=${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 ^^ LIST_SEPARATOR ^^
PATCH_COMMAND PATCH_COMMAND
${USD_EXTRA_PATCHES}
${PATCH_CMD} -p 1 -d ${PATCH_CMD} -p 1 -d
${BUILD_DIR}/usd/src/external_usd < ${BUILD_DIR}/usd/src/external_usd <
${PATCH_DIR}/usd.diff && ${PATCH_DIR}/usd.diff &&
@@ -144,24 +140,18 @@ ExternalProject_Add(external_usd
${PATCH_CMD} -p 1 -d ${PATCH_CMD} -p 1 -d
${BUILD_DIR}/usd/src/external_usd < ${BUILD_DIR}/usd/src/external_usd <
${PATCH_DIR}/usd_ctor.diff && ${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 ${PATCH_CMD} -p 1 -d
${BUILD_DIR}/usd/src/external_usd < ${BUILD_DIR}/usd/src/external_usd <
${PATCH_DIR}/usd_noboost.diff && ${PATCH_DIR}/usd_noboost.diff &&
${PATCH_CMD} -p 1 -d ${PATCH_CMD} -p 1 -d
${BUILD_DIR}/usd/src/external_usd < ${BUILD_DIR}/usd/src/external_usd <
${PATCH_DIR}/usd_no_vulkan_sdk.diff && ${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 ${PATCH_CMD} -p 1 -d
${BUILD_DIR}/usd/src/external_usd < ${BUILD_DIR}/usd/src/external_usd <
${PATCH_DIR}/usd_storm_vulkan.diff && ${PATCH_DIR}/usd_storm_vulkan.diff
${PATCH_CMD} -p 1 -d
${BUILD_DIR}/usd/src/external_usd <
${PATCH_DIR}/usd_3666_vulkan_amd.diff
CMAKE_ARGS CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/usd -DCMAKE_INSTALL_PREFIX=${LIBDIR}/usd
-Wno-dev -Wno-dev

View File

@@ -10,7 +10,7 @@
set(RELEASE_GCC_VERSION 11.2) set(RELEASE_GCC_VERSION 11.2)
set(RELEASE_CUDA_VERSION 12.8) set(RELEASE_CUDA_VERSION 12.8)
set(RELEASE_HIP_VERSION 6.3) set(RELEASE_HIP_VERSION 6.4)
# Libraries # Libraries
# #
@@ -61,10 +61,10 @@ Copyright (c) 2015, Archontis Politis.
Copyright (c) 2019, Christopher Robinson. Copyright (c) 2019, Christopher Robinson.
]=]) ]=])
set(PNG_VERSION 1.6.43) set(PNG_VERSION 1.6.50)
set(PNG_NAME libpng) set(PNG_NAME libpng)
set(PNG_URI http://prdownloads.sourceforge.net/libpng/libpng-${PNG_VERSION}.tar.xz) 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_HASH_TYPE SHA256)
set(PNG_FILE libpng-${PNG_VERSION}.tar.xz) set(PNG_FILE libpng-${PNG_VERSION}.tar.xz)
set(PNG_CPE "cpe:2.3:a:libpng:libpng:${PNG_VERSION}:*:*:*:*:*:*:*") 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_LICENSE SPDX:MIT)
set(DEFLATE_COPYRIGHT "Copyright 2016 Eric Biggers") 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_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_HASH_TYPE MD5)
set(OPENEXR_FILE openexr-${OPENEXR_VERSION}.tar.gz) set(OPENEXR_FILE openexr-${OPENEXR_VERSION}.tar.gz)
set(OPENEXR_CPE "cpe:2.3:a:openexr:openexr:${OPENEXR_VERSION}:*:*:*:*:*:*:*") set(OPENEXR_CPE "cpe:2.3:a:openexr:openexr:${OPENEXR_VERSION}:*:*:*:*:*:*:*")
@@ -163,9 +163,9 @@ else()
set(OPENEXR_VERSION_POSTFIX) set(OPENEXR_VERSION_POSTFIX)
endif() 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_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_HASH_TYPE MD5)
set(FREETYPE_FILE freetype-${FREETYPE_VERSION}.tar.gz) set(FREETYPE_FILE freetype-${FREETYPE_VERSION}.tar.gz)
set(FREETYPE_CPE "cpe:2.3:a:freetype:freetype:${FREETYPE_VERSION}:*:*:*:*:*:*:*") 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_LICENSE SPDX:Zlib)
set(SDL_COPYRIGHT "Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>") 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_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_HASH_TYPE MD5)
set(OPENCOLORIO_FILE OpenColorIO-${OPENCOLORIO_VERSION}.tar.gz) set(OPENCOLORIO_FILE OpenColorIO-${OPENCOLORIO_VERSION}.tar.gz)
set(OPENCOLORIO_NAME OpenColorIO) 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. 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_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_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_HASH_TYPE MD5)
set(LLVM_FILE llvm-project-${LLVM_VERSION}.src.tar.xz) set(LLVM_FILE llvm-project-${LLVM_VERSION}.src.tar.xz)
set(LLVM_CPE "cpe:2.3:a:llvm:compiler:${LLVM_VERSION}:*:*:*:*:*:*:*") 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_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(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_NAME OpenImageIO)
set(OPENIMAGEIO_URI https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/${OPENIMAGEIO_VERSION}.tar.gz) 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_HASH_TYPE MD5)
set(OPENIMAGEIO_FILE OpenImageIO-${OPENIMAGEIO_VERSION}.tar.gz) set(OPENIMAGEIO_FILE OpenImageIO-${OPENIMAGEIO_VERSION}.tar.gz)
set(OPENIMAGEIO_HOMEPAGE https://github.com/AcademySoftwareFoundation/OpenImageIO) set(OPENIMAGEIO_HOMEPAGE https://github.com/AcademySoftwareFoundation/OpenImageIO)
@@ -313,40 +313,48 @@ Copyright © 1988-1997 Sam Leffler.
Copyright © 1991-1997 Silicon Graphics, Inc. Copyright © 1991-1997 Silicon Graphics, Inc.
]=]) ]=])
# Latest 1.14 (beta) main, that is compatible with OIIO 3.0 set(OSL_VERSION 1.14.7.0)
set(OSL_VERSION 1.14.3.0-beta)
set(OSL_COMMIT "b795e3e92ae1f2c5da5024b61295b0eb41486a65")
set(OSL_NAME "Open Shading Language") set(OSL_NAME "Open Shading Language")
set(OSL_URI https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/archive/${OSL_COMMIT}.tar.gz) set(OSL_URI https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/releases/download/v${OSL_VERSION}/OSL-${OSL_VERSION}.tar.gz)
set(OSL_HASH dbfe1a34249959f2d66296bf04317c1c) set(OSL_HASH 45b2b9de1bae6854fb8af0d332c3266898871d95741bdb6abe8178cd6d01aef2)
set(OSL_HASH_TYPE MD5) set(OSL_HASH_TYPE SHA256)
set(OSL_FILE OpenShadingLanguage-${OSL_VERSION}.tar.gz) set(OSL_FILE OpenShadingLanguage-${OSL_VERSION}.tar.gz)
set(OSL_HOMEPAGE https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/) set(OSL_HOMEPAGE https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/)
set(OSL_LICENSE SPDX:BSD-3-Clause) set(OSL_LICENSE SPDX:BSD-3-Clause)
set(OSL_COPYRIGHT "Copyright Contributors to the Open Shading Language project.") 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_NAME "Manifold")
set(MANIFOLD_URI https://github.com/elalish/manifold/archive/refs/tags/${MANIFOLD_VERSION}.tar.gz) 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_HASH_TYPE MD5)
set(MANIFOLD_FILE Manifold-${MANIFOLD_VERSION}.tar.gz) set(MANIFOLD_FILE Manifold-${MANIFOLD_VERSION}.tar.gz)
set(MANIFOLD_HOMEPAGE https://github.com/elalish/manifold) set(MANIFOLD_HOMEPAGE https://github.com/elalish/manifold)
set(MANIFOLD_LICENSE SPDX:Apache-2.0) set(MANIFOLD_LICENSE SPDX:Apache-2.0)
set(MANIFOLD_COPYRIGHT "Copyright 2021 The Manifold Authors.") 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 # 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: # 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. # reasons there can be no exceptions to this.
# Additionally, keep the PYTHON_PIP_VERSION in sync with the pip version bundled # Additionally, keep the PYTHON_PIP_VERSION in sync with the pip version bundled
# into Python. # into Python.
set(PYTHON_VERSION 3.11.11) set(PYTHON_VERSION 3.11.13)
set(PYTHON_SHORT_VERSION 3.11) set(PYTHON_SHORT_VERSION 3.11)
set(PYTHON_SHORT_VERSION_NO_DOTS 311) 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_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_HASH_TYPE MD5)
set(PYTHON_FILE Python-${PYTHON_VERSION}.tar.xz) set(PYTHON_FILE Python-${PYTHON_VERSION}.tar.xz)
set(PYTHON_CPE "cpe:2.3:a:python:python:${PYTHON_VERSION}:-:*:*:*:*:*:*") 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. 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_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_HASH_TYPE SHA256)
set(VPX_FILE libvpx-v${VPX_VERSION}.tar.gz) set(VPX_FILE libvpx-v${VPX_VERSION}.tar.gz)
set(VPX_CPE "cpe:2.3:a:webmproject:libvpx:${VPX_VERSION}:*:*:*:*:*:*:*") 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_LICENSE SPDX:GPL-2.0-or-later)
set(X265_COPYRIGHT "Copyright (C) 2013-2020 MulticoreWare, Inc") 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_SHORT_VERSION 2.5)
set(OPENJPEG_URI https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz) 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_HASH_TYPE SHA256)
set(OPENJPEG_NAME OpenJPEG) set(OPENJPEG_NAME OpenJPEG)
set(OPENJPEG_HOMEPAGE https://github.com/uclouvain/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>. Copyright (C) 2013 Jason Evans <jasone@canonware.com>.
]=]) ]=])
set(XML2_VERSION 2.13.5) set(XML2_VERSION 2.14.5)
set(XML2_URI https://download.gnome.org/sources/libxml2/2.13/libxml2-${XML2_VERSION}.tar.xz) set(XML2_URI https://download.gnome.org/sources/libxml2/2.14/libxml2-${XML2_VERSION}.tar.xz)
set(XML2_HASH 0b919be8edff97ade9c946e1a83bdecd) set(XML2_HASH 59aac4e5d1d350ba2c4bddf1f7bc5098)
set(XML2_HASH_TYPE MD5) set(XML2_HASH_TYPE MD5)
set(XML2_FILE libxml2-${XML2_VERSION}.tar.xz) set(XML2_FILE libxml2-${XML2_VERSION}.tar.xz)
set(XML2_CPE "cpe:2.3:a:xmlsoft:libxml2:${XML2_VERSION}:*:*:*:*:*:*:*") 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") set(LZMA_COPYRIGHT "Igor Pavlov, Ville Koskinen, Lasse Collin")
# NOTE: Python's build has been modified to use our ssl version. # 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_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_HASH_TYPE SHA256)
set(SSL_FILE openssl-${SSL_VERSION}.tar.gz) set(SSL_FILE openssl-${SSL_VERSION}.tar.gz)
set(SSL_CPE "cpe:2.3:a:openssl:openssl:${SSL_VERSION}:*:*:*:*:*:*:*") 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. 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 set(SQLITE_VERSION 3.50.4)
# is hardcoded in pythons PCbuild/get_externals.bat for compliance reasons there set(SQLLITE_LONG_VERSION 3500400)
# can be no exceptions to this. set(SQLITE_URI https://www.sqlite.org/2025/sqlite-autoconf-${SQLLITE_LONG_VERSION}.tar.gz)
set(SQLITE_VERSION 3.45.1) set(SQLITE_HASH 145048005c777796dd8494aa1cfed304e8c34283)
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_HASH_TYPE SHA1) set(SQLITE_HASH_TYPE SHA1)
set(SQLITE_FILE sqlite-autoconf-${SQLLITE_LONG_VERSION}.tar.gz) set(SQLITE_FILE sqlite-autoconf-${SQLLITE_LONG_VERSION}.tar.gz)
set(SQLITE_CPE "cpe:2.3:a:sqlite:sqlite:${SQLITE_VERSION}:*:*:*:*:*:*:*") 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_LICENSE SPDX:Apache-2.0)
set(EMBREE_COPYRIGHT "Copyright 2009-2024 Intel Corporation") set(EMBREE_COPYRIGHT "Copyright 2009-2024 Intel Corporation")
set(USD_VERSION 25.02) set(USD_VERSION 25.08)
set(USD_NAME USD) set(USD_NAME USD)
set(USD_URI https://github.com/PixarAnimationStudios/OpenUSD/archive/v${USD_VERSION}.tar.gz) 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_HASH_TYPE MD5)
set(USD_FILE usd-v${USD_VERSION}.tar.gz) set(USD_FILE usd-v${USD_VERSION}.tar.gz)
set(USD_HOMEPAGE https://openusd.org/) set(USD_HOMEPAGE https://openusd.org/)
@@ -820,10 +825,10 @@ This product includes software developed at:
Pixar (http://www.pixar.com/). Pixar (http://www.pixar.com/).
]=]) ]=])
set(MATERIALX_VERSION 1.39.2) set(MATERIALX_VERSION 1.39.3)
set(MATERIALX_NAME MaterialX) set(MATERIALX_NAME MaterialX)
set(MATERIALX_URI https://github.com/AcademySoftwareFoundation/MaterialX/archive/refs/tags/v${MATERIALX_VERSION}.tar.gz) 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_HASH_TYPE MD5)
set(MATERIALX_FILE materialx-v${MATERIALX_VERSION}.tar.gz) set(MATERIALX_FILE materialx-v${MATERIALX_VERSION}.tar.gz)
set(MATERIALX_HOMEPAGE https://github.com/AcademySoftwareFoundation/MaterialX) set(MATERIALX_HOMEPAGE https://github.com/AcademySoftwareFoundation/MaterialX)
@@ -901,10 +906,10 @@ Copyright © 2014-2015 Collabora, Ltd.
Copyright © 2015 Red Hat Inc. 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_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_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_HASH_TYPE MD5)
set(WAYLAND_HOMEPAGE https://gitlab.freedesktop.org/wayland/wayland) set(WAYLAND_HOMEPAGE https://gitlab.freedesktop.org/wayland/wayland)
set(WAYLAND_LICENSE SPDX:MIT) set(WAYLAND_LICENSE SPDX:MIT)
@@ -962,9 +967,9 @@ Copyright © 2011-2012 Collabora, Ltd.
Copyright © 2010 Red Hat <mjg@redhat.com>. 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_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_HASH_TYPE MD5)
set(ISPC_FILE ispc-${ISPC_VERSION}.tar.gz) set(ISPC_FILE ispc-${ISPC_VERSION}.tar.gz)
set(ISPC_DEPSBUILDTIMEONLY "Blender ships the produced artifact, but doesn't ship/link with any binary") 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(POTRACE_COPYRIGHT "Copyright © 2001-2019 Peter Selinger.")
set(HARU_VERSION 2_3_0) set(HARU_VERSION 2.4.5)
set(HARU_URI https://github.com/libharu/libharu/archive/RELEASE_${HARU_VERSION}.tar.gz) set(HARU_URI https://github.com/libharu/libharu/archive/refs/tags/v${HARU_VERSION}.tar.gz)
set(HARU_HASH 4f916aa49c3069b3a10850013c507460) set(HARU_HASH d5633fb741079a7675bb3e9e8e8a58ce)
set(HARU_HASH_TYPE MD5) set(HARU_HASH_TYPE MD5)
set(HARU_FILE libharu-${HARU_VERSION}.tar.gz) set(HARU_FILE libharu-${HARU_VERSION}.tar.gz)
set(HARU_HOMEPAGE http://libharu.org/) set(HARU_HOMEPAGE http://libharu.org/)
@@ -1045,19 +1050,20 @@ set(OPENPGL_LICENSE SPDX:Apache-2.0)
set(OPENPGL_COPYRIGHT "Copyright 2020 Intel Corporation.") set(OPENPGL_COPYRIGHT "Copyright 2020 Intel Corporation.")
# Default version used by DPCPP: unified-runtime/cmake/FetchLevelZero.cmake # 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_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_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_HASH_TYPE SHA256)
set(LEVEL_ZERO_FILE level-zero-${LEVEL_ZERO_VERSION}.tar.gz) 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_HOMEPAGE https://github.com/oneapi-src/level-zero)
set(LEVEL_ZERO_LICENSE SPDX:MIT) set(LEVEL_ZERO_LICENSE SPDX:MIT)
set(LEVEL_ZERO_COPYRIGHT "Copyright (C) 2019-2024 Intel Corporation") 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_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_HASH_TYPE SHA256)
set(DPCPP_FILE DPCPP-${DPCPP_VERSION}.tar.gz) set(DPCPP_FILE DPCPP-${DPCPP_VERSION}.tar.gz)
set(DPCPP_NAME DPC++) 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 # will take care of building them, unpack is being done in dpcpp_deps.cmake
# Source llvm/lib/SYCLLowerIR/CMakeLists.txt # 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_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_HASH_TYPE SHA256)
set(VCINTRINSICS_FILE vc-intrinsics-${VCINTRINSICS_VERSION}.tar.gz) set(VCINTRINSICS_FILE vc-intrinsics-${VCINTRINSICS_VERSION}.tar.gz)
set(VCINTRINSICS_HOMEPAGE https://github.com/intel/vc-intrinsics) 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_LICENSE SPDX:Apache-2.0)
set(ICDLOADER_COPYRIGHT " Copyright (c) 2020 The Khronos Group Inc.") set(ICDLOADER_COPYRIGHT " Copyright (c) 2020 The Khronos Group Inc.")
# Source sycl/cmake/modules/AddBoostMp11Headers.cmake # Source sycl/cmake/modules/FetchEmhash.cmake
# Using external MP11 here so we don't have to pull in all of Boost. set(EMHASH_VERSION 3ba9abdfdc2e0430fcc2fd8993cad31945b6a02b)
set(MP11_VERSION 863d8b8d2b20f2acd0b5870f23e553df9ce90e6c) set(EMHASH_URI https://github.com/ktprime/emhash/archive/${EMHASH_VERSION}.tar.gz)
set(MP11_URI https://github.com/boostorg/mp11/archive/${MP11_VERSION}.tar.gz) set(EMHASH_HASH f0feaa687b5d288317526a6b0c331b51eba2e2b13528d79e015d75abef5d4dfa)
set(MP11_HASH 525692267abb8086bb9cc2fe81fb96d73ac645dfa6825cb5114686aafe244e9f) set(EMHASH_HASH_TYPE SHA256)
set(MP11_HASH_TYPE SHA256) set(EMHASH_FILE emhash-${EMHASH_VERSION}.tar.gz)
set(MP11_FILE mp11-${MP11_VERSION}.tar.gz) set(EMHASH_HOMEPAGE https://github.com/ktprime/emhash)
set(MP11_HOMEPAGE https://github.com/boostorg/mp11) set(EMHASH_LICENSE SPDX:MIT)
set(MP11_LICENSE SPDX:BSL-1.0) set(EMHASH_COPYRIGHT "Copyright (c) 2019 hyb")
# Source llvm-spirv/CMakeLists.txt (repo) # Source llvm-spirv/CMakeLists.txt (repo)
# Source llvm-spirv/spirv-headers-tag.conf (hash) # 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_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_HASH_TYPE SHA256)
set(DPCPP_SPIRV_HEADERS_FILE DPCPP-SPIR-V-Headers-${DPCPP_SPIRV_HEADERS_VERSION}.tar.gz) 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) 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/FetchUnifiedRuntime.cmake (repo)
# Source sycl/cmake/modules/UnifiedRuntimeTag.cmake (commit/version) # 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_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_HASH_TYPE SHA256)
set(UNIFIED_RUNTIME_FILE unified-runtime-${UNIFIED_RUNTIME_VERSION}.tar.gz) 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_HOMEPAGE https://github.com/oneapi-src/unified-runtime)
set(UNIFIED_RUNTIME_LICENSE SPDX:Apache-2.0 WITH LLVM-exception) 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 # 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_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_HASH_TYPE SHA256)
set(UNIFIED_MEMORY_FRAMEWORK_FILE unified-memory-framework-${UNIFIED_MEMORY_FRAMEWORK_VERSION}.tar.gz) 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_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_LICENSE SPDX:Apache-2.0 WITH LLVM-exception)
set(UNIFIED_MEMORY_FRAMEWORK_COPYRIGHT "Copyright (C) 2023-2024 Intel Corporation") 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 ### ### 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 # compiler, the versions used are taken from the following location
# https://github.com/intel/intel-graphics-compiler/releases # 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_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_HASH_TYPE SHA256)
set(IGC_FILE intel-graphics-compiler-${IGC_VERSION}.tar.gz) set(IGC_FILE intel-graphics-compiler-${IGC_VERSION}.tar.gz)
set(IGC_NAME IGC) 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_LICENSE SPDX:MIT)
set(IGC_COPYRIGHT "Copyright (C) 2019-2024 Intel Corporation") 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_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_HASH_TYPE SHA256)
set(IGC_LLVM_FILE ${IGC_LLVM_VERSION}.tar.gz) set(IGC_LLVM_FILE ${IGC_LLVM_VERSION}.tar.gz)
set(IGC_LLVM_HOMEPAGE https://github.com/llvm/llvm-project/) 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 ******* # ******* 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_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_HASH_TYPE SHA256)
set(IGC_OPENCL_CLANG_FILE opencl-clang-${IGC_OPENCL_CLANG_VERSION}.tar.gz) 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_HOMEPAGE https://github.com/intel/opencl-clang/)
set(IGC_OPENCL_CLANG_LICENSE SPDX:Apache-2.0 WITH LLVM-exception) 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_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_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_HASH_TYPE SHA256)
set(IGC_VCINTRINSICS_FILE vc-intrinsics-${IGC_VCINTRINSICS_VERSION}.tar.gz) set(IGC_VCINTRINSICS_FILE vc-intrinsics-${IGC_VCINTRINSICS_VERSION}.tar.gz)
set(IGC_VCINTRINSICS_NAME "VC Intrinsics") 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_LICENSE SPDX:MIT)
set(IGC_VCINTRINSICS_COPYRIGHT "Copyright (C) 2020-2021 Intel Corporation") 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_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_HASH_TYPE SHA256)
set(IGC_SPIRV_HEADERS_FILE SPIR-V-Headers-${IGC_SPIRV_HEADERS_VERSION}.tar.gz) set(IGC_SPIRV_HEADERS_FILE SPIR-V-Headers-${IGC_SPIRV_HEADERS_VERSION}.tar.gz)
set(IGC_SPIRV_HEADERS_NAME "SPIR-V Headers") 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_LICENSE SPDX:MIT-Khronos-old)
set(IGC_SPIRV_HEADERS_COPYRIGHT "Copyright (c) 2015-2024 The Khronos Group Inc.") 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_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_HASH_TYPE SHA256)
set(IGC_SPIRV_TOOLS_FILE SPIR-V-Tools-${IGC_SPIRV_TOOLS_VERSION}.tar.gz) set(IGC_SPIRV_TOOLS_FILE SPIR-V-Tools-${IGC_SPIRV_TOOLS_VERSION}.tar.gz)
set(IGC_SPIRV_TOOLS_NAME "SPIR-V Tools") 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_LICENSE SPDX:Apache-2.0)
set(IGC_SPIRV_TOOLS_COPYRIGHT "Copyright (c) 2015-2016 The Khronos Group Inc.") 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_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_HASH_TYPE SHA256)
set(IGC_SPIRV_TRANSLATOR_FILE SPIR-V-Translator-${IGC_SPIRV_TRANSLATOR_VERSION}.tar.gz) 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") set(IGC_SPIRV_TRANSLATOR_NAME "LLVM/SPIR-V Bi-Directional Translator")
@@ -1248,9 +1264,9 @@ http://llvm.org
### Intel Graphics Compiler DEPS END ### ### 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_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_HASH_TYPE SHA256)
set(GMMLIB_NAME "Intel(R) Graphics Memory Management Library") set(GMMLIB_NAME "Intel(R) Graphics Memory Management Library")
set(GMMLIB_FILE ${GMMLIB_VERSION}.tar.gz) set(GMMLIB_FILE ${GMMLIB_VERSION}.tar.gz)
@@ -1262,9 +1278,9 @@ Copyright (c) 2016 Gabi Melman.
Copyright 2008, Google Inc. All rights reserved. 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_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_HASH_TYPE SHA256)
set(OCLOC_FILE ocloc-${OCLOC_VERSION}.tar.gz) set(OCLOC_FILE ocloc-${OCLOC_VERSION}.tar.gz)
set(OCLOC_HOMEPAGE https://github.com/intel/compute-runtime) 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_DEPSBUILDTIMEONLY "UI module asked for preliminary libs so they could work on integrating it")
set(HARFBUZZ_HOMEPAGE https://github.com/harfbuzz/harfbuzz) 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_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_HASH_TYPE MD5)
set(SHADERC_FILE shaderc-${SHADERC_VERSION}.tar.gz) set(SHADERC_FILE shaderc-${SHADERC_VERSION}.tar.gz)
set(SHADERC_NAME ShaderC) 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 # The versions of shaderc's dependencies can be found in the root of shaderc's
# source in a file called DEPS. # 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_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_HASH_TYPE MD5)
set(SHADERC_SPIRV_TOOLS_FILE SPIRV-Tools-${SHADERC_SPIRV_TOOLS_VERSION}.tar.gz) set(SHADERC_SPIRV_TOOLS_FILE SPIRV-Tools-${SHADERC_SPIRV_TOOLS_VERSION}.tar.gz)
set(SHADERC_SPIRV_TOOLS_NAME SPIR-V Tools) 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_LICENSE SPDX:Apache-2.0)
set(SHADERC_SPIRV_TOOLS_COPYRIGHT "Copyright (c) 2015-2016 The Khronos Group Inc.") 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_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_HASH_TYPE MD5)
set(SHADERC_SPIRV_HEADERS_FILE SPIRV-Headers-${SHADERC_SPIRV_HEADERS_VERSION}.tar.gz) 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_HOMEPAGE https://github.com/KhronosGroup/SPIRV-Headers)
set(SHADERC_SPIRV_HEADERS_LICENSE SPDX:MIT-Khronos-old) set(SHADERC_SPIRV_HEADERS_LICENSE SPDX:MIT-Khronos-old)
set(SHADERC_SPIRV_HEADERS_COPYRIGHT "Copyright (c) 2015-2024 The Khronos Group Inc.") 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_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_HASH_TYPE MD5)
set(SHADERC_GLSLANG_FILE glslang-${SHADERC_GLSLANG_VERSION}.tar.gz) set(SHADERC_GLSLANG_FILE glslang-${SHADERC_GLSLANG_VERSION}.tar.gz)
set(SHADERC_GLSLANG_HOMEPAGE https://github.com/KhronosGroup/glslang) set(SHADERC_GLSLANG_HOMEPAGE https://github.com/KhronosGroup/glslang)

View File

@@ -8,13 +8,8 @@ ExternalProject_Add(external_wayland
URL_HASH ${WAYLAND_HASH_TYPE}=${WAYLAND_HASH} URL_HASH ${WAYLAND_HASH_TYPE}=${WAYLAND_HASH}
PREFIX ${BUILD_DIR}/wayland 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 CONFIGURE_COMMAND
${CMAKE_COMMAND} -E env ${CMAKE_COMMAND} -E env
PKG_CONFIG_PATH=${LIBDIR}/expat/lib/pkgconfig:${LIBDIR}/xml2/lib/pkgconfig:${LIBDIR}/ffi/lib/pkgconfig:$PKG_CONFIG_PATH 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} ${MESON_BUILD_TYPE}
-Ddocumentation=false -Ddocumentation=false
-Dtests=false -Dtests=false
-D "c_link_args=-L${LIBDIR}/ffi/lib -lm"
. .
../external_wayland ../external_wayland

View File

@@ -9,10 +9,11 @@ graph[autosize = false, size = "25.7,8.3!", resolution = 300];
external_dpcpp -- external_vcintrinsics; external_dpcpp -- external_vcintrinsics;
external_dpcpp -- external_openclheaders; external_dpcpp -- external_openclheaders;
external_dpcpp -- external_icdloader; external_dpcpp -- external_icdloader;
external_dpcpp -- external_mp11; external_dpcpp -- external_emhash;
external_dpcpp -- external_level_zero; external_dpcpp -- external_level_zero;
external_dpcpp -- external_spirvheaders; external_dpcpp -- external_spirvheaders;
external_dpcpp -- external_unifiedruntime; external_dpcpp -- external_unifiedruntime;
external_dpcpp -- external_parallelhashmap;
external_embree -- external_tbb; external_embree -- external_tbb;
external_ffmpeg -- external_zlib; external_ffmpeg -- external_zlib;
external_ffmpeg -- external_openjpeg; external_ffmpeg -- external_openjpeg;

View File

@@ -202,26 +202,26 @@ yum -y install jack-audio-connection-kit-devel
# Register ROCm packages # Register ROCm packages
sudo rpm --import https://repo.radeon.com/rocm/rocm.gpg.key 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/amdgpu-6.4.3.repo
rm -f /etc/yum.repos.d/rocm-6.3.1.repo rm -f /etc/yum.repos.d/rocm-6.4.3.repo
tee --append /etc/yum.repos.d/amdgpu-6.3.1.repo <<EOF tee --append /etc/yum.repos.d/amdgpu-6.4.3.repo <<EOF
[amdgpu-6.3.1] [amdgpu-6.4.3]
name=amdgpu-6.3.1 name=amdgpu-6.4.3
baseurl=https://repo.radeon.com/amdgpu/6.3.1/el/8.10/main/x86_64/ baseurl=https://repo.radeon.com/amdgpu/6.4.3/el/8.10/main/x86_64/
enabled=1 enabled=1
priority=50 priority=50
gpgcheck=1 gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF EOF
tee --append /etc/yum.repos.d/rocm-6.3.1.repo <<EOF tee --append /etc/yum.repos.d/rocm-6.4.3.repo <<EOF
[ROCm-6.3.1] [ROCm-6.4.3]
name=ROCm-6.3.1 name=ROCm-6.4.3
baseurl=https://repo.radeon.com/rocm/el8/6.3.1/main baseurl=https://repo.radeon.com/rocm/el8/6.4.3/main
enabled=1 enabled=1
gpgcheck=1 gpgcheck=1
exclude=rock-dkms exclude=rock-dkms
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF EOF
yum -y update 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 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.3.1 sudo update-alternatives --set rocm /opt/rocm-6.4.3

View File

@@ -1,8 +1,8 @@
diff --git a/libdevice/cmake/modules/SYCLLibdevice.cmake b/libdevice/cmake/modules/SYCLLibdevice.cmake 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 --- a/libdevice/cmake/modules/SYCLLibdevice.cmake
+++ b/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) list(APPEND compile_opts -D_ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH)
endif() endif()
@@ -12,7 +12,7 @@ index 9fa7e0b35..7e887e4bb 100644
set(filetypes obj obj-new-offload spv bc) set(filetypes obj obj-new-offload spv bc)
diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake 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 --- a/llvm/cmake/modules/HandleLLVMOptions.cmake
+++ b/llvm/cmake/modules/HandleLLVMOptions.cmake +++ b/llvm/cmake/modules/HandleLLVMOptions.cmake
@@ -591,6 +591,9 @@ if( MSVC ) @@ -591,6 +591,9 @@ if( MSVC )
@@ -48,141 +48,11 @@ index 808fc98c6..75becea99 100644
+set(FETCHCONTENT_FULLY_DISCONNECTED ON) +set(FETCHCONTENT_FULLY_DISCONNECTED ON)
add_subdirectory(opencl-aot) 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 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 --- a/sycl/cmake/modules/FetchUnifiedRuntime.cmake
+++ b/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) @@ -89,10 +89,9 @@ if(IS_DIRECTORY "${UR_INTREE_SOURCE_DIR}")
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)
# to link statically on windows # to link statically on windows
if(WIN32) if(WIN32)
set(UMF_BUILD_SHARED_LIBRARY OFF CACHE INTERNAL "Build UMF shared library") set(UMF_BUILD_SHARED_LIBRARY OFF CACHE INTERNAL "Build UMF shared library")
@@ -190,15 +60,37 @@ index e9d52c5b2..8b439ba00 100644
- else() - else()
- set(UMF_DISABLE_HWLOC ${SYCL_UMF_DISABLE_HWLOC} CACHE INTERNAL "Disable hwloc for UMF") - set(UMF_DISABLE_HWLOC ${SYCL_UMF_DISABLE_HWLOC} CACHE INTERNAL "Disable hwloc for UMF")
endif() endif()
+ set(UMF_LINK_HWLOC_STATICALLY OFF CACHE INTERNAL "static HWLOC") + set(UMF_LINK_HWLOC_STATICALLY OFF CACHE INTERNAL "static HWLOC")
+ set(UMF_DISABLE_HWLOC ${SYCL_UMF_DISABLE_HWLOC} CACHE INTERNAL "Disable hwloc for UMF") + 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 fetch_adapter_source(level_zero
${UNIFIED_RUNTIME_REPO} ${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 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 --- a/sycl/source/detail/graph_impl.hpp
+++ b/sycl/source/detail/graph_impl.hpp +++ b/sycl/source/detail/graph_impl.hpp
@@ -29,6 +29,7 @@ @@ -29,6 +29,7 @@
@@ -210,81 +102,32 @@ index 2d714bcc9..907151dc5 100644
namespace sycl { namespace sycl {
inline namespace _V1 { inline namespace _V1 {
diff --git a/sycl/source/detail/kernel_bundle_impl.hpp b/sycl/source/detail/kernel_bundle_impl.hpp 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 --- a/sycl/source/detail/kernel_bundle_impl.hpp
+++ b/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 <cstdint>
#include <cstring> #include <cstring>
#include <memory> #include <memory>
+#include <sstream> +#include <sstream>
#include <unordered_set>
#include <vector> #include <vector>
#include "split_string.hpp" diff --git a/sycl/source/detail/unordered_multimap.hpp b/sycl/source/detail/unordered_multimap.hpp
diff --git a/sycl/source/detail/kernel_program_cache.hpp b/sycl/source/detail/kernel_program_cache.hpp index 4d495ed06..e96d71870 100644
index 968cb9b24..ee13dc8c6 100644 --- a/sycl/source/detail/unordered_multimap.hpp
--- a/sycl/source/detail/kernel_program_cache.hpp +++ b/sycl/source/detail/unordered_multimap.hpp
+++ b/sycl/source/detail/kernel_program_cache.hpp @@ -7,7 +7,7 @@
@@ -20,6 +20,7 @@ //===--------------------------------------------------------------===//
#pragma once
#include <detail/hashers.hpp>
-#include <emhash/hash_table8.hpp>
+#include <hash_table8.hpp>
#include <atomic> #include <utility>
#include <condition_variable> #include <vector>
+#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. */
>;
- // 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 {
diff --git a/sycl/unittests/CMakeLists.txt b/sycl/unittests/CMakeLists.txt 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 --- a/sycl/unittests/CMakeLists.txt
+++ b/sycl/unittests/CMakeLists.txt +++ b/sycl/unittests/CMakeLists.txt
@@ -1,6 +1,5 @@ @@ -1,6 +1,5 @@
@@ -294,3 +137,42 @@ index 883142678..dedd9f83f 100644
foreach(flag_var foreach(flag_var
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE 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>

View File

@@ -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 diff --git a/common/cmake/dpcpp.cmake b/common/cmake/dpcpp.cmake
index a15c179..4760e63 100644 index a15c179..4760e63 100644
--- a/common/cmake/dpcpp.cmake --- a/common/cmake/dpcpp.cmake

View 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

View 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@

View File

@@ -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;

View File

@@ -1,63 +1,12 @@
diff -Naur ispc-1.17.0.org/CMakeLists.txt ispc-1.17.0/CMakeLists.txt diff -Naur ispc-1.28.0/cmake/GenerateBuiltins.cmake external_ispc/cmake/GenerateBuiltins.cmake
--- ispc-1.17.0.org/CMakeLists.txt 2022-01-15 01:35:15 -0700 --- ispc-1.28.0/cmake/GenerateBuiltins.cmake 2025-08-12 06:34:22.000000000 -0600
+++ ispc-1.17.0/CMakeLists.txt 2022-02-12 12:44:24 -0700 +++ external_ispc/cmake/GenerateBuiltins.cmake 2025-09-10 10:40:05.793808800 -0600
@@ -443,7 +447,7 @@ @@ -334,7 +334,7 @@
# Include directories add_custom_command(
target_include_directories(${PROJECT_NAME} PRIVATE OUTPUT ${bc}
- ${LLVM_INCLUDE_DIRS} - COMMAND cat ${input} | \"${LLVM_AS_EXECUTABLE}\" -o ${bc}
+ ${LLVM_INCLUDE_DIRS} ${CLANG_INCLUDE_DIRS} + COMMAND ${CMAKE_COMMAND} -E cat ${input} | \"${LLVM_AS_EXECUTABLE}\" -o ${bc}
${XE_DEPS_DIR}/include DEPENDS ${input}
${CMAKE_CURRENT_SOURCE_DIR}/src WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
${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")

View File

@@ -1,11 +1,11 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt
index ca0746f..75d2890 100644 index b2114c3..c7205a8 100644
--- a/CMakeLists.txt --- a/CMakeLists.txt
+++ b/CMakeLists.txt +++ b/CMakeLists.txt
@@ -92,13 +92,6 @@ if(MSVC) @@ -100,13 +100,6 @@ if(MSVC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /DYNAMICBASE")
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}/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}/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 - # enable Spectre Mitigation, not supported by clang-cl
- if((NOT CMAKE_CXX_COMPILER_ID STREQUAL Clang) AND (NOT CMAKE_CXX_COMPILER_ID STREQUAL IntelLLVM)) - if((NOT CMAKE_CXX_COMPILER_ID STREQUAL Clang) AND (NOT CMAKE_CXX_COMPILER_ID STREQUAL IntelLLVM))
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Qspectre") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Qspectre")
@@ -16,7 +16,7 @@ index ca0746f..75d2890 100644
endif() endif()
#CXX compiler support #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_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") 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")

View File

@@ -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*) &reg;
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

View File

@@ -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})

View File

@@ -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)

View File

@@ -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 ());

View File

@@ -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
);
}

View File

@@ -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);

View File

@@ -35,10 +35,10 @@ index 6d0e10d..3c1f60e 100644
+# we are patching this dirirectly for Blender. +# we are patching this dirirectly for Blender.
\ No newline at end of file \ No newline at end of file
diff --git a/source/adapters/level_zero/CMakeLists.txt b/source/adapters/level_zero/CMakeLists.txt 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 --- a/source/adapters/level_zero/CMakeLists.txt
+++ b/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 # 'utils' target from 'level-zero-loader' includes path which is prefixed
# in the source directory, this breaks the installation of 'utils' target. # in the source directory, this breaks the installation of 'utils' target.
set_target_properties(utils PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "") set_target_properties(utils PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "")
@@ -47,7 +47,7 @@ index cb7e028..d3241fa 100644
EXPORT ${PROJECT_NAME}-targets EXPORT ${PROJECT_NAME}-targets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} 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 ${PROJECT_NAME}::umf
LevelZeroLoader LevelZeroLoader
LevelZeroLoader-Headers LevelZeroLoader-Headers
@@ -55,7 +55,7 @@ index cb7e028..d3241fa 100644
) )
target_include_directories(ur_adapter_level_zero PRIVATE 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 ${PROJECT_NAME}::umf
LevelZeroLoader LevelZeroLoader
LevelZeroLoader-Headers LevelZeroLoader-Headers
@@ -87,15 +87,3 @@ index fb4c519..615b588 100644
#include <ur/ur.hpp> #include <ur/ur.hpp>
#include <ur_ddi.h> #include <ur_ddi.h>
#include <ze_api.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);

View File

@@ -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 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 --- a/cmake/defaults/msvcdefaults.cmake
+++ b/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. # for all translation units.
set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /bigobj") set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /bigobj")
@@ -25,49 +12,11 @@ index 0f7fb7ef6..a467341ed 100644
# Enable multiprocessor builds. # Enable multiprocessor builds.
set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /MP") set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /MP")
set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /Gm-") 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 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 --- a/pxr/base/arch/timing.h
+++ b/pxr/base/arch/timing.h +++ b/pxr/base/arch/timing.h
@@ -69,7 +69,13 @@ ArchGetTickTime() @@ -77,6 +77,10 @@ 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()
inline uint64_t inline uint64_t
ArchGetStartTickTime() ArchGetStartTickTime()
{ {
@@ -76,9 +25,9 @@ index d78598a84..2f44a5f89 100644
+ +
+#if 0 +#if 0
uint64_t t; uint64_t t;
#if defined (ARCH_OS_DARWIN) #if defined (ARCH_OS_DARWIN) || defined(ARCH_OS_WASM_VM) || \
return ArchGetTickTime(); (defined (ARCH_CPU_ARM) && defined (ARCH_COMPILER_MSVC))
@@ -116,6 +126,7 @@ ArchGetStartTickTime() @@ -110,6 +114,7 @@ ArchGetStartTickTime()
#error "Unsupported architecture." #error "Unsupported architecture."
#endif #endif
return t; return t;
@@ -86,7 +35,7 @@ index d78598a84..2f44a5f89 100644
} }
/// Get a "stop" tick time for measuring an interval of time. See /// 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 inline uint64_t
ArchGetStopTickTime() ArchGetStopTickTime()
{ {
@@ -95,9 +44,9 @@ index d78598a84..2f44a5f89 100644
+ +
+#if 0 +#if 0
uint64_t t; uint64_t t;
#if defined (ARCH_OS_DARWIN) #if defined (ARCH_OS_DARWIN) || defined(ARCH_OS_WASM_VM) || \
return ArchGetTickTime(); (defined (ARCH_CPU_ARM) && defined (ARCH_COMPILER_MSVC))
@@ -155,11 +170,11 @@ ArchGetStopTickTime() @@ -150,11 +159,11 @@ ArchGetStopTickTime()
#error "Unsupported architecture." #error "Unsupported architecture."
#endif #endif
return t; return t;
@@ -113,7 +62,7 @@ index d78598a84..2f44a5f89 100644
/// A simple timer class for measuring an interval of time using the /// A simple timer class for measuring an interval of time using the
/// ArchTickTimer facilities. /// ArchTickTimer facilities.
diff --git a/pxr/imaging/hioOpenVDB/CMakeLists.txt b/pxr/imaging/hioOpenVDB/CMakeLists.txt 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 --- a/pxr/imaging/hioOpenVDB/CMakeLists.txt
+++ b/pxr/imaging/hioOpenVDB/CMakeLists.txt +++ b/pxr/imaging/hioOpenVDB/CMakeLists.txt
@@ -20,6 +20,12 @@ else() @@ -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 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 --- a/cmake/macros/Private.cmake
+++ b/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() return()
endif() endif()

View File

@@ -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;

View File

@@ -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"

View File

@@ -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 "

View File

@@ -1,8 +1,8 @@
diff --git a/pxr/imaging/hdSt/indirectDrawBatch.cpp b/pxr/imaging/hdSt/indirectDrawBatch.cpp 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 --- a/pxr/imaging/hdSt/indirectDrawBatch.cpp
+++ b/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) , _instanceCountOffset(0)
, _cullInstanceCountOffset(0) , _cullInstanceCountOffset(0)
, _needsTextureResourceRebinding(false) , _needsTextureResourceRebinding(false)
@@ -21,7 +21,7 @@ index cdf400222f..e780d7343b 100644
/*virtual*/ /*virtual*/
void void
@@ -1199,6 +1205,14 @@ HdSt_IndirectDrawBatch::_ExecuteDraw( @@ -1182,6 +1188,14 @@ HdSt_IndirectDrawBatch::_ExecuteDraw(
state.instancePrimvarBars); state.instancePrimvarBars);
} }
@@ -36,7 +36,7 @@ index cdf400222f..e780d7343b 100644
state.BindResourcesForDrawing(renderPassState, *capabilities); state.BindResourcesForDrawing(renderPassState, *capabilities);
HdSt_GeometricShaderSharedPtr geometricShader = state.geometricShader; HdSt_GeometricShaderSharedPtr geometricShader = state.geometricShader;
@@ -1455,6 +1469,15 @@ HdSt_IndirectDrawBatch::_ExecuteFrustumCull( @@ -1438,6 +1452,15 @@ HdSt_IndirectDrawBatch::_ExecuteFrustumCull(
cullingProgram.GetGeometricShader()); cullingProgram.GetGeometricShader());
Hgi * hgi = resourceRegistry->GetHgi(); Hgi * hgi = resourceRegistry->GetHgi();
@@ -53,10 +53,10 @@ index cdf400222f..e780d7343b 100644
HgiGraphicsPipelineSharedPtr const & pso = HgiGraphicsPipelineSharedPtr const & pso =
_GetCullPipeline(resourceRegistry, _GetCullPipeline(resourceRegistry,
diff --git a/pxr/imaging/hdSt/indirectDrawBatch.h b/pxr/imaging/hdSt/indirectDrawBatch.h 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 --- a/pxr/imaging/hdSt/indirectDrawBatch.h
+++ b/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; int _cullInstanceCountOffset;
bool _needsTextureResourceRebinding; bool _needsTextureResourceRebinding;
@@ -66,10 +66,10 @@ index 13da3917b0..84f013d310 100644
diff --git a/pxr/imaging/hdSt/renderPassState.cpp b/pxr/imaging/hdSt/renderPassState.cpp 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 --- a/pxr/imaging/hdSt/renderPassState.cpp
+++ b/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 // If not using GL_MULTISAMPLE, use GL_POINT_SMOOTH to render points as
// circles instead of square. // circles instead of square.
// XXX Switch points rendering to emit quad with FS that draws circle. // 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); glEnable(GL_MULTISAMPLE);
- glDisable(GL_POINT_SMOOTH); - glDisable(GL_POINT_SMOOTH);
- glDisable(GL_POINT_SPRITE);
+ if (!hgiCapabilities.GetCoreProfile()) { + if (!hgiCapabilities.GetCoreProfile()) {
+ glDisable(GL_POINT_SMOOTH); + glDisable(GL_POINT_SMOOTH);
+ glDisable(GL_POINT_SPRITE);
+ } + }
} }
void void
diff --git a/pxr/imaging/hgi/capabilities.h b/pxr/imaging/hgi/capabilities.h 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 --- a/pxr/imaging/hgi/capabilities.h
+++ b/pxr/imaging/hgi/capabilities.h +++ b/pxr/imaging/hgi/capabilities.h
@@ -52,6 +52,11 @@ class HgiCapabilities @@ -35,6 +35,11 @@ public:
HGI_API HGI_API
virtual int GetShaderVersion() const = 0; virtual int GetShaderVersion() const = 0;
@@ -108,10 +110,10 @@ index ae2ecb4e5b..c86afcb387 100644
size_t GetMaxUniformBlockSize() const { size_t GetMaxUniformBlockSize() const {
return _maxUniformBlockSize; return _maxUniformBlockSize;
diff --git a/pxr/imaging/hgiGL/blitCmds.cpp b/pxr/imaging/hgiGL/blitCmds.cpp 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 --- a/pxr/imaging/hgiGL/blitCmds.cpp
+++ b/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 // Capture OpenGL state before executing the 'ops' and restore it when this
// function ends. We do this defensively because parts of our pipeline may // function ends. We do this defensively because parts of our pipeline may
// not set and restore all relevant gl state. // not set and restore all relevant gl state.
@@ -121,10 +123,10 @@ index ce62f41a51..20888a1109 100644
HgiGL* hgiGL = static_cast<HgiGL*>(hgi); HgiGL* hgiGL = static_cast<HgiGL*>(hgi);
HgiGLDevice* device = hgiGL->GetPrimaryDevice(); HgiGLDevice* device = hgiGL->GetPrimaryDevice();
diff --git a/pxr/imaging/hgiGL/capabilities.cpp b/pxr/imaging/hgiGL/capabilities.cpp 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 --- a/pxr/imaging/hgiGL/capabilities.cpp
+++ b/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() HgiGLCapabilities::HgiGLCapabilities()
: _glVersion(0) : _glVersion(0)
, _glslVersion(_DefaultGLSLVersion) , _glslVersion(_DefaultGLSLVersion)
@@ -132,7 +134,7 @@ index 920f9cdff4..9941bef7b2 100644
{ {
_LoadCapabilities(); _LoadCapabilities();
} }
@@ -131,6 +132,11 @@ HgiGLCapabilities::_LoadCapabilities() @@ -117,6 +118,11 @@ HgiGLCapabilities::_LoadCapabilities()
&uniformBufferOffsetAlignment); &uniformBufferOffsetAlignment);
_uniformBufferOffsetAlignment = uniformBufferOffsetAlignment; _uniformBufferOffsetAlignment = uniformBufferOffsetAlignment;
} }
@@ -144,7 +146,7 @@ index 920f9cdff4..9941bef7b2 100644
if (_glVersion >= 430) { if (_glVersion >= 430) {
GLint maxShaderStorageBlockSize = 0; GLint maxShaderStorageBlockSize = 0;
glGetIntegerv(GL_MAX_SHADER_STORAGE_BLOCK_SIZE, glGetIntegerv(GL_MAX_SHADER_STORAGE_BLOCK_SIZE,
@@ -259,4 +265,9 @@ HgiGLCapabilities::GetShaderVersion() const { @@ -250,4 +256,9 @@ HgiGLCapabilities::GetShaderVersion() const {
return _glslVersion; return _glslVersion;
} }
@@ -155,10 +157,10 @@ index 920f9cdff4..9941bef7b2 100644
+ +
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_CLOSE_SCOPE
diff --git a/pxr/imaging/hgiGL/capabilities.h b/pxr/imaging/hgiGL/capabilities.h 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 --- a/pxr/imaging/hgiGL/capabilities.h
+++ b/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 HGIGL_API
int GetShaderVersion() const override; int GetShaderVersion() const override;
@@ -168,7 +170,7 @@ index 3c8f026426..2f25b44936 100644
private: private:
void _LoadCapabilities(); void _LoadCapabilities();
@@ -60,6 +63,9 @@ class HgiGLCapabilities final : public HgiCapabilities @@ -43,6 +46,9 @@ private:
// GLSL version // GLSL version
int _glslVersion; // 400, 410, ... int _glslVersion; // 400, 410, ...
@@ -179,10 +181,10 @@ index 3c8f026426..2f25b44936 100644
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_CLOSE_SCOPE
diff --git a/pxr/imaging/hgiGL/graphicsCmds.cpp b/pxr/imaging/hgiGL/graphicsCmds.cpp 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 --- a/pxr/imaging/hgiGL/graphicsCmds.cpp
+++ b/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 // Capture OpenGL state before executing the 'ops' and restore it when this
// function ends. We do this defensively because parts of our pipeline may // function ends. We do this defensively because parts of our pipeline may
// not set and restore all relevant gl state. // not set and restore all relevant gl state.
@@ -192,10 +194,10 @@ index 5e174165d7..e59ae3502f 100644
// Resolve multisample textures // Resolve multisample textures
HgiGL* hgiGL = static_cast<HgiGL*>(hgi); HgiGL* hgiGL = static_cast<HgiGL*>(hgi);
diff --git a/pxr/imaging/hgiGL/graphicsPipeline.cpp b/pxr/imaging/hgiGL/graphicsPipeline.cpp 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 --- a/pxr/imaging/hgiGL/graphicsPipeline.cpp
+++ b/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 void
HgiGLGraphicsPipeline::BindPipeline() HgiGLGraphicsPipeline::BindPipeline()
@@ -50,6 +55,7 @@ HgiGLGraphicsPipeline::BindPipeline() @@ -33,6 +38,7 @@ HgiGLGraphicsPipeline::BindPipeline()
if (_vao) { if (_vao) {
glBindVertexArray(0); glBindVertexArray(0);
glDeleteVertexArrays(1, &_vao); glDeleteVertexArrays(1, &_vao);
@@ -217,7 +219,7 @@ index 6983dd11e9..a1c7af754e 100644
} }
if (!_descriptor.vertexBuffers.empty()) { if (!_descriptor.vertexBuffers.empty()) {
@@ -108,6 +114,8 @@ HgiGLGraphicsPipeline::BindPipeline() @@ -91,6 +97,8 @@ HgiGLGraphicsPipeline::BindPipeline()
glBindVertexArray(_vao); glBindVertexArray(_vao);
} }
@@ -226,7 +228,7 @@ index 6983dd11e9..a1c7af754e 100644
// //
// Depth Stencil State // 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 // If not using GL_MULTISAMPLE, use GL_POINT_SMOOTH to render points as
// circles instead of square. // circles instead of square.
// XXX Switch points rendering to emit quad with FS that draws circle. // XXX Switch points rendering to emit quad with FS that draws circle.
@@ -237,7 +239,7 @@ index 6983dd11e9..a1c7af754e 100644
} }
if (_descriptor.multiSampleState.alphaToCoverageEnable) { if (_descriptor.multiSampleState.alphaToCoverageEnable) {
glEnable(GL_SAMPLE_ALPHA_TO_COVERAGE); glEnable(GL_SAMPLE_ALPHA_TO_COVERAGE);
@@ -207,7 +217,7 @@ HgiGLGraphicsPipeline::BindPipeline() @@ -195,7 +205,7 @@ HgiGLGraphicsPipeline::BindPipeline()
glFrontFace(GL_CCW); 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 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 --- a/pxr/imaging/hgiGL/scopedStateHolder.cpp
+++ b/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/scopedStateHolder.h"
#include "pxr/imaging/hgiGL/conversions.h" #include "pxr/imaging/hgiGL/conversions.h"
#include "pxr/imaging/hgiGL/diagnostic.h" #include "pxr/imaging/hgiGL/diagnostic.h"
@@ -258,7 +260,7 @@ index 89cd0ac224..5c6575330b 100644
#include "pxr/base/trace/trace.h" #include "pxr/base/trace/trace.h"
#include "pxr/base/tf/diagnostic.h" #include "pxr/base/tf/diagnostic.h"
@@ -33,8 +34,10 @@ @@ -16,8 +17,10 @@
PXR_NAMESPACE_OPEN_SCOPE PXR_NAMESPACE_OPEN_SCOPE
@@ -271,7 +273,7 @@ index 89cd0ac224..5c6575330b 100644
, _restoreVao(0) , _restoreVao(0)
, _restoreDepthTest(false) , _restoreDepthTest(false)
, _restoreDepthWriteMask(false) , _restoreDepthWriteMask(false)
@@ -115,7 +118,9 @@ HgiGL_ScopedStateHolder::HgiGL_ScopedStateHolder() @@ -101,7 +104,9 @@ HgiGL_ScopedStateHolder::HgiGL_ScopedStateHolder()
glGetBooleanv( glGetBooleanv(
GL_SAMPLE_ALPHA_TO_ONE, GL_SAMPLE_ALPHA_TO_ONE,
(GLboolean*)&_restoreSampleAlphaToOne); (GLboolean*)&_restoreSampleAlphaToOne);
@@ -282,18 +284,20 @@ index 89cd0ac224..5c6575330b 100644
glGetBooleanv(GL_CULL_FACE, (GLboolean*)&_cullFace); glGetBooleanv(GL_CULL_FACE, (GLboolean*)&_cullFace);
glGetIntegerv(GL_CULL_FACE_MODE, &_cullMode); glGetIntegerv(GL_CULL_FACE_MODE, &_cullMode);
glGetIntegerv(GL_FRONT_FACE, &_frontFace); 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_MULTISAMPLE, (GLboolean*)&_restoreMultiSample);
- glGetBooleanv(GL_POINT_SMOOTH, (GLboolean*)&_restorePointSmooth); - glGetBooleanv(GL_POINT_SMOOTH, (GLboolean*)&_restorePointSmooth);
- glGetBooleanv(GL_POINT_SPRITE, (GLboolean*)&_restorePointSprite);
+ if (!_coreProfile) { + if (!_coreProfile) {
+ glGetBooleanv(GL_POINT_SMOOTH, (GLboolean*)&_restorePointSmooth); + glGetBooleanv(GL_POINT_SMOOTH, (GLboolean*)&_restorePointSmooth);
+ glGetBooleanv(GL_POINT_SPRITE, (GLboolean*)&_restorePointSprite);
+ } + }
HGIGL_POST_PENDING_GL_ERRORS(); glGetIntegerv(GL_UNPACK_ALIGNMENT, &_restoreUnpackAlignment);
#if defined(GL_KHR_debug) glGetIntegerv(GL_PACK_ALIGNMENT, &_restorePackAlignment);
@@ -235,7 +242,9 @@ HgiGL_ScopedStateHolder::~HgiGL_ScopedStateHolder() @@ -225,7 +232,9 @@ HgiGL_ScopedStateHolder::~HgiGL_ScopedStateHolder()
_restoreViewport[2], _restoreViewport[3]); _restoreViewport[2], _restoreViewport[3]);
glBindVertexArray(_restoreVao); glBindVertexArray(_restoreVao);
glBindRenderbuffer(GL_RENDERBUFFER, _restoreRenderBuffer); glBindRenderbuffer(GL_RENDERBUFFER, _restoreRenderBuffer);
@@ -304,7 +308,7 @@ index 89cd0ac224..5c6575330b 100644
if (_cullFace) { if (_cullFace) {
glEnable(GL_CULL_FACE); glEnable(GL_CULL_FACE);
} else { } else {
@@ -285,10 +294,12 @@ HgiGL_ScopedStateHolder::~HgiGL_ScopedStateHolder() @@ -275,10 +284,12 @@ HgiGL_ScopedStateHolder::~HgiGL_ScopedStateHolder()
glDisable(GL_MULTISAMPLE); 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 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 --- a/pxr/imaging/hgiGL/scopedStateHolder.h
+++ b/pxr/imaging/hgiGL/scopedStateHolder.h +++ b/pxr/imaging/hgiGL/scopedStateHolder.h
@@ -32,6 +32,7 @@ @@ -15,6 +15,7 @@
PXR_NAMESPACE_OPEN_SCOPE PXR_NAMESPACE_OPEN_SCOPE
@@ -333,7 +337,7 @@ index d006480b9b..be6698e04c 100644
/// \class HgiGLScopedStateHolder /// \class HgiGLScopedStateHolder
/// ///
@@ -50,7 +51,7 @@ class HgiGL_ScopedStateHolder final @@ -33,7 +34,7 @@ class HgiGL_ScopedStateHolder final
{ {
public: public:
HGIGL_API HGIGL_API
@@ -342,7 +346,7 @@ index d006480b9b..be6698e04c 100644
HGIGL_API HGIGL_API
~HgiGL_ScopedStateHolder(); ~HgiGL_ScopedStateHolder();
@@ -59,6 +60,8 @@ class HgiGL_ScopedStateHolder final @@ -42,6 +43,8 @@ private:
HgiGL_ScopedStateHolder& operator=(const HgiGL_ScopedStateHolder&) = delete; HgiGL_ScopedStateHolder& operator=(const HgiGL_ScopedStateHolder&) = delete;
HgiGL_ScopedStateHolder(const HgiGL_ScopedStateHolder&) = delete; HgiGL_ScopedStateHolder(const HgiGL_ScopedStateHolder&) = delete;
@@ -352,26 +356,26 @@ index d006480b9b..be6698e04c 100644
int32_t _restoreVao; int32_t _restoreVao;
diff --git a/pxr/imaging/hgiInterop/opengl.cpp b/pxr/imaging/hgiInterop/opengl.cpp 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 --- a/pxr/imaging/hgiInterop/opengl.cpp
+++ b/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) , _fsDepth(0)
, _prgNoDepth(0) , _prgNoDepth(0)
, _prgDepth(0) , _prgDepth(0)
+ , _vao(0) + , _vao(0)
, _vertexBuffer(0) , _vertexBuffer(0)
{ {
_vs = _CompileShader(_vertexFullscreen, GL_VERTEX_SHADER); _vs = _CompileShader(_vertexFullscreen120, GL_VERTEX_SHADER);
@@ -117,6 +118,7 @@ HgiInteropOpenGL::HgiInteropOpenGL() @@ -100,6 +101,7 @@ HgiInteropOpenGL::HgiInteropOpenGL()
_fsDepth = _CompileShader(_fragmentDepthFullscreen, GL_FRAGMENT_SHADER); _fsDepth = _CompileShader(_fragmentDepthFullscreen120, GL_FRAGMENT_SHADER);
_prgNoDepth = _LinkProgram(_vs, _fsNoDepth); _prgNoDepth = _LinkProgram(_vs, _fsNoDepth);
_prgDepth = _LinkProgram(_vs, _fsDepth); _prgDepth = _LinkProgram(_vs, _fsDepth);
+ glCreateVertexArrays(1, &_vao); + glCreateVertexArrays(1, &_vao);
_vertexBuffer = _CreateVertexBuffer(); _vertexBuffer = _CreateVertexBuffer();
TF_VERIFY(glGetError() == GL_NO_ERROR); TF_VERIFY(glGetError() == GL_NO_ERROR);
} }
@@ -129,6 +131,7 @@ HgiInteropOpenGL::~HgiInteropOpenGL() @@ -112,6 +114,7 @@ HgiInteropOpenGL::~HgiInteropOpenGL()
glDeleteProgram(_prgNoDepth); glDeleteProgram(_prgNoDepth);
glDeleteProgram(_prgDepth); glDeleteProgram(_prgDepth);
glDeleteBuffers(1, &_vertexBuffer); glDeleteBuffers(1, &_vertexBuffer);
@@ -379,7 +383,7 @@ index 95736721f1..4f970ed608 100644
TF_VERIFY(glGetError() == GL_NO_ERROR); 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 // Get the current array buffer binding state
@@ -393,7 +397,7 @@ index 95736721f1..4f970ed608 100644
const GLint locPosition = glGetAttribLocation(prg, "position"); const GLint locPosition = glGetAttribLocation(prg, "position");
glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer); glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer);
glVertexAttribPointer(locPosition, 4, GL_FLOAT, GL_FALSE, glVertexAttribPointer(locPosition, 4, GL_FLOAT, GL_FALSE,
@@ -271,6 +277,7 @@ HgiInteropOpenGL::CompositeToInterop( @@ -254,6 +260,7 @@ HgiInteropOpenGL::CompositeToInterop(
glDisableVertexAttribArray(locPosition); glDisableVertexAttribArray(locPosition);
glDisableVertexAttribArray(locUv); glDisableVertexAttribArray(locUv);
glBindBuffer(GL_ARRAY_BUFFER, restoreArrayBuffer); glBindBuffer(GL_ARRAY_BUFFER, restoreArrayBuffer);
@@ -402,10 +406,10 @@ index 95736721f1..4f970ed608 100644
if (!blendEnabled) { if (!blendEnabled) {
glDisable(GL_BLEND); glDisable(GL_BLEND);
diff --git a/pxr/imaging/hgiInterop/opengl.h b/pxr/imaging/hgiInterop/opengl.h 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 --- a/pxr/imaging/hgiInterop/opengl.h
+++ b/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 _fsDepth;
uint32_t _prgNoDepth; uint32_t _prgNoDepth;
uint32_t _prgDepth; uint32_t _prgDepth;

View File

@@ -1,5 +1,5 @@
diff --git a/pxr/base/arch/attributes.cpp b/pxr/base/arch/attributes.cpp 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 --- a/pxr/base/arch/attributes.cpp
+++ b/pxr/base/arch/attributes.cpp +++ b/pxr/base/arch/attributes.cpp
@@ -187,7 +187,7 @@ AddImage(const struct mach_header* mh, intptr_t slide) @@ -187,7 +187,7 @@ AddImage(const struct mach_header* mh, intptr_t slide)
@@ -39,17 +39,17 @@ index 1309d6f..de65e99 100644
if (entries[i].function && if (entries[i].function &&
entries[i].version == static_cast<unsigned>(PXR_VERSION)) { entries[i].version == static_cast<unsigned>(PXR_VERSION)) {
diff --git a/pxr/base/arch/attributes.h b/pxr/base/arch/attributes.h 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 --- a/pxr/base/arch/attributes.h
+++ b/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 unsigned int priority:8; // Priority of function
}; };
-// Emit a Arch_ConstructorEntry in the __Data,pxrctor section. -// Emit a Arch_ConstructorEntry in the __Data,pxrctor section.
+// Emit a Arch_ConstructorEntry in the __Data,pxbctor section. +// Emit a Arch_ConstructorEntry in the __Data,pxbctor section.
# define ARCH_CONSTRUCTOR(_name, _priority, ...) \ # define ARCH_CONSTRUCTOR(_name, _priority) \
static void _name(__VA_ARGS__); \ static void _name(); \
static const Arch_ConstructorEntry _ARCH_CAT_NOEXPAND(arch_ctor_, _name) \ static const Arch_ConstructorEntry _ARCH_CAT_NOEXPAND(arch_ctor_, _name) \
- __attribute__((used, section("__DATA,pxrctor"))) = { \ - __attribute__((used, section("__DATA,pxrctor"))) = { \
+ __attribute__((used, section("__DATA,pxbctor"))) = { \ + __attribute__((used, section("__DATA,pxbctor"))) = { \
@@ -57,32 +57,32 @@ index 1d2820d..424e060 100644
static_cast<unsigned>(PXR_VERSION), \ static_cast<unsigned>(PXR_VERSION), \
_priority \ _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,pxrdtor section.
+// Emit a Arch_ConstructorEntry in the __Data,pxbdtor section. +// Emit a Arch_ConstructorEntry in the __Data,pxbdtor section.
# define ARCH_DESTRUCTOR(_name, _priority, ...) \ # define ARCH_DESTRUCTOR(_name, _priority) \
static void _name(__VA_ARGS__); \ static void _name(); \
static const Arch_ConstructorEntry _ARCH_CAT_NOEXPAND(arch_dtor_, _name) \ static const Arch_ConstructorEntry _ARCH_CAT_NOEXPAND(arch_dtor_, _name) \
- __attribute__((used, section("__DATA,pxrdtor"))) = { \ - __attribute__((used, section("__DATA,pxrdtor"))) = { \
+ __attribute__((used, section("__DATA,pxbdtor"))) = { \ + __attribute__((used, section("__DATA,pxbdtor"))) = { \
reinterpret_cast<Arch_ConstructorEntry::Type>(&_name), \ reinterpret_cast<Arch_ConstructorEntry::Type>(&_name), \
static_cast<unsigned>(PXR_VERSION), \ static_cast<unsigned>(PXR_VERSION), \
_priority \ _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 // The used attribute is required to prevent these apparently unused functions
// from being removed by the linker. // 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(".pxrctor"), constructor((_priority) + 100))) \
+ __attribute__((used, section(".pxbctor"), constructor((_priority) + 100))) \ + __attribute__((used, section(".pxbctor"), constructor((_priority) + 100))) \
static void _name(__VA_ARGS__) static void _name()
# define ARCH_DESTRUCTOR(_name, _priority, ...) \ # define ARCH_DESTRUCTOR(_name, _priority) \
- __attribute__((used, section(".pxrdtor"), destructor((_priority) + 100))) \ - __attribute__((used, section(".pxrdtor"), destructor((_priority) + 100))) \
+ __attribute__((used, section(".pxbdtor"), destructor((_priority) + 100))) \ + __attribute__((used, section(".pxbdtor"), destructor((_priority) + 100))) \
static void _name(__VA_ARGS__) static void _name()
#elif defined(ARCH_OS_WINDOWS) #elif defined(ARCH_OS_WINDOWS)
@@ -272,8 +272,8 @@ struct Arch_ConstructorEntry { @@ -266,8 +266,8 @@ struct Arch_ConstructorEntry {
}; };
// Declare the special sections. // Declare the special sections.
@@ -93,7 +93,7 @@ index 1d2820d..424e060 100644
// Objects of this type run the ARCH_CONSTRUCTOR and ARCH_DESTRUCTOR functions // 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. // 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(); ARCH_API ~Arch_ConstructorInit();
}; };
@@ -102,22 +102,22 @@ index 1d2820d..424e060 100644
// extern are to convince the compiler and linker to leave the object in the // 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 // final library/executable instead of stripping it out. In clang/gcc we use
// __attribute__((used)) to do that. // __attribute__((used)) to do that.
# define ARCH_CONSTRUCTOR(_name, _priority, ...) \ # define ARCH_CONSTRUCTOR(_name, _priority) \
static void _name(__VA_ARGS__); \ static void _name(); \
namespace { \ namespace { \
- __declspec(allocate(".pxrctor")) \ - __declspec(allocate(".pxrctor")) \
+ __declspec(allocate(".pxbctor")) \ + __declspec(allocate(".pxbctor")) \
extern const Arch_ConstructorEntry \ extern const Arch_ConstructorEntry \
_ARCH_CAT_NOEXPAND(arch_ctor_, _name) = { \ _ARCH_CAT_NOEXPAND(arch_ctor_, _name) = { \
reinterpret_cast<Arch_ConstructorEntry::Type>(&_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); \ _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 .pxrdtor section.
+ // Emit a Arch_ConstructorEntry in the .pxbdtor section. + // Emit a Arch_ConstructorEntry in the .pxbdtor section.
# define ARCH_DESTRUCTOR(_name, _priority, ...) \ # define ARCH_DESTRUCTOR(_name, _priority) \
static void _name(__VA_ARGS__); \ static void _name(); \
namespace { \ namespace { \
- __declspec(allocate(".pxrdtor")) \ - __declspec(allocate(".pxrdtor")) \
+ __declspec(allocate(".pxbdtor")) \ + __declspec(allocate(".pxbdtor")) \

View File

@@ -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. "

View File

@@ -23,16 +23,14 @@ https://github.com/PixarAnimationStudios/OpenUSD/pull/3603
15 files changed, 305 insertions(+), 98 deletions(-) 15 files changed, 305 insertions(+), 98 deletions(-)
create mode 100644 cmake/modules/FindShaderC.cmake create mode 100644 cmake/modules/FindShaderC.cmake
create mode 100644 cmake/modules/FindSpirvReflect.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.cpp
delete mode 100644 pxr/imaging/hgiVulkan/vk_mem_alloc.h delete mode 100644 pxr/imaging/hgiVulkan/vk_mem_alloc.h
diff --git a/cmake/defaults/Packages.cmake b/cmake/defaults/Packages.cmake 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 --- a/cmake/defaults/Packages.cmake
+++ b/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() endif()
if (PXR_ENABLE_VULKAN_SUPPORT) if (PXR_ENABLE_VULKAN_SUPPORT)
message(STATUS "Enabling experimental feature 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) - 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}") - set(ENV{PATH} "$ENV{VULKAN_SDK}:$ENV{VULKAN_SDK}/include:$ENV{VULKAN_SDK}/lib:$ENV{VULKAN_SDK}/source:$ENV{PATH}")
- find_package(Vulkan REQUIRED) - find_package(Vulkan REQUIRED)
+ - list(APPEND VULKAN_LIBS Vulkan::Vulkan)
+ 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)
- # Find the extra vulkan libraries we need - # Find the extra vulkan libraries we need
- set(EXTRA_VULKAN_LIBS shaderc_combined) - 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) - find_library("${EXTRA_LIBRARY}_PATH" NAMES "${EXTRA_LIBRARY}" PATHS $ENV{VULKAN_SDK}/lib)
- list(APPEND VULKAN_LIBS "${${EXTRA_LIBRARY}_PATH}") - list(APPEND VULKAN_LIBS "${${EXTRA_LIBRARY}_PATH}")
- endforeach() - 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 - # Find the OS specific libs we need
- if (UNIX AND NOT APPLE) - if (UNIX AND NOT APPLE)
- find_package(X11 REQUIRED) - find_package(X11 REQUIRED)
@@ -83,36 +67,47 @@ index 4e9066ca3a..0a929fda3b 100644
- elseif (WIN32) - elseif (WIN32)
- # No extra libs required - # No extra libs required
- endif() - 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) + find_package(VulkanUtilityLibraries CONFIG REQUIRED)
+ list(APPEND VULKAN_LIBS Vulkan::UtilityHeaders) + list(APPEND VULKAN_LIBS Vulkan::UtilityHeaders)
+ +
+ find_package(VulkanLoader CONFIG REQUIRED) + find_package(VulkanLoader CONFIG REQUIRED)
+ list(APPEND VULKAN_LIBS Vulkan::Loader) + list(APPEND VULKAN_LIBS $<BUILD_LOCAL_INTERFACE:Vulkan::Loader>)
+
- add_definitions(-DPXR_VULKAN_SUPPORT_ENABLED)
+ find_package(VulkanMemoryAllocator CONFIG REQUIRED) + find_package(VulkanMemoryAllocator CONFIG REQUIRED)
+ list(APPEND VULKAN_LIBS GPUOpen::VulkanMemoryAllocator) + list(APPEND VULKAN_LIBS GPUOpen::VulkanMemoryAllocator)
+ +
+ find_package(ShaderC MODULE REQUIRED) + 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()
- message(FATAL_ERROR "VULKAN_SDK not valid")
+ list(APPEND VULKAN_LIBS spirv-reflect)
endif() endif()
+ +
+ # Find the OS specific libs we need + # Find the OS specific libs we need
+ if (UNIX AND NOT APPLE) + if (UNIX AND NOT APPLE)
+ find_package(X11 REQUIRED) + find_package(X11 REQUIRED)
+ list(APPEND VULKAN_LIBS ${X11_LIBRARIES}) + list(APPEND VULKAN_LIBS $<BUILD_LOCAL_INTERFACE:X11::X11>)
+ elseif (WIN32)
+ # No extra libs required
+ endif() + endif()
+ +
+ add_definitions(-DPXR_VULKAN_SUPPORT_ENABLED) + add_definitions(-DPXR_VULKAN_SUPPORT_ENABLED)
@@ -120,7 +115,7 @@ index 4e9066ca3a..0a929fda3b 100644
# --Opensubdiv # --Opensubdiv
set(OPENSUBDIV_USE_GPU ${PXR_BUILD_GPU_SUPPORT}) set(OPENSUBDIV_USE_GPU ${PXR_BUILD_GPU_SUPPORT})
diff --git a/cmake/macros/Private.cmake b/cmake/macros/Private.cmake 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 --- a/cmake/macros/Private.cmake
+++ b/cmake/macros/Private.cmake +++ b/cmake/macros/Private.cmake
@@ -823,6 +823,12 @@ function(_pxr_target_link_libraries NAME) @@ -823,6 +823,12 @@ function(_pxr_target_link_libraries NAME)
@@ -138,7 +133,7 @@ index 6fe1134c14..4629e5a03f 100644
endif() endif()
diff --git a/cmake/modules/FindShaderC.cmake b/cmake/modules/FindShaderC.cmake diff --git a/cmake/modules/FindShaderC.cmake b/cmake/modules/FindShaderC.cmake
new file mode 100644 new file mode 100644
index 0000000000..4dffb19bcc index 000000000..4dffb19bc
--- /dev/null --- /dev/null
+++ b/cmake/modules/FindShaderC.cmake +++ b/cmake/modules/FindShaderC.cmake
@@ -0,0 +1,41 @@ @@ -0,0 +1,41 @@
@@ -183,71 +178,11 @@ index 0000000000..4dffb19bcc
+ IMPORTED_CONFIGURATIONS "${found_configurations}") + IMPORTED_CONFIGURATIONS "${found_configurations}")
+ endif() + endif()
+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 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 --- a/pxr/imaging/hgiVulkan/CMakeLists.txt
+++ b/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 shaderProgram
shaderSection shaderSection
texture texture
@@ -255,16 +190,8 @@ index 00ad754480..dff4754366 100644
PUBLIC_HEADERS PUBLIC_HEADERS
api.h 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 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 --- a/pxr/imaging/hgiVulkan/device.cpp
+++ b/pxr/imaging/hgiVulkan/device.cpp +++ b/pxr/imaging/hgiVulkan/device.cpp
@@ -11,10 +11,12 @@ @@ -11,10 +11,12 @@
@@ -281,7 +208,7 @@ index 4e5a9627ad..5c0b70ddcb 100644
PXR_NAMESPACE_OPEN_SCOPE 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 // Allow certain buffers/images to have dedicated memory allocations to
// improve performance on some GPUs. // 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_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME);
extensions.push_back(VK_KHR_DEDICATED_ALLOCATION_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.instance = instance->GetVulkanInstance();
allocatorInfo.physicalDevice = _vkPhysicalDevice; allocatorInfo.physicalDevice = _vkPhysicalDevice;
allocatorInfo.device = _vkDevice; allocatorInfo.device = _vkDevice;
@@ -314,7 +241,7 @@ index 4e5a9627ad..5c0b70ddcb 100644
if (supportsMemExtension) { if (supportsMemExtension) {
allocatorInfo.flags |= VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT; allocatorInfo.flags |= VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT;
diff --git a/pxr/imaging/hgiVulkan/diagnostic.cpp b/pxr/imaging/hgiVulkan/diagnostic.cpp 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 --- a/pxr/imaging/hgiVulkan/diagnostic.cpp
+++ b/pxr/imaging/hgiVulkan/diagnostic.cpp +++ b/pxr/imaging/hgiVulkan/diagnostic.cpp
@@ -274,4 +274,4 @@ HgiVulkanResultString(VkResult result) @@ -274,4 +274,4 @@ HgiVulkanResultString(VkResult result)
@@ -325,7 +252,7 @@ index fb8d756d6d..455780e2c8 100644
\ No newline at end of file \ No newline at end of file
+PXR_NAMESPACE_CLOSE_SCOPE +PXR_NAMESPACE_CLOSE_SCOPE
diff --git a/pxr/imaging/hgiVulkan/sampler.cpp b/pxr/imaging/hgiVulkan/sampler.cpp 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 --- a/pxr/imaging/hgiVulkan/sampler.cpp
+++ b/pxr/imaging/hgiVulkan/sampler.cpp +++ b/pxr/imaging/hgiVulkan/sampler.cpp
@@ -12,7 +12,8 @@ @@ -12,7 +12,8 @@
@@ -345,64 +272,6 @@ index e89235cd6f..01de3a85d0 100644
-PXR_NAMESPACE_CLOSE_SCOPE -PXR_NAMESPACE_CLOSE_SCOPE
\ No newline at end of file \ No newline at end of file
+PXR_NAMESPACE_CLOSE_SCOPE +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 diff --git a/pxr/imaging/hgiVulkan/vk_mem_alloc.cpp b/pxr/imaging/hgiVulkan/vk_mem_alloc.cpp
deleted file mode 100644 deleted file mode 100644
index 8f47ddc85f..0000000000 index 8f47ddc85f..0000000000
@@ -441,12 +310,12 @@ index 48f5fceff2..0000000000
- -
-#endif -#endif
diff --git a/pxr/imaging/hgiVulkan/vulkan.h b/pxr/imaging/hgiVulkan/vulkan.h 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 --- a/pxr/imaging/hgiVulkan/vulkan.h
+++ b/pxr/imaging/hgiVulkan/vulkan.h +++ b/pxr/imaging/hgiVulkan/vulkan.h
@@ -22,7 +22,11 @@ @@ -35,7 +35,11 @@
#define VK_EXTERNAL_MEMORY_HANDLE_AUTO 0
#include <vulkan/vulkan.h> #endif
-#include "pxr/imaging/hgiVulkan/vk_mem_alloc.h" -#include "pxr/imaging/hgiVulkan/vk_mem_alloc.h"
+#define VMA_STATIC_VULKAN_FUNCTIONS 1 +#define VMA_STATIC_VULKAN_FUNCTIONS 1
@@ -457,97 +326,12 @@ index 3ea215679f..7f28679328 100644
// Use the default allocator (nullptr) // Use the default allocator (nullptr)
inline VkAllocationCallbacks* 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 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 --- a/pxr/pxrConfig.cmake.in
+++ b/pxr/pxrConfig.cmake.in +++ b/pxr/pxrConfig.cmake.in
@@ -90,6 +90,32 @@ if(@Imath_FOUND@) @@ -115,6 +115,32 @@ if(NOT "@PXR_WORK_IMPL_PACKAGE@" STREQUAL "")
find_dependency(Imath) find_dependency(@PXR_WORK_IMPL_PACKAGE@)
endif() endif()
+if(@PXR_ENABLE_VULKAN_SUPPORT@) +if(@PXR_ENABLE_VULKAN_SUPPORT@)

View File

@@ -1,11 +1,21 @@
--- a/cmake/defaults/Packages.cmake 2025-01-22 08:14:27 --- a/cmake/defaults/Packages.cmake 2025-08-20 13:06:07.093053300 -0700
+++ b/cmake/defaults/Packages.cmake 2025-01-22 08:14:41 +++ b/cmake/defaults/Packages.cmake 2025-08-20 13:47:11.656614900 -0700
@@ -20,7 +20,7 @@ @@ -20,18 +20,6 @@
find_package(Threads REQUIRED) find_package(Threads REQUIRED)
set(PXR_THREAD_LIBS "${CMAKE_THREAD_LIBS_INIT}") 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_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
# Find Boost package before getting any boost specific components as we need to - # disable boost-provided cmake config, based on the boost version found.
# disable boost-provided cmake config, based on the boost version found. - find_package(Boost REQUIRED)
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)

View File

@@ -1,8 +1,8 @@
diff --git a/pxr/imaging/hdSt/renderDelegate.cpp b/pxr/imaging/hdSt/renderDelegate.cpp 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 --- a/pxr/imaging/hdSt/renderDelegate.cpp
+++ b/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 bool
HdStRenderDelegate::IsSupported() HdStRenderDelegate::IsSupported()
{ {

View File

@@ -4,6 +4,6 @@ call nuke dpcpp
call nuke vcintrinsics call nuke vcintrinsics
call nuke openclheaders call nuke openclheaders
call nuke icdloader call nuke icdloader
call nuke mp11 call nuke emhash
call nuke spirvheaders call nuke spirvheaders

View File

@@ -11,8 +11,8 @@ set CMAKE_GENERATOR_INSTANCE=c:\vs2019bt\
set CMAKE_GENERATOR=Visual Studio 16 2019 set CMAKE_GENERATOR=Visual Studio 16 2019
set NODEBUG= set NODEBUG=
set TMPDIR=c:\t\ set TMPDIR=c:\t\
set ROCM_PATH=c:\tools\hip set ROCM_PATH=c:\tools\rocm\6.4
set HIP_PATH=c:\tools\hip set HIP_PATH=c:\tools\rocm\6.4
set PERL=c:\db\build\downloads\perl\perl\bin\perl.exe set PERL=c:\db\build\downloads\perl\perl\bin\perl.exe
set path=%path%;c:\db\build\downloads\perl\perl\bin\; set path=%path%;c:\db\build\downloads\perl\perl\bin\;
if not exist c:\db\ ( if not exist c:\db\ (

View File

@@ -28,7 +28,7 @@ echo # - Visual Studio 2010 X64 redist (required for the yaml binary)
echo # - Git 2.38.0 echo # - Git 2.38.0
echo # - CMake 3.31.7 echo # - CMake 3.31.7
echo # - Cuda 12.8.0 echo # - Cuda 12.8.0
echo # - HIP 6.3.42560 echo # - HIP 6.4.50101
echo # echo #
echo # Additionally this will also create and populate the following folders : echo # Additionally this will also create and populate the following folders :
echo # echo #
@@ -105,10 +105,15 @@ echo *********************************************************************
mkdir c:\tools\cuda\12.8.0\ mkdir c:\tools\cuda\12.8.0\
start /wait c:\install\cuda_12.8.0_571.96_windows.exe start /wait c:\install\cuda_12.8.0_571.96_windows.exe
echo Obtaining Hip SDK 6.3.42560-881c2d702 echo Obtaining 7zr
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 curl https://www.7-zip.org/a/7zr.exe -o c:\install\7zr.exe
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 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 echo Cloning Blender repository
mkdir c:\blendergit mkdir c:\blendergit

View 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)

View File

@@ -158,13 +158,22 @@ find_package(OpenEXR REQUIRED)
add_bundled_libraries(openexr/lib) add_bundled_libraries(openexr/lib)
add_bundled_libraries(imath/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) if(WITH_CODEC_FFMPEG)
set(FFMPEG_ROOT_DIR ${LIBDIR}/ffmpeg) set(FFMPEG_ROOT_DIR ${LIBDIR}/ffmpeg)
set(FFMPEG_FIND_COMPONENTS set(FFMPEG_FIND_COMPONENTS
avcodec avdevice avformat avutil avcodec avdevice avfilter avformat avutil
mp3lame ogg opus swresample swscale mp3lame ogg opus swresample swscale
theora theoradec theoraenc vorbis vorbisenc theora theoradec theoraenc vorbis vorbisenc
vorbisfile vpx x264) 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) if(EXISTS ${LIBDIR}/ffmpeg/lib/libaom.a)
list(APPEND FFMPEG_FIND_COMPONENTS aom) list(APPEND FFMPEG_FIND_COMPONENTS aom)
endif() endif()
@@ -192,11 +201,6 @@ if(SYSTEMSTUBS_LIBRARY)
list(APPEND PLATFORM_LINKLIBS SystemStubs) list(APPEND PLATFORM_LINKLIBS SystemStubs)
endif() 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(WITH_OPENIMAGEDENOISE)
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64") if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
# OpenImageDenoise uses BNNS from the Accelerate framework. # OpenImageDenoise uses BNNS from the Accelerate framework.
@@ -367,6 +371,10 @@ if(WITH_MANIFOLD)
find_package(manifold REQUIRED) find_package(manifold REQUIRED)
endif() endif()
if(WITH_RUBBERBAND)
find_package(Rubberband REQUIRED)
endif()
if(WITH_CYCLES AND WITH_CYCLES_PATH_GUIDING) if(WITH_CYCLES AND WITH_CYCLES_PATH_GUIDING)
find_package(openpgl QUIET) find_package(openpgl QUIET)
if(openpgl_FOUND) if(openpgl_FOUND)

View File

@@ -298,7 +298,7 @@ if(WITH_CODEC_FFMPEG)
# Override FFMPEG components to also include static library dependencies # Override FFMPEG components to also include static library dependencies
# included with precompiled libraries, and to ensure correct link order. # included with precompiled libraries, and to ensure correct link order.
set(FFMPEG_FIND_COMPONENTS set(FFMPEG_FIND_COMPONENTS
avformat avcodec avdevice avutil swresample swscale avformat avdevice avfilter avcodec avutil swresample swscale
sndfile sndfile
FLAC FLAC
mp3lame mp3lame
@@ -588,6 +588,17 @@ if(WITH_MANIFOLD)
mark_as_advanced(manifold_DIR) mark_as_advanced(manifold_DIR)
endif() 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) if(WITH_CYCLES AND WITH_CYCLES_PATH_GUIDING)
find_package_wrapper(openpgl) find_package_wrapper(openpgl)
mark_as_advanced(openpgl_DIR) mark_as_advanced(openpgl_DIR)

View File

@@ -904,6 +904,15 @@ if(WITH_OPENSUBDIV)
endif() endif()
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) if(WITH_SDL)
set(SDL ${LIBDIR}/sdl) set(SDL ${LIBDIR}/sdl)
set(SDL_INCLUDE_DIR ${SDL}/include) set(SDL_INCLUDE_DIR ${SDL}/include)
@@ -1256,7 +1265,11 @@ if(WITH_HARU)
set(HARU_FOUND ON) set(HARU_FOUND ON)
set(HARU_ROOT_DIR ${LIBDIR}/haru) set(HARU_ROOT_DIR ${LIBDIR}/haru)
set(HARU_INCLUDE_DIRS ${HARU_ROOT_DIR}/include) set(HARU_INCLUDE_DIRS ${HARU_ROOT_DIR}/include)
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) set(HARU_LIBRARIES ${HARU_ROOT_DIR}/lib/libhpdfs.lib)
endif()
endif() endif()
if(WITH_VULKAN_BACKEND) if(WITH_VULKAN_BACKEND)

View File

@@ -14,7 +14,7 @@ if(DEFINED WITH_FFTW3 AND WITH_FFTW3) # "Build With FFTW"
set(FFTW_LIBRARY ${FFTW3_LIBRARIES}) set(FFTW_LIBRARY ${FFTW3_LIBRARIES})
endif() endif()
set(WITH_LIBSNDFILE ${WITH_CODEC_SNDFILE}) # "Build With LibSndFile" 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(SEPARATE_C FALSE) # "Build C Binding as separate library"
set(PLUGIN_COREAUDIO FALSE) # "Build CoreAudio Plugin" set(PLUGIN_COREAUDIO FALSE) # "Build CoreAudio Plugin"
set(PLUGIN_FFMPEG FALSE) # "Build FFMPEG Plugin" set(PLUGIN_FFMPEG FALSE) # "Build FFMPEG Plugin"

View File

@@ -1354,7 +1354,7 @@ static const int lowest_supported_driver_version_win = 1016554;
* This information is returned by `ocloc query OCL_DRIVER_VERSION`. */ * This information is returned by `ocloc query OCL_DRIVER_VERSION`. */
static const int lowest_supported_driver_version_neo = 31896; static const int lowest_supported_driver_version_neo = 31896;
# else # else
static const int lowest_supported_driver_version_neo = 31740; static const int lowest_supported_driver_version_neo = 34666;
# endif # endif
int parse_driver_build_version(const sycl::device &device) int parse_driver_build_version(const sycl::device &device)

View File

@@ -62,12 +62,8 @@ if(WITH_HARU)
${HARU_INCLUDE_DIRS} ${HARU_INCLUDE_DIRS}
) )
list(APPEND LIB list(APPEND LIB
${HARU_LIBRARIES} PRIVATE ${HARU_LIBRARIES}
PRIVATE ${TIFF_LIBRARY} # needed for TIFFFaxBlackCodes in older (<5.0) lib folders
# 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}
) )
add_definitions(-DWITH_HARU) add_definitions(-DWITH_HARU)
endif() endif()

View File

@@ -1420,6 +1420,13 @@ elseif(WIN32)
# Filenames change slightly between FFMPEG versions check both 6.0 and fallback to 5.0 # Filenames change slightly between FFMPEG versions check both 6.0 and fallback to 5.0
# to ease the transition between versions. # 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") if(EXISTS "${LIBDIR}/ffmpeg/lib/avcodec-61.dll")
windows_install_shared_manifest( windows_install_shared_manifest(
FILES FILES