Initial commit.

This commit is contained in:
hal8174 2024-04-23 10:14:24 +02:00
commit d3bb49b3f5
1073 changed files with 484757 additions and 0 deletions

View file

@ -0,0 +1,239 @@
{
"version": 4,
"cmakeMinimumRequired": {
"major": 3,
"minor": 23,
"patch": 0
},
"configurePresets": [
{
"name": "gcc",
"cacheVariables": {
"CMAKE_CXX_COMPILER": "g++",
"CMAKE_C_COMPILER": "gcc"
}
},
{
"name": "clang",
"cacheVariables": {
"CMAKE_CXX_COMPILER": "clang++",
"CMAKE_C_COMPILER": "clang"
}
},
{
"name": "clang4",
"cacheVariables": {
"CMAKE_CXX_COMPILER": "$env{EMBREE_CLANG_4_0_0_PP}",
"CMAKE_C_COMPILER": "$env{EMBREE_CLANG_4_0_0}"
}
},
{
"name": "clang5",
"cacheVariables": {
"CMAKE_CXX_COMPILER": "$env{EMBREE_CLANG_5_0_0_PP}",
"CMAKE_C_COMPILER": "$env{EMBREE_CLANG_5_0_0}"
}
},
{
"name": "dpcpp",
"generator": "Ninja",
"cacheVariables": {
"CMAKE_CXX_COMPILER": "clang++",
"CMAKE_C_COMPILER": "clang"
}
},
{
"name": "icx",
"generator": "Ninja",
"cacheVariables": {
"CMAKE_CXX_COMPILER": "icpx",
"CMAKE_C_COMPILER": "icx"
}
},
{
"name": "icx-windows",
"generator": "Ninja",
"cacheVariables": {
"CMAKE_CXX_COMPILER": "icx",
"CMAKE_C_COMPILER": "icx"
}
},
{
"name": "dpcpp-windows",
"generator": "Ninja",
"cacheVariables": {
"CMAKE_CXX_COMPILER": "clang++",
"CMAKE_C_COMPILER": "clang"
}
},
{
"name": "v143",
"generator": "Visual Studio 17 2022",
"architecture": "x64",
"toolset": "V143"
},
{
"name": "v142",
"generator": "Visual Studio 16 2019",
"architecture": "x64",
"toolset": "V142"
},
{
"name": "v142-clang",
"generator": "Visual Studio 16 2019",
"architecture": "x64",
"toolset": "LLVM_v142"
},
{
"name": "v141",
"generator": "Visual Studio 15 2017Win64",
"toolset": "V141"
},
{
"name": "v141-icc19",
"generator": "Visual Studio 15 2017Win64",
"toolset": "Intel C++ Compiler 19.0"
},
{
"name": "v141-icc18",
"generator": "Visual Studio 15 2017Win64",
"toolset": "Intel C++ Compiler 18.0"
},
{
"name": "v141-clang",
"generator": "Visual Studio 15 2017Win64",
"toolset": "v141_clang_c2"
},
{
"name": "v140",
"generator": "Visual Studio 14 2015Win64",
"toolset": "V140"
},
{
"name": "v140-icc19",
"generator": "Visual Studio 14 2015Win64",
"toolset": "Intel C++ Compiler 19.0"
},
{
"name": "v140-icc18",
"generator": "Visual Studio 14 2015Win64",
"toolset": "Intel C++ Compiler 18.0"
},
{
"name": "v140-icc17",
"generator": "Visual Studio 14 2015Win64",
"toolset": "Intel C++ Compiler 17.0"
},
{
"name": "v120",
"generator": "Visual Studio 12 2013Win64",
"toolset": "V120"
},
{
"name": "v120-icc17",
"generator": "Visual Studio 12 2013Win64",
"toolset": "Intel C++ Compiler 17.0"
},
{
"name": "v120-icc16",
"generator": "Visual Studio 12 2013Win64",
"toolset": "Intel C++ Compiler 16.0"
},
{
"name": "v120-icc15",
"generator": "Visual Studio 12 2013Win64",
"toolset": "Intel C++ Compiler XE 15.0"
},
{
"name": "v110",
"generator": "Visual Studio 11 2012Win64",
"toolset": "V110"
},
{
"name": "ispc1_13_0",
"hidden": true,
"cacheVariables": {
"EMBREE_ISPC_SUPPORT": "ON",
"EMBREE_ISPC_EXECUTABLE": "$env{EMBREE_ISPC_1_13_0_PATH}"
}
},
{
"name": "ispc1_14_1",
"hidden": true,
"cacheVariables": {
"EMBREE_ISPC_SUPPORT": "ON",
"EMBREE_ISPC_EXECUTABLE": "$env{EMBREE_ISPC_1_14_1_PATH}"
}
},
{
"name": "ispc1_16_1",
"hidden": true,
"cacheVariables": {
"EMBREE_ISPC_SUPPORT": "ON",
"EMBREE_ISPC_EXECUTABLE": "$env{EMBREE_ISPC_1_16_1_PATH}"
}
},
{
"name": "ispc1_17_0",
"hidden": true,
"cacheVariables": {
"EMBREE_ISPC_SUPPORT": "ON",
"EMBREE_ISPC_EXECUTABLE": "$env{EMBREE_ISPC_1_17_0_PATH}"
}
},
{
"name": "ispc1_18_1",
"hidden": true,
"cacheVariables": {
"EMBREE_ISPC_SUPPORT": "ON",
"EMBREE_ISPC_EXECUTABLE": "$env{EMBREE_ISPC_1_18_1_PATH}"
}
},
{
"name": "ispc1_19_0",
"hidden": true,
"cacheVariables": {
"EMBREE_ISPC_SUPPORT": "ON",
"EMBREE_ISPC_EXECUTABLE": "$env{EMBREE_ISPC_1_19_0_PATH}"
}
},
{
"name": "ispc1_20_0",
"hidden": true,
"cacheVariables": {
"EMBREE_ISPC_SUPPORT": "ON",
"EMBREE_ISPC_EXECUTABLE": "$env{EMBREE_ISPC_1_20_0_PATH}"
}
},
{
"name": "ispc1_21_0",
"hidden": true,
"cacheVariables": {
"EMBREE_ISPC_SUPPORT": "ON",
"EMBREE_ISPC_EXECUTABLE": "$env{EMBREE_ISPC_1_21_0_PATH}"
}
},
{
"name": "ispc1_22_0",
"hidden": true,
"cacheVariables": {
"EMBREE_ISPC_SUPPORT": "ON",
"EMBREE_ISPC_EXECUTABLE": "$env{EMBREE_ISPC_1_22_0_PATH}"
}
},
{
"name": "ispc1_23_0",
"hidden": true,
"cacheVariables": {
"EMBREE_ISPC_SUPPORT": "ON",
"EMBREE_ISPC_EXECUTABLE": "$env{EMBREE_ISPC_1_23_0_PATH}"
}
},
{
"name": "ispc_NEWEST",
"hidden": true,
"inherits": "ispc1_23_0"
}
]
}

View file

@ -0,0 +1,222 @@
{
"version": 4,
"cmakeMinimumRequired": {
"major": 3,
"minor": 11,
"patch": 0
},
"include": [
"os.json",
"package.json",
"compiler.json",
"tbb.json"
],
"configurePresets": [
{
"name": "linux-DG2-JIT-INTERNAL",
"inherits": ["package-linux", "env", "dpcpp", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"EMBREE_SYCL_SUPPORT": "ON",
"EMBREE_LEVEL_ZERO": "ON",
"EMBREE_SYCL_L0_RTAS_BUILDER" : "OFF",
"EMBREE_SYCL_AOT_DEVICES": "none",
"EMBREE_MAX_ISA": "SSE2"
}
},
{
"name": "linux-DG2-JIT-PUBLIC",
"inherits": "linux-DG2-JIT-INTERNAL"
},
{
"name": "linux-DG2-JIT-EMBARGO",
"inherits": "linux-DG2-JIT-INTERNAL"
},
{
"name": "linux-DG2-JIT-PUBLIC-sycl-nightly-RK",
"inherits": "linux-DG2-JIT-INTERNAL",
"cacheVariables": {
"EMBREE_MAX_ISA": "AVX512"
}
},
{
"name": "linux-DG2-JIT-PUBLIC-ICX",
"inherits": ["package-linux", "env", "icx", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithAssert",
"EMBREE_SYCL_SUPPORT": "ON",
"EMBREE_LEVEL_ZERO": "ON",
"EMBREE_SYCL_L0_RTAS_BUILDER" : "OFF",
"EMBREE_SYCL_AOT_DEVICES": "none",
"EMBREE_MAX_ISA": "AVX512"
}
},
{
"name": "linux-DG2-JIT-PUBLIC-ICX-RC",
"inherits": "linux-DG2-JIT-PUBLIC-ICX"
},
{
"name": "linux-PVC-JIT-INTERNAL",
"inherits": ["package-linux", "env", "icx", "ispc_NEWEST", "tbb_SYSTEM"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithAssert",
"EMBREE_SYCL_SUPPORT": "ON",
"EMBREE_LEVEL_ZERO": "ON",
"EMBREE_SYCL_L0_RTAS_BUILDER" : "OFF",
"EMBREE_SYCL_AOT_DEVICES": "none",
"EMBREE_MAX_ISA": "SSE2"
}
},
{
"name": "windows-DG2-JIT-INTERNAL",
"inherits": ["package-windows", "env", "dpcpp-windows", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_SYCL_SUPPORT": "ON",
"EMBREE_SYCL_L0_RTAS_BUILDER" : "OFF",
"EMBREE_SYCL_AOT_DEVICES": "none",
"EMBREE_MAX_ISA": "SSE2"
}
},
{
"name": "windows-DG2-JIT-INTERNAL-L0RTAS",
"inherits": ["package-windows", "env", "dpcpp-windows", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_SYCL_SUPPORT": "ON",
"EMBREE_SYCL_L0_RTAS_BUILDER" : "ON",
"EMBREE_SYCL_AOT_DEVICES": "none",
"EMBREE_MAX_ISA": "SSE2"
}
},
{
"name": "linux-fedora26-CLANG4",
"inherits": ["package-linux", "env", "clang4", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"EMBREE_CONFIG": "frequency_level=simd128",
"EMBREE_MAX_ISA": "AVX512",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "linux-fedora26-CLANG5-INT-ADDRSANITIZER",
"inherits": ["package-linux", "env", "clang5", "ispc_NEWEST", "tasking_internal"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"EMBREE_MAX_ISA": "SSE2",
"EMBREE_ADDRESS_SANITIZER": "ON",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "linux-fedora29-ICX",
"inherits": ["package-linux", "env", "dpcpp", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"EMBREE_BUILD_GLFW_FROM_SOURCE": "OFF",
"EMBREE_CONFIG": "frequency_level=simd256",
"EMBREE_MAX_ISA": "AVX512",
"EMBREE_MAX_INSTANCE_LEVEL_COUNT": "4"
}
},
{
"name": "linux-fedora32-ICX",
"inherits": "linux-fedora29-ICX"
},
{
"name": "linux-fedora32-GCC",
"inherits": ["package-linux", "env", "gcc", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"EMBREE_CONFIG": "frequency_level=simd256",
"EMBREE_MAX_ISA": "AVX512",
"EMBREE_COMPACT_POLYS": "ON",
"EMBREE_MIN_WIDTH": "ON"
}
},
{
"name": "linux-ubuntu20_04-GCC-NAMESPACE",
"inherits": ["package-linux", "env", "gcc", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"EMBREE_CONFIG": "frequency_level=simd256",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_API_NAMESPACE": "myembree",
"EMBREE_LIBRARY_NAME": "myembree"
}
},
{
"name": "linux-ubuntu20_04-ICX",
"inherits": ["package-linux", "env", "icx", "ispc_NEWEST", "tbb_SYSTEM"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"EMBREE_CONFIG": "frequency_level=simd256",
"EMBREE_MAX_ISA": "AVX512"
}
},
{
"name": "linux-ubuntu20_04-ICX-RC",
"inherits": "linux-ubuntu20_04-ICX"
},
{
"name": "linux-centos7_4-GCC",
"inherits": ["package-linux", "env", "gcc", "ispc1_21_0", "tbb_SYSTEM"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"EMBREE_CONFIG": "frequency_level=simd128",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_COMPACT_POLYS": "ON",
"EMBREE_MIN_WIDTH": "ON"
}
},
{
"name": "windows-V142",
"inherits": ["package-windows", "env", "v142", "tbb_SYSTEM"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"EMBREE_MAX_ISA": "SSE2",
"EMBREE_MAX_INSTANCE_LEVEL_COUNT": "8"
}
},
{
"name": "windows-ICX",
"inherits": ["package-windows", "env", "icx-windows", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"EMBREE_MAX_ISA": "AVX512"
}
},
{
"name": "windows-ICX-RC",
"inherits": "windows-ICX"
},
{
"name": "macos-ARM-CLANG-NEON-AVX2",
"binaryDir": "${sourceDir}/build",
"inherits": ["package-macos", "env", "clang", "ispc_NEWEST", "tbb_HOMEBREW"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "NEON2X"
}
},
{
"name": "macos-ARM-CLANG-NEON",
"binaryDir": "${sourceDir}/build",
"inherits": ["package-macos", "env", "clang", "ispc_NEWEST", "tbb_HOMEBREW"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "NEON"
}
},
{
"name": "macos-x64-CLANG",
"binaryDir": "${sourceDir}/build",
"inherits": ["package-macos", "env", "clang", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "AVX512"
}
}
]
}

View file

@ -0,0 +1,160 @@
{
"version": 4,
"cmakeMinimumRequired": {
"major": 3,
"minor": 11,
"patch": 0
},
"include": [
"os.json",
"package.json",
"compiler.json",
"tbb.json"
],
"configurePresets": [
{
"name": "integrate-windows-icx",
"inherits": ["package-windows", "env", "icx-windows", "ispc_NEWEST", "tbb_NEWEST"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "AVX512"
}
},
{
"name": "integrate-windows-v142",
"inherits": ["package-windows", "env", "v142", "ispc_NEWEST", "tbb_NEWEST"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "SSE2"
}
},
{
"name": "integrate-static-windows-icx",
"inherits": ["package-static-windows", "env", "icx-windows", "ispc_NEWEST", "tbb_NEWEST"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "AVX512"
}
},
{
"name": "integrate-static-windows-v142",
"inherits": ["package-static-windows", "env", "v142", "ispc_NEWEST", "tbb_NEWEST"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "SSE2"
}
},
{
"name": "integrate-linux-gcc",
"inherits": ["package-linux", "env", "gcc", "ispc_NEWEST", "tbb_NEWEST"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "AVX512"
}
},
{
"name": "integrate-linux-icx",
"inherits": ["package-linux", "env", "icx", "ispc_NEWEST", "tbb_NEWEST"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "AVX512"
}
},
{
"name": "integrate-linux-clang",
"inherits": ["package-linux", "env", "clang", "ispc_NEWEST", "tbb_NEWEST"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "AVX512"
}
},
{
"name": "integrate-static-linux-gcc",
"inherits": ["package-linux", "env", "gcc", "ispc_NEWEST", "tbb_NEWEST"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "AVX512"
}
},
{
"name": "integrate-static-linux-icx",
"inherits": ["package-linux", "env", "icx", "ispc_NEWEST", "tbb_NEWEST"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "AVX512"
}
},
{
"name": "integrate-static-linux-clang",
"inherits": ["package-linux", "env", "clang", "ispc_NEWEST", "tbb_NEWEST"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "AVX512"
}
},
{
"name": "integrate-sycl-linux-icx",
"inherits": ["package-linux", "env", "icx", "ispc_NEWEST", "tbb_NEWEST"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_SYCL_SUPPORT": "ON",
"EMBREE_LEVEL_ZERO": "ON",
"EMBREE_SYCL_L0_RTAS_BUILDER" : "OFF",
"EMBREE_SYCL_AOT_DEVICES": "none",
"EMBREE_MAX_ISA": "AVX512"
}
},
{
"name": "integrate-sycl-linux-dpcpp",
"inherits": ["package-linux", "env", "dpcpp", "ispc_NEWEST", "tbb_NEWEST"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_SYCL_SUPPORT": "ON",
"EMBREE_LEVEL_ZERO": "ON",
"EMBREE_SYCL_L0_RTAS_BUILDER" : "OFF",
"EMBREE_SYCL_AOT_DEVICES": "none",
"EMBREE_MAX_ISA": "SSE2"
}
},
{
"name": "integrate-macos-gcc",
"inherits": ["package-macos", "env", "gcc", "ispc_NEWEST", "tbb_NEWEST"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "AVX512"
}
},
{
"name": "integrate-macos-clang",
"inherits": ["package-macos", "env", "clang", "ispc_NEWEST", "tbb_NEWEST"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "AVX512"
}
}
]
}

View file

@ -0,0 +1,600 @@
{
"version": 4,
"cmakeMinimumRequired": {
"major": 3,
"minor": 11,
"patch": 0
},
"include": [
"os.json",
"package.json",
"compiler.json",
"tbb.json"
],
"configurePresets": [
{
"name": "nightly-linux-DG2-JIT-MULTILEVEL",
"inherits": ["package-linux", "env", "dpcpp", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"EMBREE_SYCL_SUPPORT": "ON",
"EMBREE_SYCL_L0_RTAS_BUILDER" : "OFF",
"EMBREE_SYCL_AOT_DEVICES": "none",
"EMBREE_MAX_ISA": "SSE2",
"EMBREE_MAX_INSTANCE_LEVEL_COUNT": "2"
}
},
{
"name": "nightly-linux-DG2-INTERNAL-L0RTAS",
"inherits": ["package-linux", "env", "dpcpp", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"EMBREE_SYCL_SUPPORT": "ON",
"EMBREE_SYCL_L0_RTAS_BUILDER" : "ON",
"EMBREE_SYCL_AOT_DEVICES": "none",
"EMBREE_MAX_ISA": "SSE2"
}
},
{
"name": "nightly-linux-PVC-JIT",
"inherits": ["package-linux", "env", "dpcpp", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"EMBREE_SYCL_SUPPORT": "ON",
"EMBREE_SYCL_L0_RTAS_BUILDER" : "OFF",
"EMBREE_SYCL_AOT_DEVICES": "none",
"EMBREE_MAX_ISA": "SSE2"
}
},
{
"name": "nightly-windows-DG2-JIT",
"inherits": ["package-windows", "env", "dpcpp-windows", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_SYCL_SUPPORT": "ON",
"EMBREE_SYCL_L0_RTAS_BUILDER" : "OFF",
"EMBREE_SYCL_AOT_DEVICES": "none",
"EMBREE_MAX_ISA": "SSE2"
}
},
{
"name": "nightly-windows-DG2-JIT-ICX",
"inherits": ["package-windows", "env", "icx-windows", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_SYCL_SUPPORT": "ON",
"EMBREE_SYCL_L0_RTAS_BUILDER" : "OFF",
"EMBREE_SYCL_AOT_DEVICES": "none",
"EMBREE_MAX_ISA": "AVX512"
}
},
{
"name": "nightly-windows-DG2-JIT-NIGHTLY",
"inherits": ["package-windows", "env", "dpcpp-windows", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_SYCL_SUPPORT": "ON",
"EMBREE_SYCL_L0_RTAS_BUILDER" : "OFF",
"EMBREE_SYCL_AOT_DEVICES": "none",
"EMBREE_MAX_ISA": "AVX512"
}
},
{
"name": "nightly-linux-DEBUG-CLANG4-SSE2-NAMESPACE",
"inherits": ["package-linux", "env", "clang4", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "SSE2",
"EMBREE_TUTORIALS_GLFW": "OFF",
"EMBREE_MAX_INSTANCE_LEVEL_COUNT": "8",
"EMBREE_API_NAMESPACE": "myembree",
"EMBREE_LIBRARY_NAME": "myembree"
}
},
{
"name": "nightly-linux-DEBUG-CLANG5-ISPC1_14_1-AVX2-INT-ADDRSANITIZER",
"inherits": ["package-linux", "env", "clang5", "ispc1_14_1", "tasking_internal"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_ADDRESS_SANITIZER": "ON",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-linux-DEBUG-CLANG4-ISPC1_16_1-AVX2-TBB2021_9_0-STATIC",
"inherits": ["package-static-linux", "env", "clang4", "ispc1_16_1", "tbb2021_9_0"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_CONFIG": "frequency_level=simd128",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-linux-DEBUG-CLANG4-ISPC1_16_1-AVX512VL-TBB2020_2",
"inherits": ["package-linux", "env", "clang4", "ispc1_16_1", "tbb2020_2_0"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_CONFIG": "frequency_level=simd256",
"EMBREE_MAX_ISA": "AVX512",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-linux-DEBUG-GCC-ISPC1_16_1-SSE2-TBB2021_2",
"inherits": ["package-linux", "env", "gcc", "ispc1_16_1", "tbb2021_2_0"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "SSE2",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-linux-DEBUG-GCC-ISPC1_16_1-AVX-TBB2019_9",
"inherits": ["package-linux", "env", "gcc", "ispc1_16_1", "tbb2019_9_0"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-linux-DEBUG-GCC-ISPC1_17_0-AVX2-TBB2021_2_0",
"inherits": ["package-linux", "env", "gcc", "ispc1_17_0", "tbb2021_2_0"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-linux-DEBUG-ICX-ISPC1_16_1-AVX-TBB2019_2",
"inherits": ["package-linux", "env", "icx", "ispc1_16_1", "tbb2019_2_0"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-linux-DEBUG-ICX-ISPC1_16_1-AVX512VL-TBB2019_2",
"inherits": ["package-linux", "env", "icx", "ispc1_16_1", "tbb2019_2_0"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX512",
"EMBREE_CONFIG": "frequency_level=simd256",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-linux-DEBUG-ICX-ISPC1_16_1-AVX512-TBB2019_9",
"inherits": ["package-linux", "env", "icx", "ispc1_16_1", "tbb2019_9_0"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX512",
"EMBREE_CONFIG": "frequency_level=simd256",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-linux-DEBUG-ICX-ISPC1_16_1-AVX2-TBB2021_2_0",
"inherits": ["package-linux", "env", "icx", "ispc1_16_1", "tbb2021_2_0"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-linux-DEBUG-ICX-ISPC1_17_0-AVX2-TBB2019_9",
"inherits": ["package-linux", "env", "icx", "ispc1_17_0", "tbb2019_9_0"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-linux-DEBUG-ICX-ISPC1_17_0-AVX512VL-TBB2021_5_0",
"inherits": ["package-linux", "env", "icx", "ispc1_17_0", "tbb2021_5_0"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX512",
"EMBREE_CONFIG": "frequency_level=simd256",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-distrotest",
"inherits": ["package-linux", "env", "gcc", "ispc_NEWEST", "tbb_SYSTEM"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-distrotest-ISPC1_14_1-TBB2021_2",
"inherits": ["package-linux", "env", "gcc", "ispc1_14_1", "tbb2021_2_0"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-distrotest-AVX512",
"inherits": ["package-linux", "env", "gcc", "ispc_NEWEST", "tbb_SYSTEM"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX512",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-singleprimitive",
"inherits": ["package-linux", "env", "clang4", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_TUTORIALS_GLFW": "OFF",
"EMBREE_GEOMETRY_TRIANGLE": "OFF",
"EMBREE_GEOMETRY_QUAD": "OFF",
"EMBREE_GEOMETRY_GRID": "OFF",
"EMBREE_GEOMETRY_CURVE": "OFF",
"EMBREE_GEOMETRY_POINT": "OFF",
"EMBREE_GEOMETRY_SUBDIVISION": "OFF",
"EMBREE_GEOMETRY_USER": "OFF",
"EMBREE_GEOMETRY_INSTANCE": "OFF",
"EMBREE_GEOMETRY_INSTANCE_ARRAY": "OFF"
}
},
{
"name": "nightly-singleprimitive-TRI",
"inherits": ["nightly-singleprimitive"],
"cacheVariables": {
"EMBREE_GEOMETRY_TRIANGLE": "ON"
}
},
{
"name": "nightly-singleprimitive-QUAD",
"inherits": ["nightly-singleprimitive"],
"cacheVariables": {
"EMBREE_GEOMETRY_QUAD": "ON"
}
},
{
"name": "nightly-singleprimitive-GRID",
"inherits": ["nightly-singleprimitive"],
"cacheVariables": {
"EMBREE_GEOMETRY_TRIANGLE": "ON",
"EMBREE_GEOMETRY_SUBDIVISION": "ON",
"EMBREE_GEOMETRY_GRID": "ON"
}
},
{
"name": "nightly-singleprimitive-CURVE",
"inherits": ["nightly-singleprimitive"],
"cacheVariables": {
"EMBREE_GEOMETRY_TRIANGLE": "ON",
"EMBREE_GEOMETRY_CURVE": "ON"
}
},
{
"name": "nightly-singleprimitive-SUBDIV",
"inherits": ["nightly-singleprimitive"],
"cacheVariables": {
"EMBREE_GEOMETRY_TRIANGLE": "ON",
"EMBREE_GEOMETRY_SUBDIVISION": "ON"
}
},
{
"name": "nightly-singleprimitive-USERGEOM",
"inherits": ["nightly-singleprimitive"],
"cacheVariables": {
"EMBREE_GEOMETRY_TRIANGLE": "ON",
"EMBREE_GEOMETRY_USER": "ON"
}
},
{
"name": "nightly-singleprimitive-INSTANCE",
"inherits": ["nightly-singleprimitive"],
"cacheVariables": {
"EMBREE_GEOMETRY_TRIANGLE": "ON",
"EMBREE_GEOMETRY_INSTANCE": "ON"
}
},
{
"name": "nightly-singleprimitive-INSTANCE_ARRAY",
"inherits": ["nightly-singleprimitive"],
"cacheVariables": {
"EMBREE_GEOMETRY_TRIANGLE": "ON",
"EMBREE_GEOMETRY_INSTANCE_ARRAY": "ON"
}
},
{
"name": "nightly-singleprimitive-INSTANCE-INSTANCE_ARRAY",
"inherits": ["nightly-singleprimitive"],
"cacheVariables": {
"EMBREE_GEOMETRY_TRIANGLE": "ON",
"EMBREE_GEOMETRY_INSTANCE": "ON",
"EMBREE_GEOMETRY_INSTANCE_ARRAY": "ON"
}
},
{
"name": "nightly-linux-feature-NO_ISPC",
"inherits": ["package-linux", "env", "clang4", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-linux-feature-NO_TUTORIALS",
"inherits": ["package-linux", "env", "clang4", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_TUTORIALS_GLFW": "OFF",
"EMBREE_TUTORIALS": "OFF"
}
},
{
"name": "nightly-linux-feature-BACKFACECULLING",
"inherits": ["package-linux", "env", "clang4", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_TUTORIALS_GLFW": "OFF",
"EMBREE_BACKFACE_CULLING": "ON"
}
},
{
"name": "nightly-linux-feature-IGNORE-INVALID-RAYS",
"inherits": ["package-linux", "env", "clang4", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_TUTORIALS_GLFW": "OFF",
"EMBREE_BACKFACE_CULLING": "IGNORE_INVALID_RAYS"
}
},
{
"name": "nightly-linux-feature-NO-FILTER-FUNCTION",
"inherits": ["package-linux", "env", "clang4", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_TUTORIALS_GLFW": "OFF",
"EMBREE_FILTER_FUNCTION": "OFF"
}
},
{
"name": "nightly-linux-feature-RAYMASKS",
"inherits": ["package-linux", "env", "clang4", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_TUTORIALS_GLFW": "OFF",
"EMBREE_RAY_MASK": "ON"
}
},
{
"name": "nightly-linux-feature-NO-PACKETS",
"inherits": ["package-linux", "env", "clang4", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_TUTORIALS_GLFW": "OFF",
"EMBREE_RAY_PACKETS": "OFF"
}
},
{
"name": "nightly-linux-feature-STATCOUNTER",
"inherits": ["package-linux", "env", "clang4", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_TUTORIALS_GLFW": "OFF",
"EMBREE_STAT_COUNTERS": "ON"
}
},
{
"name": "nightly-linux-individualisa",
"inherits": ["package-linux", "env", "clang4", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_TUTORIALS_GLFW": "OFF",
"EMBREE_ISA_SSE2": "OFF",
"EMBREE_ISA_SSE42": "OFF",
"EMBREE_AVX": "OFF",
"EMBREE_AVX2": "OFF",
"EMBREE_AVX512": "OFF"
}
},
{
"name": "nightly-linux-individualisa-SSE2",
"inherits": ["nightly-linux-individualisa"],
"cacheVariables": {
"EMBREE_ISA_SSE2": "ON"
}
},
{
"name": "nightly-linux-individualisa-SSE42",
"inherits": ["nightly-linux-individualisa"],
"cacheVariables": {
"EMBREE_ISA_SSE42": "ON"
}
},
{
"name": "nightly-linux-individualisa-AVX",
"inherits": ["nightly-linux-individualisa"],
"cacheVariables": {
"EMBREE_ISA_AVX": "ON"
}
},
{
"name": "nightly-linux-individualisa-AVX2",
"inherits": ["nightly-linux-individualisa"],
"cacheVariables": {
"EMBREE_ISA_AVX2": "ON"
}
},
{
"name": "nightly-linux-individualisa-AVX512",
"inherits": ["nightly-linux-individualisa"],
"cacheVariables": {
"EMBREE_ISA_AVX512": "ON"
}
},
{
"name": "nightly-windows-RELEASE-ICX-ISPC1_13_0-AVX2-TBB2021_5_0",
"inherits": ["package-windows", "env", "icx-windows", "ispc1_13_0", "tbb2021_5_0"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_CONFIG": "frequency_level=simd128",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-windows-RELEASE-ICX-ISPC1_13_0-AVX512-TBB2019_9",
"inherits": ["package-windows", "env", "icx-windows", "ispc1_13_0", "tbb2019_9_0"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "AVX512",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-windows-RELEASE-ICX-ISPC1_14_1-AVX2-TBB2021_2_0",
"inherits": ["package-windows", "env", "icx-windows", "ispc1_14_1", "tbb2021_2_0"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "AVX2",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-macosx-ARM-NEON",
"binaryDir": "${sourceDir}/build",
"inherits": ["macos", "env", "clang", "ispc_NEWEST", "tbb_HOMEBREW"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_TUTORIALS_GLFW": "OFF",
"EMBREE_MAX_ISA": "NEON"
}
},
{
"name": "nightly-macosx-x64",
"binaryDir": "${sourceDir}/build",
"inherits": ["package-macos", "env", "clang", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_TUTORIALS_GLFW": "OFF"
}
},
{
"name": "nightly-macosx-individualisa-CLANG-SSE2",
"binaryDir": "${sourceDir}/build",
"inherits": ["package-macos", "env", "clang", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_TUTORIALS_GLFW": "OFF",
"EMBREE_MAX_ISA": "NONE",
"EMBREE_ISA_SSE2": "ON",
"EMBREE_ISA_SSE42": "OFF",
"EMBREE_ISA_AVX": "OFF",
"EMBREE_ISA_AVX2": "OFF",
"EMBREE_ISA_AVX512": "OFF",
"EMBREE_API_NAMESPACE": "myembree",
"EMBREE_LIBRARY_NAME": "myembree",
"EMBREE_MAX_INSTANCE_LEVEL_COUNT": "4"
}
},
{
"name": "nightly-macosx-individualisa-CLANG-AVX",
"binaryDir": "${sourceDir}/build",
"inherits": ["package-macos", "env", "clang", "ispc_NEWEST", "tasking_internal"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_TUTORIALS_GLFW": "OFF",
"EMBREE_MAX_ISA": "NONE",
"EMBREE_ISA_SSE2": "OFF",
"EMBREE_ISA_SSE42": "OFF",
"EMBREE_ISA_AVX": "ON",
"EMBREE_ISA_AVX2": "OFF",
"EMBREE_ISA_AVX512": "OFF"
}
},
{
"name": "nightly-macosx-individualisa-CLANG-SSE2-STATIC",
"binaryDir": "${sourceDir}/build",
"inherits": ["package-macos", "env", "clang", "ispc_NEWEST", "tasking_internal"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_TUTORIALS_GLFW": "OFF",
"EMBREE_MAX_ISA": "NONE",
"EMBREE_ISA_SSE2": "ON",
"EMBREE_ISA_SSE42": "OFF",
"EMBREE_ISA_AVX": "OFF",
"EMBREE_ISA_AVX2": "OFF",
"EMBREE_ISA_AVX512": "OFF",
"EMBREE_STATIC_LIB": "ON"
}
},
{
"name": "nightly-macosx-AVX",
"binaryDir": "${sourceDir}/build",
"inherits": ["package-macos", "env", "clang", "ispc_NEWEST", "tasking_internal"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_TUTORIALS_GLFW": "OFF",
"EMBREE_MAX_ISA": "NONE",
"EMBREE_ISA_AVX": "ON"
}
},
{
"name": "nightly-macosx-AVX2-SIMD256",
"binaryDir": "${sourceDir}/build",
"inherits": ["package-macos", "env", "clang", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_TUTORIALS_GLFW": "OFF",
"EMBREE_MAX_ISA": "NONE",
"EMBREE_ISA_AVX2": "ON",
"EMBREE_CONFIG": "frequency_level=simd256"
}
},
{
"name": "nightly-macosx-AVX2",
"binaryDir": "${sourceDir}/build",
"inherits": ["package-macos", "env", "clang", "ispc_NEWEST", "tbb_NEWEST"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_TUTORIALS_GLFW": "OFF",
"EMBREE_MAX_ISA": "NONE",
"EMBREE_ISA_AVX2": "ON",
"EMBREE_CONFIG": "frequency_level=simd128"
}
},
{
"name": "nightly-linux-arm-emulation",
"binaryDir": "${sourceDir}/build",
"inherits": ["package-linux", "env", "gcc", "tasking_internal"],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EMBREE_TUTORIALS_GLFW": "OFF",
"EMBREE_MAX_ISA": "NONE"
}
}
]
}

View file

@ -0,0 +1,100 @@
{
"version": 4,
"cmakeMinimumRequired": {
"major": 3,
"minor": 23,
"patch": 0
},
"configurePresets": [
{
"name": "windows",
"hidden": true,
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
},
"environment": {
"BINARY_EXTENSION": ".exe",
"APPS_PATH": "$env{STORAGE_PATH}\\packages\\apps",
"EMBREE_ISPC_VERSION_SUFFIX": "windows",
"EMBREE_TBB_VERSION_SUFFIX": "windows"
}
},
{
"name": "macos",
"hidden": true,
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Darwin"
},
"environment": {
"BINARY_EXTENSION": "",
"APPS_PATH": "$env{STORAGE_PATH}/packages/apps",
"EMBREE_ISPC_VERSION_SUFFIX": "osx",
"EMBREE_TBB_VERSION_SUFFIX": "osx"
}
},
{
"name": "linux",
"hidden": true,
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Linux"
},
"environment": {
"BINARY_EXTENSION": "",
"APPS_PATH": "$env{STORAGE_PATH}/packages/apps",
"EMBREE_ISPC_VERSION_SUFFIX": "linux",
"EMBREE_TBB_VERSION_SUFFIX": "linux"
}
},
{
"name": "env",
"hidden": true,
"environment": {
"EMBREE_CLANG_3_0_0_PP": "$env{APPS_PATH}/clang/v3.0.0/bin/clang++",
"EMBREE_CLANG_3_0_0": "$env{APPS_PATH}/clang/v3.0.0/bin/clang",
"EMBREE_CLANG_4_0_0_PP": "$env{APPS_PATH}/clang/v4.0.0/bin/clang++",
"EMBREE_CLANG_4_0_0": "$env{APPS_PATH}/clang/v4.0.0/bin/clang",
"EMBREE_CLANG_5_0_0_PP": "$env{APPS_PATH}/clang/v5.0.0/bin/clang++",
"EMBREE_CLANG_5_0_0": "$env{APPS_PATH}/clang/v5.0.0/bin/clang",
"EMBREE_CLANG_PP": "clang++",
"EMBREE_CLANG": "clang",
"EMBREE_ISPC_1_13_0_PATH": "$env{APPS_PATH}/ispc/1.13.0-$env{EMBREE_ISPC_VERSION_SUFFIX}/bin/ispc$env{BINARY_EXTENSION}",
"EMBREE_ISPC_1_14_1_PATH": "$env{APPS_PATH}/ispc/1.14.1-$env{EMBREE_ISPC_VERSION_SUFFIX}/bin/ispc$env{BINARY_EXTENSION}",
"EMBREE_ISPC_1_15_0_PATH": "$env{APPS_PATH}/ispc/1.15.0-$env{EMBREE_ISPC_VERSION_SUFFIX}/bin/ispc$env{BINARY_EXTENSION}",
"EMBREE_ISPC_1_16_1_PATH": "$env{APPS_PATH}/ispc/1.16.1-$env{EMBREE_ISPC_VERSION_SUFFIX}/bin/ispc$env{BINARY_EXTENSION}",
"EMBREE_ISPC_1_17_0_PATH": "$env{APPS_PATH}/ispc/1.17.0-$env{EMBREE_ISPC_VERSION_SUFFIX}/bin/ispc$env{BINARY_EXTENSION}",
"EMBREE_ISPC_1_18_1_PATH": "$env{APPS_PATH}/ispc/1.18.1-$env{EMBREE_ISPC_VERSION_SUFFIX}/bin/ispc$env{BINARY_EXTENSION}",
"EMBREE_ISPC_1_19_0_PATH": "$env{APPS_PATH}/ispc/1.19.0-$env{EMBREE_ISPC_VERSION_SUFFIX}/bin/ispc$env{BINARY_EXTENSION}",
"EMBREE_ISPC_1_20_0_PATH": "$env{APPS_PATH}/ispc/1.20.0-$env{EMBREE_ISPC_VERSION_SUFFIX}/bin/ispc$env{BINARY_EXTENSION}",
"EMBREE_ISPC_1_21_0_PATH": "$env{APPS_PATH}/ispc/1.21.0-$env{EMBREE_ISPC_VERSION_SUFFIX}/bin/ispc$env{BINARY_EXTENSION}",
"EMBREE_ISPC_1_22_0_PATH": "$env{APPS_PATH}/ispc/1.22.0-$env{EMBREE_ISPC_VERSION_SUFFIX}/bin/ispc$env{BINARY_EXTENSION}",
"EMBREE_ISPC_1_23_0_PATH": "$env{APPS_PATH}/ispc/1.23.0-$env{EMBREE_ISPC_VERSION_SUFFIX}/bin/ispc$env{BINARY_EXTENSION}",
"EMBREE_ISPC_PATH": "",
"EMBREE_TBB_2019_2_DIR": "$env{APPS_PATH}/tbb/tbb-2019.2-$env{EMBREE_TBB_VERSION_SUFFIX}/cmake",
"EMBREE_TBB_2019_9_DIR": "$env{APPS_PATH}/tbb/tbb-2019.9-$env{EMBREE_TBB_VERSION_SUFFIX}/cmake",
"EMBREE_TBB_2020_2_DIR": "$env{APPS_PATH}/tbb/tbb-2020.2-$env{EMBREE_TBB_VERSION_SUFFIX}/cmake",
"EMBREE_TBB_2021_1_1_DIR": "$env{APPS_PATH}/tbb/tbb-2021.1.1-$env{EMBREE_TBB_VERSION_SUFFIX}/lib/cmake/tbb",
"EMBREE_TBB_2021_2_0_DIR": "$env{APPS_PATH}/tbb/tbb-2021.2.0-$env{EMBREE_TBB_VERSION_SUFFIX}/lib/cmake/tbb",
"EMBREE_TBB_2021_3_0_DIR": "$env{APPS_PATH}/tbb/tbb-2021.3.0-$env{EMBREE_TBB_VERSION_SUFFIX}/lib/cmake/tbb",
"EMBREE_TBB_2021_5_0_DIR": "$env{APPS_PATH}/tbb/tbb-2021.5.0-$env{EMBREE_TBB_VERSION_SUFFIX}/lib/cmake/tbb",
"EMBREE_TBB_2021_7_0_DIR": "$env{APPS_PATH}/tbb/tbb-2021.7.0-$env{EMBREE_TBB_VERSION_SUFFIX}/lib/cmake/tbb",
"EMBREE_TBB_2021_9_0_DIR": "$env{APPS_PATH}/tbb/tbb-2021.9.0-$env{EMBREE_TBB_VERSION_SUFFIX}/lib/cmake/tbb",
"EMBREE_TBB_2021_10_0_DIR": "$env{APPS_PATH}/tbb/tbb-2021.10.0-$env{EMBREE_TBB_VERSION_SUFFIX}/lib/cmake/tbb",
"EMBREE_TBB_2021_11_0_DIR": "$env{APPS_PATH}/tbb/tbb-2021.11.0-$env{EMBREE_TBB_VERSION_SUFFIX}/lib/cmake/tbb",
"EMBREE_TBB_DIR": ""
}
}
]
}

View file

@ -0,0 +1,108 @@
{
"version": 4,
"cmakeMinimumRequired": {
"major": 3,
"minor": 23,
"patch": 0
},
"include": ["os.json"],
"configurePresets": [
{
"name": "package",
"hidden": true,
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"BUILD_TESTING": "ON",
"EMBREE_TESTING_INSTALL_TESTS": "ON",
"EMBREE_TUTORIALS_OPENIMAGEIO": "OFF",
"EMBREE_TUTORIALS_LIBJPEG": "OFF",
"EMBREE_TUTORIALS_LIBPNG": "OFF",
"EMBREE_ZIP_MODE": "ON",
"EMBREE_INSTALL_DEPENDENCIES": "ON",
"EMBREE_BUILD_GLFW_FROM_SOURCE": "ON",
"EMBREE_PATCH_GLFW_SOURCE": "ON",
"CMAKE_INSTALL_INCLUDEDIR": "include",
"CMAKE_INSTALL_LIBDIR": "lib",
"CMAKE_INSTALL_DOCDIR": "doc",
"CMAKE_INSTALL_BINDIR": "bin",
"CMAKE_INSTALL_TESTDIR": "testing"
}
},
{
"name": "package-static",
"hidden": true,
"inherits": "package",
"cacheVariables": {
"EMBREE_STATIC_LIB": "ON"
}
},
{
"name": "package-linux",
"hidden": true,
"inherits": ["package", "linux"],
"cacheVariables": {
"CMAKE_SKIP_INSTALL_RPATH": "OFF"
}
},
{
"name": "package-static-linux",
"hidden": true,
"inherits": ["package-static", "linux"],
"cacheVariables": {
"CMAKE_SKIP_INSTALL_RPATH": "OFF"
}
},
{
"name": "package-macos",
"hidden": true,
"inherits": ["package", "macos"],
"cacheVariables": {
"CMAKE_SKIP_INSTALL_RPATH": "OFF",
"CMAKE_MACOSX_RPATH": "ON"
}
},
{
"name": "package-macos-signed",
"hidden": true,
"inherits": ["package", "macos"],
"cacheVariables": {
"CMAKE_SKIP_INSTALL_RPATH": "OFF",
"CMAKE_MACOSX_RPATH": "ON",
"EMBREE_SIGN_FILE": "$env{SIGN_FILE_MAC}"
}
},
{
"name": "package-static-macos",
"hidden": true,
"inherits": ["package-static", "macos"],
"cacheVariables": {
"CMAKE_SKIP_INSTALL_RPATH": "OFF",
"CMAKE_MACOSX_RPATH": "ON",
"EMBREE_SIGN_FILE": "$env{SIGN_FILE_MAC}"
}
},
{
"name": "package-windows",
"hidden": true,
"inherits": ["package", "windows"],
"cacheVariables": {
"CMAKE_INSTALL_DATAROOTDIR": "",
"EMBREE_SIGN_FILE": "$env{SIGN_FILE_WINDOWS}"
}
},
{
"name": "package-static-windows",
"hidden": true,
"inherits": ["package-static", "windows"],
"cacheVariables": {
"CMAKE_INSTALL_DATAROOTDIR": "",
"EMBREE_SIGN_FILE": "$env{SIGN_FILE_WINDOWS}"
}
}
]
}

View file

@ -0,0 +1,39 @@
{
"version": 4,
"cmakeMinimumRequired": {
"major": 3,
"minor": 11,
"patch": 0
},
"include": [
"os.json",
"package.json",
"compiler.json",
"tbb.json"
],
"configurePresets": [
{
"name": "perf-linux-icx",
"inherits": ["package-linux", "env", "icx", "ispc1_19_0", "tbb2021_9_0"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "AVX512",
"EMBREE_USE_GOOGLE_BENCHMARK": "ON",
"EMBREE_BUILD_GOOGLE_BENCHMARK_FROM_SOURCE": "ON"
}
},
{
"name": "perf-linux-icx-sycl",
"inherits": ["perf-linux-icx"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"EMBREE_SYCL_SUPPORT": "ON",
"EMBREE_SYCL_L0_RTAS_BUILDER" : "OFF",
"EMBREE_SYCL_AOT_DEVICES": "none"
}
}
]
}

View file

@ -0,0 +1,80 @@
{
"version": 4,
"cmakeMinimumRequired": {
"major": 3,
"minor": 11,
"patch": 0
},
"include": [
"os.json",
"package.json",
"compiler.json",
"tbb.json"
],
"configurePresets": [
{
"name": "release-windows",
"inherits": ["package-windows", "env", "dpcpp-windows", "ispc1_23_0", "tbb2021_11_0"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "AVX512"
}
},
{
"name": "release-macos",
"inherits": ["package-macos", "env", "clang", "ispc1_23_0", "tbb2021_11_0"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "AVX512",
"CPACK_PRE_BUILD_SCRIPTS": "$env{CPACK_PRE_BUILD_SIGNING_SCRIPT}"
}
},
{
"name": "release-macos-arm",
"inherits": ["package-macos", "env", "clang", "ispc1_23_0", "tbb2021_11_0"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "NEON2X",
"CPACK_PRE_BUILD_SCRIPTS": "$env{CPACK_PRE_BUILD_SIGNING_SCRIPT}"
}
},
{
"name": "release-linux",
"inherits": ["package-linux", "env", "dpcpp", "ispc1_23_0", "tbb2021_11_0"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_MAX_ISA": "AVX512"
}
},
{
"name": "release-windows-sycl",
"inherits": ["package-windows", "env", "dpcpp-windows", "ispc1_23_0", "tbb2021_11_0"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_SYCL_SUPPORT": "ON",
"EMBREE_SYCL_L0_RTAS_BUILDER" : "OFF",
"EMBREE_SYCL_AOT_DEVICES": "none",
"EMBREE_MAX_ISA": "AVX512"
}
},
{
"name": "release-linux-sycl",
"inherits": ["package-linux", "env", "dpcpp", "ispc1_23_0", "tbb2021_11_0"],
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EMBREE_SYCL_SUPPORT": "ON",
"EMBREE_SYCL_L0_RTAS_BUILDER" : "OFF",
"EMBREE_SYCL_AOT_DEVICES": "none",
"EMBREE_MAX_ISA": "AVX512"
}
}
]
}

View file

@ -0,0 +1,89 @@
{
"version": 4,
"cmakeMinimumRequired": {
"major": 3,
"minor": 23,
"patch": 0
},
"configurePresets": [
{
"name": "tasking_internal",
"cacheVariables": {
"EMBREE_TASKING_SYSTEM": "INTERNAL"
}
},
{
"name": "tbb_SYSTEM",
"cacheVariables": {
"EMBREE_TASKING_SYSTEM": "TBB"
}
},
{
"name": "tbb_HOMEBREW",
"cacheVariables": {
"EMBREE_TASKING_SYSTEM": "TBB",
"EMBREE_TBB_ROOT": "/opt/homebrew"
}
},
{
"name": "tbb2019_2_0",
"inherits": "tbb_SYSTEM",
"cacheVariables": {
"TBB_DIR": "$env{EMBREE_TBB_2019_2_0_DIR}"
}
},
{
"name": "tbb2019_9_0",
"inherits": "tbb_SYSTEM",
"cacheVariables": {
"TBB_DIR": "$env{EMBREE_TBB_2019_9_0_DIR}"
}
},
{
"name": "tbb2020_2_0",
"inherits": "tbb_SYSTEM",
"cacheVariables": {
"TBB_DIR": "$env{EMBREE_TBB_2020_2_0_DIR}"
}
},
{
"name": "tbb2021_2_0",
"inherits": "tbb_SYSTEM",
"cacheVariables": {
"TBB_DIR": "$env{EMBREE_TBB_2021_2_0_DIR}"
}
},
{
"name": "tbb2021_5_0",
"inherits": "tbb_SYSTEM",
"cacheVariables": {
"TBB_DIR": "$env{EMBREE_TBB_2021_5_0_DIR}"
}
},
{
"name": "tbb2021_9_0",
"inherits": "tbb_SYSTEM",
"cacheVariables": {
"TBB_DIR": "$env{EMBREE_TBB_2021_9_0_DIR}"
}
},
{
"name": "tbb2021_10_0",
"inherits": "tbb_SYSTEM",
"cacheVariables": {
"TBB_DIR": "$env{EMBREE_TBB_2021_10_0_DIR}"
}
},
{
"name": "tbb2021_11_0",
"inherits": "tbb_SYSTEM",
"cacheVariables": {
"TBB_DIR": "$env{EMBREE_TBB_2021_11_0_DIR}"
}
},
{
"name": "tbb_NEWEST",
"inherits": "tbb2021_11_0"
}
]
}

View file

@ -0,0 +1,7 @@
#!\bin\bash
# needed, because coverity build command must be single call from workflow
module load cmake/3.25.3 &&
export NAS_LINUX=$STORAGE_PATH/packages/apps
cmake --build build --config Release --target build

View file

@ -0,0 +1,86 @@
#!/usr/bin/env bash
if [ -z $3 ]; then
echo "ERROR: usage $0 version target-directory platform <GITHUB_TOKEN>"
echo " platform: either WIN or LINUX"
echo " <GITHUB_TOKEN>: optional github access token. without the token api request rate limit can be exceeded quickly"
exit 1
fi
if [ -z $4 ]; then
DPCPP_VERSION=$1
DST_DIR=$2
PLATFORM=$3
TOKEN=""
else
DPCPP_VERSION=$1
DST_DIR=$2
PLATFORM=$3
TOKEN=$4
fi
CUR_DIR=$(pwd)
mkdir -p ${DST_DIR}
cd ${DST_DIR}
if [ -d "${DPCPP_VERSION}" ]; then
echo "DPCPP compiler ${DPCPP_VERSION} already downloaded"
exit 0
fi
echo "Downloading DPCPP compiler with"
echo " DPCPP_VERSION: ${DPCPP_VERSION}"
echo " DST_DIR: ${DST_DIR}"
echo " PLATFORM: ${PLATFORM}"
echo " TOKEN: ${TOKEN}"
GH_REPO="https://api.github.com/repos/intel/llvm"
GH_TAGS="${GH_REPO}/releases/tags/${DPCPP_VERSION}"
AUTH="-u ${TOKEN}:x-oauth-basic"
# get asset tags.
response=$(curl ${AUTH} ${GH_TAGS})
# check for errors wrong URL or API request limit exceeded are the most common
error=$(echo $response | grep message)
if [ ! -z "${error}" ]; then
echo "ERROR:"
echo ${error}
exit 1
fi
ARCHIVE_NAME="dpcpp-compiler.tar.gz"
if [ "$PLATFORM" = "WIN" ]; then
ARCHIVE_NAME="dpcpp-compiler-win.tar.gz"
fi
# get id of compiler archive
eval $(echo "${response}" | grep -C3 "name.:.\+${ARCHIVE_NAME}" | grep -w id | tr : = | tr -cd '[[:alnum:]]=')
[ "$id" ] || { echo "Error: Failed to get asset id, response: ${response}" | awk 'length($0)<100' >&2; exit 1; }
# Download asset file.
echo "Downloading dpcpp compiler archive ${ARCHIVE_NAME} to ${DST_DIR}" >&2
curl -LJO# ${AUTH} -H 'Accept: application/octet-stream' "$GH_REPO/releases/assets/$id"
echo "Unpacking archive"
tar -xzf ${ARCHIVE_NAME}
rm -rf ${ARCHIVE_NAME}
mkdir -p ${DPCPP_VERSION}
cp -r dpcpp_compiler/* ${DPCPP_VERSION}
rm -rf dpcpp_compiler
# add startup script to Windows version of the compiler
if [ "$PLATFORM" = "WIN" ]; then
echo '@echo off
set "DPCPP_DIR=%~dp0"
set "PATH=%DPCPP_DIR%\bin;%PATH%"
set "PATH=%DPCPP_DIR%\lib;%PATH%"
set "CPATH=%DPCPP_DIR%\include;%CPATH%"
set "INCLUDE=%DPCPP_DIR%\include;%INCLUDE%"
set "LIB=%DPCPP_DIR%\lib;%LIB%"' > ${DST_DIR}/${DPCPP_VERSION}/startup.bat
fi
echo "dpcpp compiler available here ${DST_DIR}/${DPCPP_VERSION}"
cd ${CUR_DIR}

View file

@ -0,0 +1,96 @@
#!/usr/bin/env bash
set -e
if [ -z $3 ]; then
echo "ERROR: usage $0 gfx-driver target-directory token"
echo " gfx-driver: URL to the driver packages relative to artifactory URL (e.g. gfx-driver-builds/ci/master/gfx-driver-ci-master-9999/artifacts/Linux/Ubuntu/22.04/Release"
echo " token: access token to (artifactory) repository"
exit 1
fi
ARTIFACTORY_URL="https://gfx-assets-build.igk.intel.com/artifactory"
GFX_DRIVER=$1
DST_DIR=$2
TOKEN=$3
if [[ -d "${DST_DIR}/${GFX_DRIVER}" ]]; then
echo "GFX driver ${GFX_DRIVER} already downloaded in ${DST_DIR}"
exit 0
fi
URL=${ARTIFACTORY_URL}"/"${GFX_DRIVER}/
CUR_DIR=$(pwd)
mkdir -p /tmp/${GFX_DRIVER}
cd /tmp/${GFX_DRIVER}
if [[ $GFX_DRIVER == *"linux"* ]] || [[ $GFX_DRIVER == *"Linux"* ]] ; then
echo "Downloading Linux driver packages using"
echo " ARTIFACTORY_URL=${ARTIFACTORY_URL}"
echo " GFX_DRIVER=${GFX_DRIVER}"
echo " DST_DIR=${DST_DIR}"
echo " TOKEN=${TOKEN}"
if [[ $GFX_DRIVER == *"open-linux"* ]] ; then
DEBS="*"
elif [[ $GFX_DRIVER == *"neo-releases"* ]] ; then
DEBS="*"
elif [[ $GFX_DRIVER == *"neo-master"* ]] ; then
DEBS="*"
else
DEBS="level-zero|intel-level-zero-gpu|intel-opencl-icd|libigc1|libigc-tools|libigdfcl1|libigdgmm"
fi
PACKAGES=$(curl -H "X-JFrog-Art-Api:$TOKEN" -s $URL |
sed 's/<a href/\n<a href/g' | sed 's/.deb"/.deb"\n/g' |
grep -o '".*"' | grep deb | tr -d '"' | grep -E $DEBS |
grep -v devel | grep -v dev | grep -v debuginfo)
mkdir -p install
for package in ${PACKAGES}
do
echo "Download and install ${package}"
curl -H "X-JFrog-Art-Api:${TOKEN}" -s -O ${URL}${package}
dpkg -x $package ./install
done
mkdir -p ${DST_DIR}/${GFX_DRIVER}
cp -r * ${DST_DIR}/${GFX_DRIVER}/
# fix path of libigdrcl in intel.icd file for local installation
echo "${DST_DIR}/${GFX_DRIVER}/install/usr/lib/x86_64-linux-gnu/intel-opencl/libigdrcl.so" > ${DST_DIR}/${GFX_DRIVER}/install/etc/OpenCL/vendors/intel.icd
echo "Driver installed to ${DST_DIR}/${GFX_DRIVER}/install"
elif [[ $GFX_DRIVER == *"Windows"* ]]; then
echo "Downloading Windows driver packages using"
echo " ARTIFACTORY_URL=${ARTIFACTORY_URL}"
echo " GFX_DRIVER=${GFX_DRIVER}"
echo " DST_DIR=${DST_DIR}"
echo " TOKEN=${TOKEN}"
echo "Download Installer-Release"
curl -H "X-JFrog-Art-Api:${TOKEN}" -s -O ${URL}Installer-Release-64-bit.7z
echo "Download Ocloc-Release"
curl -H "X-JFrog-Art-Api:${TOKEN}" -s -O ${URL}Ocloc-Release-64-bit.7z
echo "Unpacking Installer-Release"
7z x Installer-Release-64-bit.7z
echo "Unpacking Ocloc-Release"
7z x Ocloc-Release-64-bit.7z
rm Installer-Release-64-bit.7z Ocloc-Release-64-bit.7z
mkdir -p ${DST_DIR}/${GFX_DRIVER}
cp -r * ${DST_DIR}/${GFX_DRIVER}
chmod -R +x ${DST_DIR}/${GFX_DRIVER}
echo "Driver installed to ${DST_DIR}/${GFX_DRIVER}"
else
echo "Platform could not be detected from gfx-driver URL"
fi
cd ${CUR_DIR}
rm -rf /tmp/${GFX_DRIVER}

View file

@ -0,0 +1,174 @@
#!/usr/bin/env python3
## Copyright 2009-2021 Intel Corporation
## SPDX-License-Identifier: Apache-2.0
## Used to generate code in kernels/common/motion_derivative.h
import sympy as sp
import numpy as np
import math
################################################################################
#### Utils
################################################################################
def getTerms(map, key):
if key in map.keys():
return map[key]
return 0
# simple linear interpolation wrapper
def lerp(v0,v1,t):
return v0*(1-t)+v1*t
# custom quaternion to matrix conversion
def to_rotation_matrix(q):
return sp.Matrix([[q.a*q.a + q.b*q.b - q.c*q.c - q.d*q.d, 2*(q.b*q.c - q.a*q.d), 2*(q.b*q.d + q.a*q.c), 0],
[2*(q.b*q.c + q.a*q.d), q.a*q.a - q.b*q.b + q.c*q.c - q.d*q.d, 2*(q.c*q.d - q.a*q.b), 0],
[2*(q.b*q.d - q.a*q.c), 2*(q.c*q.d + q.a*q.b), q.a*q.a - q.b*q.b - q.c*q.c + q.d*q.d, 0],
[0, 0, 0, 1]])
################################################################################
#### Set up symbolic objects
################################################################################
t, theta = sp.symbols("t, theta", real = True)
px0, py0, pz0 = sp.symbols("px0, py0, pz0", real=True) # vertex position at t=0
px1, py1, pz1 = sp.symbols("px1, py1, pz1", real=True) # vertex position at t=1
tx0, ty0, tz0 = sp.symbols("tx0, ty0, tz0", real=True) # translation at t=0
tx1, ty1, tz1 = sp.symbols("tx1, ty1, tz1", real=True) # translation at t=1
qx0, qy0, qz0, qw0 = sp.symbols("qx0, qy0, qz0, qw0", real=True) # quaternion at t=0
qx1, qy1, qz1, qw1 = sp.symbols("qx1, qy1, qz1, qw1", real=True) # quaternion at t=1
# coefficients for upper triangular matrices
s000, s001, s002, s003, s011, s012, s013, s022, s023 = sp.symbols("s000, s001, s002, s003, s011, s012, s013, s022, s023", real=True)
s100, s101, s102, s103, s111, s112, s113, s122, s123 = sp.symbols("s100, s101, s102, s103, s111, s112, s113, s122, s123", real=True)
q0 = sp.Quaternion(qw0, qx0, qy0, qz0)
q1 = sp.Quaternion(qw1, qx1, qy1, qz1)
# assuming that q1 is qperp = normalize(q1-q0*cosTheta), where cosTheta=dot(q0, q1) and theta = acos(cosTheta).
# this simplifies the terms of the symbolic expressions later
qt = q0 * sp.cos(t*theta) + q1 * sp.sin(t*theta)
S0 = sp.Matrix([[s000, s001, s002, s003],
[ 0, s011, s012, s013],
[ 0, 0, s022, s023],
[ 0, 0, 0, 1]])
S1 = sp.Matrix([[s100, s101, s102, s103],
[ 0, s111, s112, s113],
[ 0, 0, s122, s123],
[ 0, 0, 0, 1]])
D0 = sp.Matrix([[1, 0, 0, tx0],
[0, 1, 0, ty0],
[0, 0, 1, tz0],
[0, 0, 0, 1]])
D1 = sp.Matrix([[1, 0, 0, tx1],
[0, 1, 0, ty1],
[0, 0, 1, tz1],
[0, 0, 0, 1]])
p0 = sp.Matrix([px0, py0, pz0, 1])
p1 = sp.Matrix([px1, py1, pz1, 1])
Gamma = lerp(D0, D1, t)*to_rotation_matrix(qt)*lerp(S0, S1, t)*lerp(p0, p1, t)
C = sp.Matrix(np.empty(8)) # 8 coefficients
K = sp.Matrix(np.empty(7)) # 7 inputs
A = sp.Matrix(np.empty(8*7*3)) # 8 coefficients, 7 inputs (1, px0, py0, pz0, px1, py1, pz1), 3 dimensions (x, y, z)
dGamma = sp.diff(Gamma, t)
################################################################################
#### Group the coefficients (this might time a couple of seconds)
################################################################################
# loop over dimensions (x, y, z)
for dim in range(3):
dm = sp.expand(dGamma[dim])
dm = dm.subs(sp.sin(t*theta)*sp.sin(t*theta),(1-sp.cos(2*t*theta))/2) # remove sin(t*theta)^2
dm = dm.subs(sp.cos(t*theta)*sp.cos(t*theta),(1+sp.cos(2*t*theta))/2) # remove cos(t*theta)^2
dm = dm.subs(sp.sin(t*theta)*sp.cos(t*theta),sp.sin(2*t*theta)/2) # remove sin(t*theta)*cos(t*theta)
dm = sp.expand(dm)
# group all terms in the form a + b * cos(2*t*theta) + c * sin(2*t*theta)
dm_cos_sin = sp.collect(dm, (sp.cos(2*t*theta), sp.sin(2*t*theta)), evaluate=False)
# get the terms
coeff_cos = getTerms(dm_cos_sin, sp.cos(2*t*theta))
coeff_sin = getTerms(dm_cos_sin, sp.sin(2*t*theta))
coeff_const = getTerms(dm_cos_sin, 1)
# group the term in the form a + b * t
coeff_const_t = sp.collect(coeff_const, t, evaluate=False)
C[0] = getTerms(coeff_const_t, 1)
C[1] = getTerms(coeff_const_t, t)
# group the term in the form a + b * t + c * t^2
coeff_cos_t = sp.collect(coeff_cos, t, evaluate=False)
C[2] = getTerms(coeff_cos_t, 1)
C[3] = getTerms(coeff_cos_t, t)
C[4] = getTerms(coeff_cos_t, t*t)
# group the term in the form a + b * t + c * t^2
coeff_sin_t = sp.collect(coeff_sin, t, evaluate=False)
C[5] = getTerms(coeff_sin_t, 1)
C[6] = getTerms(coeff_sin_t, t)
C[7] = getTerms(coeff_sin_t, t*t)
for c in range(8):
kc = sp.collect(C[c], (px0, py0, pz0, px1, py1, pz1), evaluate=False)
K[0] = getTerms(kc, 1)
K[1] = getTerms(kc, px0)
K[2] = getTerms(kc, py0)
K[3] = getTerms(kc, pz0)
K[4] = getTerms(kc, px1)
K[5] = getTerms(kc, py1)
K[6] = getTerms(kc, pz1)
for k in range(7):
K[k] = sp.expand(K[k])
K[k] = K[k].subs(qw0*qw0, 1-qx0*qx0-qy0*qy0-qz0*qz0) # clean up substitutions
K[k] = K[k].subs(qw1*qw1, 1-qx1*qx1-qy1*qy1-qz1*qz1) # clean up substitutions
K[k] = sp.simplify(K[k])
A[8*7*dim + c*7 + k] = K[k]
################################################################################
#### Write code to file
################################################################################
from sympy.utilities.codegen import codegen, default_datatypes
from sympy.codegen.ast import real, float32
from sympy.printing.ccode import C99CodePrinter
printer = C99CodePrinter()
# custom code printer that will not generate such nonesene as x^2 -> pow(x, 2)
class CustomCodePrinter(C99CodePrinter):
def _print_Pow(self, expr):
if expr.exp.is_integer and expr.exp > 0 and expr.exp < 5:
return '*'.join([self._print(expr.base) for i in range(expr.exp)])
else:
return super()._print_Pow(expr)
customprinter = CustomCodePrinter()
customprinter.type_aliases[real] = float32 # cosf instead of cos
default_datatypes["float"].cname = "float" # float instead of double
params = [
theta,
tx0, ty0, tz0,
tx1, ty1, tz1,
qw0, qx0, qy0, qz0,
qw1, qx1, qy1, qz1,
s000, s001, s002, s003, s011, s012, s013, s022, s023,
s100, s101, s102, s103, s111, s112, s113, s122, s123]
R = sp.MatrixSymbol("coeff", A.shape[0], A.shape[1])
P = sp.MatrixSymbol('p', len(params), 1)
param_map = dict(zip(params, P))
B = A.xreplace(param_map)
codegen(('motion_derivative_coefficients', sp.Eq(R,B)), language='c', printer=customprinter, prefix='motion_derivative_coefficients', to_files=True)

View file

View file

@ -0,0 +1,241 @@
## Copyright 2009-2021 Intel Corporation
## SPDX-License-Identifier: Apache-2.0
## Global settings ##
cmake_minimum_required(VERSION 3.1)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/dependencies)
if(NOT CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX
"${CMAKE_BINARY_DIR}/install"
CACHE STRING "Final install location." FORCE)
endif()
if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
## Establish project ##
project(OSPRay_superbuild)
include(ExternalProject)
include(GNUInstallDirs)
include(ProcessorCount)
## Superbuild options ##
set(BUILD_RKCOMMON_VERSION "v1.6.0" CACHE STRING "Which version of rkcommon to build?")
set(TBB_VERSION "2021.2.0" CACHE STRING "Which version of TBB to download?")
set(BUILD_OPENVKL_VERSION "v0.12.1" CACHE STRING "Which version of OpenVKL to build?")
set(installDir ${CMAKE_INSTALL_PREFIX})
get_filename_component(INSTALL_DIR_ABSOLUTE ${installDir} ABSOLUTE BASE_DIR ${CMAKE_CURRENT_BINARY_DIR})
ProcessorCount(PROCESSOR_COUNT)
if(NOT PROCESSOR_COUNT EQUAL 0)
SET(PROCESSOR_COUNT 1)
endif()
if (${CMAKE_VERSION} VERSION_GREATER 3.11.4)
set(PARALLEL_JOBS_OPTS -j ${BUILD_JOBS})
endif()
set(DEFAULT_BUILD_COMMAND cmake --build . --config release ${PARALLEL_JOBS_OPTS})
set(COMPONENT_PATH ${INSTALL_DIR_ABSOLUTE}) # install all components in one directory
list(APPEND CMAKE_PREFIX_PATH ${COMPONENT_PATH})
string(REPLACE ";" "|" CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH}")
set(ISPC_VERSION "v1.15.0")
set(ISPC_BASE_URL "https://github.com/ispc/ispc/releases/download")
if (APPLE)
set(ISPC_URL ${ISPC_BASE_URL}/${ISPC_VERSION}/ispc-${ISPC_VERSION}-macOS.tar.gz)
elseif(WIN32)
set(ISPC_URL ${ISPC_BASE_URL}/${ISPC_VERSION}/ispc-${ISPC_VERSION}-windows.zip)
else()
set(ISPC_URL ${ISPC_BASE_URL}/${ISPC_VERSION}/ispc-${ISPC_VERSION}-linux.tar.gz)
endif()
ExternalProject_Add(ispc
PREFIX ispc
STAMP_DIR ispc/stamp
SOURCE_DIR ispc/src
BINARY_DIR ispc
URL ${ISPC_URL}
DOWNLOAD_NO_PROGRESS ON
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND "${CMAKE_COMMAND}" -E copy_if_different
<SOURCE_DIR>/bin/ispc${CMAKE_EXECUTABLE_SUFFIX}
${COMPONENT_PATH}/bin/ispc${CMAKE_EXECUTABLE_SUFFIX}
BUILD_ALWAYS OFF
)
set(ISPC_PATH "${COMPONENT_PATH}/bin/ispc${CMAKE_EXECUTABLE_SUFFIX}")
if (APPLE)
set(TBB_URL "http://github.com/intel/tbb/releases/download/v${TBB_VERSION}/oneapi-tbb-${TBB_VERSION}-mac.tgz")
elseif (WIN32)
set(TBB_URL "http://github.com/intel/tbb/releases/download/v${TBB_VERSION}/oneapi-tbb-${TBB_VERSION}-win.zip")
else()
set(TBB_URL "http://github.com/intel/tbb/releases/download/v${TBB_VERSION}/oneapi-tbb-${TBB_VERSION}-lin.tgz")
endif()
ExternalProject_Add(tbb
PREFIX tbb
DOWNLOAD_DIR tbb
STAMP_DIR tbb/stamp
SOURCE_DIR tbb/src
BINARY_DIR tbb
URL ${TBB_URL}
DOWNLOAD_NO_PROGRESS ON
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND "${CMAKE_COMMAND}" -E copy_directory
<SOURCE_DIR>
${COMPONENT_PATH}
BUILD_ALWAYS OFF
)
set(TBB_PATH "${COMPONENT_PATH}")
ExternalProject_Add(rkcommon
PREFIX rkcommon
DOWNLOAD_DIR rkcommon
STAMP_DIR rkcommon/stamp
SOURCE_DIR rkcommon/src
BINARY_DIR rkcommon/build
URL "http://github.com/ospray/rkcommon/archive/${BUILD_RKCOMMON_VERSION}.zip"
DOWNLOAD_NO_PROGRESS ON
CMAKE_ARGS
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_INSTALL_PREFIX:PATH=${COMPONENT_PATH}
-DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_INSTALL_INCLUDEDIR}
-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}
-DCMAKE_INSTALL_DOCDIR=${CMAKE_INSTALL_DOCDIR}
-DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR}
-DCMAKE_BUILD_TYPE=Release
-DINSTALL_DEPS=OFF
-DBUILD_TESTING=OFF
-DRKCOMMON_TBB_ROOT=${TBB_PATH}
BUILD_COMMAND ${DEFAULT_BUILD_COMMAND}
BUILD_ALWAYS ${ALWAYS_REBUILD}
)
ExternalProject_Add_StepDependencies(rkcommon configure tbb)
ExternalProject_Add(embree
PREFIX embree
SOURCE_DIR ${INSTALL_DIR_ABSOLUTE}/../../embree
STAMP_DIR embree/stamp
BINARY_DIR embree
URL ${EMBREE_URL}
DOWNLOAD_NO_PROGRESS ON
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND "${CMAKE_COMMAND}" -E copy_directory
<SOURCE_DIR>/
${COMPONENT_PATH}
BUILD_ALWAYS OFF
)
ExternalProject_Add(openvkl
PREFIX openvkl
DOWNLOAD_DIR openvkl
STAMP_DIR openvkl/stamp
SOURCE_DIR openvkl/src
BINARY_DIR openvkl/build
LIST_SEPARATOR | # Use the alternate list separator
URL "http://github.com/openvkl/openvkl/archive/${BUILD_OPENVKL_VERSION}.zip"
DOWNLOAD_NO_PROGRESS ON
CMAKE_ARGS
-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_INSTALL_PREFIX:PATH=${COMPONENT_PATH}
-DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_INSTALL_INCLUDEDIR}
-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}
-DCMAKE_INSTALL_DOCDIR=${CMAKE_INSTALL_DOCDIR}
-DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR}
-DCMAKE_BUILD_TYPE=Release
-DRKCOMMON_TBB_ROOT=${TBB_PATH}
-DISPC_EXECUTABLE=${ISPC_PATH}
-DBUILD_BENCHMARKS=OFF
-DBUILD_EXAMPLES=OFF
-DBUILD_TESTING=OFF
BUILD_COMMAND ${DEFAULT_BUILD_COMMAND}
BUILD_ALWAYS ${ALWAYS_REBUILD}
)
ExternalProject_Add_StepDependencies(openvkl
configure
rkcommon
embree
ispc
)
ExternalProject_Add(glfw
PREFIX glfw
DOWNLOAD_DIR glfw
STAMP_DIR glfw/stamp
SOURCE_DIR glfw/src
BINARY_DIR glfw/build
URL "http://github.com/glfw/glfw/releases/download/3.2.1/glfw-3.2.1.zip"
DOWNLOAD_NO_PROGRESS ON
CMAKE_ARGS
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_INSTALL_PREFIX:PATH=${COMPONENT_PATH}
-DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_INSTALL_INCLUDEDIR}
-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}
-DCMAKE_INSTALL_DOCDIR=${CMAKE_INSTALL_DOCDIR}
-DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR}
-DCMAKE_BUILD_TYPE=Release
-DGLFW_BUILD_DOCS=OFF
-DGLFW_BUILD_EXAMPLES=OFF
-DGLFW_BUILD_TESTS=OFF
BUILD_COMMAND ${DEFAULT_BUILD_COMMAND}
BUILD_ALWAYS ${ALWAYS_REBUILD}
)
ExternalProject_Add(ospray
PREFIX ospray
URL "https://github.com/ospray/ospray/archive/v2.5.0.tar.gz"
DOWNLOAD_NO_PROGRESS ON
GIT_SUBMODULES ""
STAMP_DIR ospray/stamp
BINARY_DIR ospray/build
LIST_SEPARATOR | # Use the alternate list separator
CMAKE_ARGS
-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_INSTALL_PREFIX:PATH=${COMPONENT_PATH}
-DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_INSTALL_INCLUDEDIR}
-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}
-DCMAKE_INSTALL_DOCDIR=${CMAKE_INSTALL_DOCDIR}
-DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR}
-DOSPRAY_BUILD_ISA=ALL
-DOSPRAY_ENABLE_TESTING=ON
-DOSPRAY_MODULE_MULTIHIT=OFF
-DOSPRAY_MODULE_BILINEAR_PATCH=ON
-DOSPRAY_MODULE_DENOISER=OFF
-DOSPRAY_STRICT_BUILD=ON
-DOSPRAY_WARN_AS_ERRORS=OFF
-DISPC_EXECUTABLE=${ISPC_PATH}
-DRKCOMMON_TBB_ROOT=${TBB_PATH}
BUILD_COMMAND ${DEFAULT_BUILD_COMMAND}
BUILD_ALWAYS OFF
)
ExternalProject_Add_StepDependencies(ospray
configure
rkcommon
embree
openvkl
glfw
ispc
)

View file

@ -0,0 +1,15 @@
message("Fixing package names")
message("PACKAGE_BASENAME = ${PACKAGE_BASENAME}")
message("PACKAGE_EXT = ${PACKAGE_EXT}")
file(RENAME "${PACKAGE_BASENAME}-embree.${PACKAGE_EXT}" "${PACKAGE_BASENAME}.${PACKAGE_EXT}")
file(RENAME "${PACKAGE_BASENAME}-embree-testing.${PACKAGE_EXT}" "${PACKAGE_BASENAME}-testing.${PACKAGE_EXT}")
if (EXISTS "${PACKAGE_BASENAME}-Unspecified.${PACKAGE_EXT}")
file(REMOVE "${PACKAGE_BASENAME}-Unspecified.${PACKAGE_EXT}")
endif()
message("Created packages:")
message("${PACKAGE_BASENAME}.${PACKAGE_EXT}")
message("${PACKAGE_BASENAME}-testing.${PACKAGE_EXT}")

View file

@ -0,0 +1,15 @@
message("WHAT = ${WHAT}")
if(${WHAT} STREQUAL "UNPACK")
message("PACKAGE_BASENAME = ${PACKAGE_BASENAME}")
message("PACKAGE_EXT = ${PACKAGE_EXT}")
file(ARCHIVE_EXTRACT INPUT "${PACKAGE_BASENAME}.${PACKAGE_EXT}" DESTINATION "embree_install")
file(ARCHIVE_EXTRACT INPUT "${PACKAGE_BASENAME}-testing.${PACKAGE_EXT}" DESTINATION "embree_install")
elseif(${WHAT} STREQUAL "CHECK")
file(READ ctest.output output_content)
string(FIND "${output_content}" "100% tests passed, 0 tests failed" pos)
if(pos EQUAL -1)
message(FATAL_ERROR "Some tests failed, or no tests have been executed")
endif()
endif()

View file

@ -0,0 +1,10 @@
#!/bin/bash
## Copyright 2009-2021 Intel Corporation
## SPDX-License-Identifier: Apache-2.0
# get last argument to bash script
for i; do :; done
echo signing $i ...
@EMBREE_SIGN_FILE@ -o runtime -e @CMAKE_CURRENT_SOURCE_DIR@/common/cmake/embree.entitlements $i

View file

@ -0,0 +1,83 @@
#!/bin/bash -xe
## Copyright 2020 Intel Corporation
## SPDX-License-Identifier: Apache-2.0
git config --global --add safe.directory /builds/renderkit/embree
git log -1
# environment for benchmark client
git clone "http://oauth2:${GITLAB_API_TOKEN}@vis-gitlab.an.intel.com/renderkit/benchmark_client.git" benchmark_client
pushd `pwd`
cd benchmark_client
./setup_venv.sh
popd
source ./benchmark_client/env.sh
TOKEN="d_p9I_dcykHloQFpP-sVrQ"
SOURCE_ROOT=`pwd`
PROJECT_NAME="TestProject"
################################# PLEASE READ ##################################
#
# Note that suites and subsuites must exist in the database _before_ attempting
# insertion of results. This is intentional! You should think carefully about
# your [suite -> subsuite -> benchmark] hierarchy and definitions. These should
# be stable over time (especially for suites and subsuites) to facilitate
# long-term comparisons.
#
# These can be inserted using the benchmark client, through the "insert suite"
# and "insert subsuite" commands. Ask for help if you have questions.
#
################################# PLEASE READ ###################################
benny insert code_context "${PROJECT_NAME}" ${SOURCE_ROOT} --save-json code_context.json
benny insert run_context ${TOKEN} ./code_context.json --save-json run_context.json
record_result() {
##############################################################################################
# merge json result files from benchmarks, merge them, and record them in benchmark database #
##############################################################################################
SUBSUITE_NAME=${1}
SUITE_NAME="Embree-Viewer-GPU"
benny insert suite ${PROJECT_NAME} ${SUITE_NAME}
benny insert subsuite ${PROJECT_NAME} ${SUITE_NAME} ${SUBSUITE_NAME}
scripts/merge_json.py benchmark_results/${SUITE_NAME}-${SUBSUITE_NAME} benchmark_results/${SUITE_NAME}-${SUBSUITE_NAME}.json
benny insert googlebenchmark ./run_context.json ${SUITE_NAME} ${SUBSUITE_NAME} benchmark_results/${SUITE_NAME}-${SUBSUITE_NAME}.json
SUITE_NAME="Embree-Pathtracer-GPU"
benny insert suite ${PROJECT_NAME} ${SUITE_NAME}
benny insert subsuite ${PROJECT_NAME} ${SUITE_NAME} ${SUBSUITE_NAME}
scripts/merge_json.py benchmark_results/${SUITE_NAME}-${SUBSUITE_NAME} benchmark_results/${SUITE_NAME}-${SUBSUITE_NAME}.json
benny insert googlebenchmark ./run_context.json ${SUITE_NAME} ${SUBSUITE_NAME} benchmark_results/${SUITE_NAME}-${SUBSUITE_NAME}.json
}
record_tutorial_result() {
SUITE_NAME="Tutorial"
SUBSUITE_NAME=${1}
FILE="benchmark_results/${SUITE_NAME}-${SUBSUITE_NAME}.json"
echo "check if ${FILE} exists"
if [ -f "${FILE}" ]; then
benny insert suite ${PROJECT_NAME} ${SUITE_NAME}
benny insert subsuite ${PROJECT_NAME} ${SUITE_NAME} ${SUBSUITE_NAME}
benny insert googlebenchmark ./run_context.json ${SUITE_NAME} ${SUBSUITE_NAME} ${FILE}
else
echo "file ${FILE} does not exist"
fi
}
record_result "crown"
record_result "powerplant"
record_result "barbarian_mblur"
record_result "landscape"
record_result "curly_hair"
record_tutorial_result "user_geometry"
record_tutorial_result "intersection_filter"

View file

@ -0,0 +1,27 @@
#!/bin/bash
SRC_DIR=$1
DST_DIR=$2
SYCL_RUNNERS="\
vis-ci-cl-00 \
vis-ci-cl-01 \
vis-ci-cl-02 \
vis-ci-cl-03 \
"
#for RUNNER in $SYCL_RUNNERS
#do
# echo $RUNNER
# # copy all deb files in SRC_DIR in folder DST_DIR
# ssh visuser@$RUNNER.an.intel.com "mkdir -p ${DST_DIR}"
# scp -rp $SRC_DIR/*.deb visuser@$RUNNER.an.intel.com:$DST_DIR &
#done
#
#wait
# install all deb files
for RUNNER in $SYCL_RUNNERS
do
ssh -t visuser@$RUNNER.an.intel.com "sudo dpkg -i ${DST_DIR}/*.deb"
done

View file

@ -0,0 +1,42 @@
#!/bin/bash
## Copyright 2020 Intel Corporation
## SPDX-License-Identifier: Apache-2.0
run_benchmark()
{
SCENE_NAME=${1}
SCENE_FILE=${2}
BENCHMARK_CONFIG=${3}
echo "running ./build/viewer_sycl --benchmark_out=benchmark_results/Embree-Viewer-GPU-${SCENE_NAME}-${CONFIG}.json -c ${SCENE_FILE} ${BENCHMARK_CONFIG} "
time ./build/viewer_sycl --benchmark_out=benchmark_results/Embree-Viewer-GPU-${SCENE_NAME}-${CONFIG}.json -c ${SCENE_FILE} ${BENCHMARK_CONFIG}
echo "running ./build/pathtracer_sycl --benchmark_out=benchmark_results/Embree-Pathtracer-GPU-${SCENE_NAME}-${CONFIG}.json -c ${SCENE_FILE} ${BENCHMARK_CONFIG} "
time ./build/pathtracer_sycl --benchmark_out=benchmark_results/Embree-Pathtracer-GPU-${SCENE_NAME}-${CONFIG}.json ${BENCHMARK} -c ${SCENE_FILE} ${BENCHMARK_CONFIG}
}
run_tutorial_benchmark()
{
TUT=${1}
echo "./build/${TUT}_sycl --benchmark_out=benchmark_results/Tutorial-${TUT}.json -size 2048 2048 --benchmark 1 7 --benchmark_repetitions 7 --benchmark_name ${TUT}"
time ./build/${TUT}_sycl --benchmark_out=benchmark_results/Tutorial-${TUT}.json -size 2048 2048 --benchmark 1 7 --benchmark_repetitions 7 --benchmark_name ${TUT}
}
CONFIG=${1}
################################################
# run benchmarks and store result in json file #
################################################
run_benchmark "crown" "${HOME}/embree-models/crown/crown_closeup.ecs" "-size 2048 2048 --benchmark 1 7 --benchmark_repetitions 7 --benchmark_name ${CONFIG}"
run_benchmark "powerplant" "${HOME}/embree-models/powerplant/powerplant.ecs" "-size 2048 2048 --benchmark 1 7 --benchmark_repetitions 7 --benchmark_name ${CONFIG}"
run_benchmark "barbarian_mblur" "${HOME}/embree-models/barbarian/barbarian_mblur.ecs" "-size 2048 2048 --benchmark 1 7 --benchmark_repetitions 7 --benchmark_name ${CONFIG}"
run_benchmark "landscape" "${HOME}/embree-models/xfrog/xfrog_landscape.ecs" "-size 2048 2048 --benchmark 1 7 --benchmark_repetitions 7 --benchmark_name ${CONFIG}"
if [[ "$CONFIG" == *"curve"* || "$CONFIG" == *"all"* ]]; then
run_benchmark "curly_hair" "${HOME}/embree-models/hair/curly.ecs" "-size 2048 2048 --benchmark 1 7 --benchmark_repetitions 7 --benchmark_name ${CONFIG} --vp -414.96 43.40 21.78 --vi -70.81 8.0 -0.33"
fi
if [[ "$CONFIG" == *"all"* ]]; then
run_tutorial_benchmark "user_geometry"
run_tutorial_benchmark "intersection_filter"
fi

View file

@ -0,0 +1,37 @@
#!/bin/bash
## Copyright 2020 Intel Corporation
## SPDX-License-Identifier: Apache-2.0
GPU_BENCHMARK_COMMON="platform:x64 compiler:dpcpp build:Release isa:SSE2 EMBREE_SYCL_SUPPORT:ON sycl:dg2 tasking:TBB2021.5.0 intensity:0 EMBREE_USE_GOOGLE_BENCHMARK:ON"
rm -rf benchmark_results && mkdir benchmark_results
rm -rf build
scripts/test.py configure ${GPU_BENCHMARK_COMMON} QUAD:OFF GRID:OFF SUBDIV:OFF POINT:OFF FILTER_FUNCTION:OFF USERGEOM:OFF CURVE:OFF INSTANCE:ON TRI:ON LARGEGRF:OFF
scripts/test.py build
scripts/test.py 'run-benchmark-gpu-config.sh 0-tri+inst'
rm -rf build
scripts/test.py configure ${GPU_BENCHMARK_COMMON} QUAD:OFF GRID:OFF SUBDIV:OFF POINT:OFF FILTER_FUNCTION:OFF USERGEOM:OFF CURVE:OFF INSTANCE:ON TRI:ON LARGEGRF:OFF
scripts/test.py build
scripts/test.py 'run-benchmark-gpu-config.sh 1-tri+inst+mb'
rm -rf build
scripts/test.py configure ${GPU_BENCHMARK_COMMON} QUAD:OFF GRID:OFF SUBDIV:OFF POINT:ON FILTER_FUNCTION:OFF USERGEOM:OFF CURVE:OFF INSTANCE:ON TRI:ON LARGEGRF:OFF
scripts/test.py build
scripts/test.py 'run-benchmark-gpu-config.sh 2-tri+inst+mb+point'
rm -rf build
scripts/test.py configure ${GPU_BENCHMARK_COMMON} QUAD:OFF GRID:OFF SUBDIV:OFF POINT:OFF FILTER_FUNCTION:OFF USERGEOM:OFF CURVE:ON INSTANCE:ON TRI:ON LARGEGRF:ON
scripts/test.py build
scripts/test.py 'run-benchmark-gpu-config.sh 3-tri+inst+mb+curve'
rm -rf build
scripts/test.py configure ${GPU_BENCHMARK_COMMON} QUAD:OFF GRID:OFF SUBDIV:OFF POINT:OFF FILTER_FUNCTION:ON USERGEOM:ON CURVE:ON INSTANCE:ON TRI:ON LARGEGRF:ON
scripts/test.py build
scripts/test.py 'run-benchmark-gpu-config.sh 4-tri+inst+mb+curve+icf'
rm -rf build
scripts/test.py configure ${GPU_BENCHMARK_COMMON} QUAD:ON GRID:ON SUBDIV:ON POINT:ON FILTER_FUNCTION:ON USERGEOM:ON CURVE:ON INSTANCE:ON TRI:ON LARGEGRF:ON
scripts/test.py build
scripts/test.py 'run-benchmark-gpu-config.sh 5-all'

View file

@ -0,0 +1,155 @@
#!/bin/bash
## Copyright 2020 Intel Corporation
## SPDX-License-Identifier: Apache-2.0
git log -1
# environment for benchmark client
source ~/benchmark_client.git/env.sh
source ~/system_token.sh
# benchmark configuration
SOURCE_ROOT=`pwd`
PROJECT_NAME="Embree"
NUMACTL="numactl --physcpubind=+0-27 --"
BENCHMARK="--benchmark 10 0 --benchmark_repetitions 11"
THREADS="--set_affinity 1"
MODEL_DIR="${HOME}/embree-models"
export LD_LIBRARY_PATH=`pwd`/build:${LD_LIBRARY_PATH}
cd build
rm -f *.json
BUILD_SCENES_FILE="../tutorials/models/build.bench"
TRACE_SCENES_FILE="../tutorials/models/trace.bench"
RUN_BUILD_BENCHMARKS=true
RUN_TRACE_BENCHMARKS=true
RUN_TUT_BENCHMARKS=true
################################# PLEASE READ ##################################
#
# Note that suites and subsuites must exist in the database _before_ attempting
# insertion of results. This is intentional! You should think carefully about
# your [suite -> subsuite -> benchmark] hierarchy and definitions. These should
# be stable over time (especially for suites and subsuites) to facilitate
# long-term comparisons.
#
# These can be inserted using the benchmark client, through the "insert suite"
# and "insert subsuite" commands. Ask for help if you have questions.
#
################################# PLEASE READ ###################################
initContext() {
if [ -z "$HAVE_CONTEXT" ]; then
HAVE_CONTEXT=1
benny insert code_context "${PROJECT_NAME}" ${SOURCE_ROOT} --save-json code_context.json
benny insert run_context ${TOKEN} ./code_context.json --save-json run_context.json
fi
}
####################
# build benchmarks #
####################
if ${RUN_BUILD_BENCHMARKS}; then
SUITE_NAME="Build"
benny insert suite ${PROJECT_NAME} ${SUITE_NAME}
## subsuites of build benchmarks
subsuites="update_dynamic_deformable \
create_dynamic_dynamic \
create_static_static \
create_high_quality_static_static"
while IFS= read -r line
do
IFS=' ' read -r -a array <<< "$line"
NAME="${array[0]}"
if [[ $NAME == '#'* ]]; then
continue
fi
SCENE=${MODEL_DIR}/"${array[1]}"
unset "array[0]"
unset "array[1]"
for i in ${subsuites}
do
SUBSUITE_NAME=$i
benny insert subsuite ${PROJECT_NAME} ${SUITE_NAME} ${SUBSUITE_NAME}
initContext
echo "${NUMACTL} ./buildbench --benchmark_out=results-${SUITE_NAME}-${SUBSUITE_NAME}.json ${BENCHMARK} --benchmark_type ${SUBSUITE_NAME} -i ${SCENE} ${array[@]} ${THREADS}"
${NUMACTL} ./buildbench --benchmark_out=results-${SUITE_NAME}-${SUBSUITE_NAME}.json ${BENCHMARK} --benchmark_type ${SUBSUITE_NAME} -i ${SCENE} ${array[@]} ${THREADS}
benny insert googlebenchmark ./run_context.json ${SUITE_NAME} ${SUBSUITE_NAME} ./results-${SUITE_NAME}-${SUBSUITE_NAME}.json
done
done < "${BUILD_SCENES_FILE}"
fi
####################
# trace benchmarks #
####################
if ${RUN_TRACE_BENCHMARKS}; then
SUITE_NAME="Trace"
benny insert suite ${PROJECT_NAME} ${SUITE_NAME}
while IFS= read -r line
do
IFS=' ' read -r -a array <<< "$line"
NAME="${array[0]}"
if [[ $NAME == '#'* ]]; then
continue
fi
SCENE=${MODEL_DIR}/"${array[1]}"
unset "array[0]"
unset "array[1]"
SUBSUITE_NAME="Viewer"
benny insert subsuite ${PROJECT_NAME} ${SUITE_NAME} ${SUBSUITE_NAME}
initContext
echo "${NUMACTL} ./viewer --benchmark_out=results-${SUITE_NAME}-${SUBSUITE_NAME}.json ${BENCHMARK} -c ${SCENE} ${array[@]} ${THREADS} --size 256 256"
${NUMACTL} ./viewer --benchmark_out=results-${SUITE_NAME}-${SUBSUITE_NAME}.json ${BENCHMARK} -c ${SCENE} ${array[@]} ${THREADS}
benny insert googlebenchmark ./run_context.json ${SUITE_NAME} ${SUBSUITE_NAME} ./results-${SUITE_NAME}-${SUBSUITE_NAME}.json
SUBSUITE_NAME="Pathtracer"
benny insert subsuite ${PROJECT_NAME} ${SUITE_NAME} ${SUBSUITE_NAME}
initContext
echo "${NUMACTL} ./pathtracer --benchmark_out=results-${SUITE_NAME}-${SUBSUITE_NAME}.json ${BENCHMARK} -c ${SCENE} ${array[@]} ${THREADS} --size 256 256 --spp 32"
${NUMACTL} ./pathtracer --benchmark_out=results-${SUITE_NAME}-${SUBSUITE_NAME}.json ${BENCHMARK} -c ${SCENE} ${array[@]} ${THREADS}
benny insert googlebenchmark ./run_context.json ${SUITE_NAME} ${SUBSUITE_NAME} ./results-${SUITE_NAME}-${SUBSUITE_NAME}.json
done < "${TRACE_SCENES_FILE}"
if ${RUN_TUT_BENCHMARKS}; then
SUBSUITE_NAME="Tutorials"
benny insert subsuite ${PROJECT_NAME} ${SUITE_NAME} ${SUBSUITE_NAME}
initContext
tutorials="triangle_geometry \
grid_geometry \
curve_geometry \
displacement_geometry \
hair_geometry \
instanced_geometry \
intersection_filter \
point_geometry \
subdivision_geometry \
user_geometry"
for i in ${tutorials}
do
${NUMACTL} ./${i} --benchmark_out=results-${SUITE_NAME}-${SUBSUITE_NAME}.json ${BENCHMARK} ${THREADS}
benny insert googlebenchmark ./run_context.json ${SUITE_NAME} ${SUBSUITE_NAME} ./results-${SUITE_NAME}-${SUBSUITE_NAME}.json
done
fi
fi

View file

@ -0,0 +1,84 @@
#!/bin/bash -xe
PROJECT_NAME=Embree
SUITE_NAME=perfCI
echo perfdb token = ${BENNY_SYSTEM_TOKEN}
benny insert code_context "${PROJECT_NAME}" ${GITHUB_WORKSPACE} --save-json code_context.json
benny insert run_context ${BENNY_SYSTEM_TOKEN} ./code_context.json --save-json run_context.json
benny insert suite ${PROJECT_NAME} ${SUITE_NAME}
models_dir=./embree-models/
git lfs install
git clone https://${RENDERKIT_GITHUB_TOKEN}@github.com/intel-sandbox/embree-models.git $models_dir
ecs_files=($(find $models_dir -name "*.ecs"))
# config
resolution="2048 2048"
cpubench="1 8"
gpubench="5 20"
if [ "$1" != "gpu" ]; then
echo "VIEWER CPU"
SUBSUITE_NAME=embree_viewer
benny insert subsuite ${PROJECT_NAME} ${SUITE_NAME} ${SUBSUITE_NAME}
for ecs_file in "${ecs_files[@]}"
do
./embree_viewer -c $ecs_file --size $resolution --benchmark $cpubench --benchmark_out=result.json
benny insert googlebenchmark ./run_context.json ${SUITE_NAME} ${SUBSUITE_NAME} result.json
done
SUBSUITE_NAME=embree_pathtracer
benny insert subsuite ${PROJECT_NAME} ${SUITE_NAME} ${SUBSUITE_NAME}
echo "PATHTRACER CPU"
for ecs_file in "${ecs_files[@]}"
do
./embree_pathtracer -c $ecs_file --size $resolution --benchmark $cpubench --benchmark_out=result.json
benny insert googlebenchmark ./run_context.json ${SUITE_NAME} ${SUBSUITE_NAME} result.json
done
fi
if [ "$1" != "gpu" ]; then
echo "VIEWER CPU-ispc"
SUBSUITE_NAME=embree_viewer_ispc
benny insert subsuite ${PROJECT_NAME} ${SUITE_NAME} ${SUBSUITE_NAME}
for ecs_file in "${ecs_files[@]}"
do
./embree_viewer_ispc -c $ecs_file --size $resolution --benchmark $cpubench --benchmark_out=result.json
benny insert googlebenchmark ./run_context.json ${SUITE_NAME} ${SUBSUITE_NAME} result.json
done
echo "PATHTRACER CPU-ispc"
SUBSUITE_NAME=embree_pathtracer_ispc
benny insert subsuite ${PROJECT_NAME} ${SUITE_NAME} ${SUBSUITE_NAME}
for ecs_file in "${ecs_files[@]}"
do
./embree_pathtracer_ispc -c $ecs_file --size $resolution --benchmark $cpubench --benchmark_out=result.json
benny insert googlebenchmark ./run_context.json ${SUITE_NAME} ${SUBSUITE_NAME} result.json
done
fi
if [ "$1" != "cpu" ]; then
echo "VIEWER GPU"
SUBSUITE_NAME=embree_viewer_sycl
benny insert subsuite ${PROJECT_NAME} ${SUITE_NAME} ${SUBSUITE_NAME}
for ecs_file in "${ecs_files[@]}"
do
./embree_viewer_sycl -c $ecs_file --size $resolution --benchmark $gpubench --benchmark_out=result.json
benny insert googlebenchmark ./run_context.json ${SUITE_NAME} ${SUBSUITE_NAME} result.json
done
echo "PATHTRACER GPU"
SUBSUITE_NAME=embree_pathtracer_sycl
benny insert subsuite ${PROJECT_NAME} ${SUITE_NAME} ${SUBSUITE_NAME}
for ecs_file in "${ecs_files[@]}"
do
./embree_pathtracer_sycl -c $ecs_file --size $resolution --benchmark $gpubench --benchmark_out=result.json
benny insert googlebenchmark ./run_context.json ${SUITE_NAME} ${SUBSUITE_NAME} result.json
done
fi

View file

@ -0,0 +1,28 @@
#!/usr/bin/env bash
## Copyright 2009-2021 Intel Corporation
## SPDX-License-Identifier: Apache-2.0
if [ -z $2 ]; then
echo "ERROR: usage $0 dpcpp_dir igc_install_dir"
exit 1
fi
DPCPP_DIR=$1
IGC_DIR=$2
# FIXME: for whatever reason this is still needed for the official compute runtime
# otherwise some sycl_test test fail.
export PATH=${DPCPP_DIR}/bin:${IGC_DIR}/usr/bin:${IGC_DIR}/usr/local/bin:${PATH}
export CPATH=${DPCPP_DIR}/include/sycl:${DPCPP_DIR}/include
export LIBRARY_PATH=${DPCPP_DIR}/lib:${LIBRARY_PATH}
export LD_LIBRARY_PATH=${DPCPP_DIR}/lib:${IGC_DIR}/usr/lib/x86_64-linux-gnu:${IGC_DIR}/usr/local/lib:${LD_LIBRARY_PATH}
# FIXME: this might be unnecessary because we directly tell libOpenCL which .ibigdrcl to load using OCL_ICD_VENDORS.
# However, some IGC versions on the NAS don't have a properly modified intel.icd yet.
export OCL_ICD_FILENAMES=${IGC_DIR}/usr/lib/x86_64-linux-gnu/intel-opencl/libigdrcl.so:${IGC_DIR}/usr/local/lib/intel-opencl/libigdrcl.so
export OCL_ICD_VENDORS=${IGC_DIR}/etc/OpenCL/vendors/intel.icd
export CXX=${DPCPP_DIR}/bin/clang++
export CC=${DPCPP_DIR}/bin/clang

View file

@ -0,0 +1,107 @@
# Copyright 2009-2021 Intel Corporation
## SPDX-License-Identifier: Apache-2.0
message("CTEST_BUILD_OPTIONS = ${CTEST_BUILD_OPTIONS}")
# project and repository to clone from
SET(CTEST_PROJECT_NAME "Embree")
SET(TEST_REPOSITORY "https://github.com/embree/embree.git")
# set directories
set(CTEST_SOURCE_DIRECTORY "${CTEST_SCRIPT_DIRECTORY}/..")
set(CTEST_BINARY_DIRECTORY "${CTEST_SCRIPT_DIRECTORY}/../build")
SET(TEST_MODELS_PARENT_DIRECTORY $ENV{HOME})
SET(TEST_MODELS_DIRECTORY ${TEST_MODELS_PARENT_DIRECTORY}/embree-models)
# fix slashes under windows
IF (WIN32)
STRING(REPLACE "\\" "/" CTEST_SOURCE_DIRECTORY "${CTEST_SOURCE_DIRECTORY}")
STRING(REPLACE "\\" "/" CTEST_BINARY_DIRECTORY "${CTEST_BINARY_DIRECTORY}")
STRING(REPLACE "\\" "/" TEST_MODELS_PARENT_DIRECTORY "${TEST_MODELS_PARENT_DIRECTORY}")
STRING(REPLACE "\\" "/" TEST_MODELS_DIRECTORY "${TEST_MODELS_DIRECTORY}")
ENDIF()
MESSAGE("CTEST_SOURCE_DIRECTORY = ${CTEST_SOURCE_DIRECTORY}")
MESSAGE("CTEST_BINARY_DIRECTORY = ${CTEST_BINARY_DIRECTORY}")
MESSAGE("TEST_MODELS_DIRECTORY = ${TEST_MODELS_DIRECTORY}")
MESSAGE("PATH = $ENV{PATH}")
##################################
# configure and build #
##################################
MACRO(build)
include(ProcessorCount)
ProcessorCount(numProcessors)
if(numProcessors EQUAL 0)
SET(numProcessors 1)
endif()
if (${THREADS} EQUAL 0)
SET(THREADS ${numProcessors})
endif()
set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
IF (WIN32)
set(CTEST_BUILD_COMMAND "${CMAKE_COMMAND} --build . -j ${THREADS} --config ${CTEST_CONFIGURATION_TYPE} ${BUILD_SUFFIX}")
ELSE()
if(CMAKE_VERSION VERSION_LESS 3.12.0)
set(CTEST_BUILD_COMMAND "make -j ${THREADS}")
else()
set(CTEST_BUILD_COMMAND "cmake --build . -j ${THREADS}")
endif()
ENDIF()
IF (NOT WIN32)
ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
ENDIF()
ctest_start("Continuous")
set(CTEST_CONFIGURE_COMMAND "${CMAKE_COMMAND} ${CTEST_BUILD_OPTIONS} ..")
ctest_configure(RETURN_VALUE retval)
IF (NOT retval EQUAL 0)
message(FATAL_ERROR "test.cmake: configure failed")
ENDIF()
ctest_build(RETURN_VALUE retval)
message("test.cmake: ctest_build return value = ${retval}")
IF (NOT retval EQUAL 0)
message(FATAL_ERROR "test.cmake: build failed")
ENDIF()
ENDMACRO()
##################################
# configure and execute the test #
##################################
MACRO(test)
ctest_start("Continuous")
set(CTEST_CONFIGURE_COMMAND "${CMAKE_COMMAND} -DBUILD_TESTING:BOOL=ON -DEMBREE_TESTING_INTENSITY=${EMBREE_TESTING_INTENSITY} ..")
ctest_configure()
IF (EMBREE_TESTING_INTENSITY GREATER 0 OR EMBREE_TESTING_KLOCWORK)
ctest_test(RETURN_VALUE retval)
message("test.cmake: ctest_test return value = ${retval}")
IF (NOT retval EQUAL 0)
message(FATAL_ERROR "test.cmake: some tests failed")
ENDIF()
ENDIF()
ENDMACRO()
# increase default output sizes for test outputs
IF (NOT DEFINED CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE)
SET(CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE 100000)
ENDIF()
IF(NOT DEFINED CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE)
SET(CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE 800000)
ENDIF()
IF (${STAGE} STREQUAL "build")
build()
ELSEIF (${STAGE} STREQUAL "test")
test()
ELSE ()
message("unknown stage ${STAGE}. Should be \"build\" or \"test\"")
ENDIF()

View file

@ -0,0 +1,514 @@
#!/usr/bin/env python3
## Copyright 2009-2021 Intel Corporation
## SPDX-License-Identifier: Apache-2.0
import sys
import subprocess
import os
import pickle
import re
import shutil
cwd = os.getcwd()
g_debugMode = False
g_intensity = 2
def escape(str):
str = str.replace("\\",r"\\")
str = str.replace("\"",r"\"")
return str
def parse_version(v):
return tuple(map(int, v.split(".")))
# change some CMake paths in the CMakeCache.txt file for execution of tests
# on potentially different machine (e.g, copied build dir in CI)
def fix_cmake_paths():
with open('build/CMakeCache.txt', 'r') as file:
file_content = file.read()
file_content = re.sub(r"(For build in directory: ).*", os.path.join(r"\1"+cwd, "build"), file_content)
file_content = re.sub(r"(embree[0-9]+_BINARY_DIR:STATIC=).*", os.path.join(r"\1"+cwd, "build"), file_content)
file_content = re.sub(r"(CMAKE_CACHEFILE_DIR:INTERNAL=).*", os.path.join(r"\1"+cwd, "build"), file_content)
file_content = re.sub(r"(embree[0-9]+_SOURCE_DIR:STATIC=).*", r"\1"+cwd, file_content)
file_content = re.sub(r"(CMAKE_HOME_DIRECTORY:INTERNAL=).*", r"\1"+cwd, file_content)
with open('build/CMakeCache.txt', 'w') as file:
file.write(file_content)
# detect platform
if sys.platform.startswith("win"):
import ctypes
SEM_FAILCRITICALERRORS = 0x0001
SEM_NOGPFAULTERRORBOX = 0x0002
SEM_NOOPENFILEERRORBOX = 0x8000
ctypes.windll.kernel32.SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX);
OS = "windows"
elif sys.platform.startswith("cygwin"):
import ctypes
SEM_FAILCRITICALERRORS = 0x0001
SEM_NOGPFAULTERRORBOX = 0x0002
SEM_NOOPENFILEERRORBOX = 0x8000
ctypes.cdll.kernel32.SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX);
OS = "windows"
elif sys.platform.startswith("linux"):
OS = "linux"
elif sys.platform.startswith("darwin"):
OS = "macosx"
else:
print("unknown platform: "+ sys.platform);
sys.exit(1)
NAS = os.environ["STORAGE_PATH"] + "/packages/apps"
if "klocwork:ON" in sys.argv:
NAS = "/NAS/packages/apps"
# configures tests for specified host machine
def runConfig(config):
conf = [] # CMake configuration
env = [] # shell environment
rtcore = [] # rtcore configuration
build = config["build"]
conf.append("-D CMAKE_BUILD_TYPE="+build+"")
cmake_build_suffix = ""
threads = "0"
if "threads" in config:
threads = config["threads"]
# TODO: not used in any of the workflow definitions
if "memcheck" in config:
conf.append("-D EMBREE_TESTING_MEMCHECK="+config["memcheck"]+"")
# TODO: this is not used anywhere in embree cmake...
if "sde" in config:
conf.append("-D EMBREE_TESTING_SDE="+config["sde"]+"")
if "addrsanitizer" in config:
conf.append("-D EMBREE_ADDRESS_SANITIZER="+config["addrsanitizer"]+"")
if "intensity" in config:
g_intensity = config["intensity"]
else:
g_intensity = 2
if "klocwork" in config:
conf.append("-D EMBREE_TESTING_KLOCWORK="+config["klocwork"])
if "L0RTAS" in config:
conf.append("-D EMBREE_SYCL_L0_RTAS_BUILDER="+config["L0RTAS"])
if "package" in config:
conf.append("-D EMBREE_STACK_PROTECTOR=ON")
if "maxinstancelevelcount" in config:
conf.append("-D EMBREE_MAX_INSTANCE_LEVEL_COUNT="+config["maxinstancelevelcount"])
enable_sycl_support = False
if "EMBREE_SYCL_SUPPORT" in config:
enable_sycl_support = True
conf.append("-D EMBREE_SYCL_SUPPORT="+config["EMBREE_SYCL_SUPPORT"])
conf.append("-D EMBREE_TESTING_ONLY_SYCL_TESTS=ON")
#if "package" in config and OS == 'linux': # we need up to date cmake for RPMs to work properly
compiler = config["compiler"]
platform = config["platform"]
if OS == "windows":
cmake_build_suffix = "-- /m /t:rebuild"
ext = ""
if platform == "x64":
ext = " Win64"
if (compiler == "V142"):
conf.append("-G \"Visual Studio 16 2019\"")
conf.append("-T \"V142\"")
conf.append("-A \"x64\"")
elif (compiler == "V141"):
conf.append("-G \"Visual Studio 15 2017"+ext+"\"")
conf.append("-T \"V141\"")
elif (compiler == "ICC19-VC141"):
conf.append("-G \"Visual Studio 15 2017"+ext+"\"")
conf.append("-T \"Intel C++ Compiler 19.0\"")
elif (compiler == "ICC18-VC141"):
conf.append("-G \"Visual Studio 15 2017"+ext+"\"")
conf.append("-T \"Intel C++ Compiler 18.0\"")
elif (compiler == "V140"):
conf.append("-G \"Visual Studio 14 2015"+ext+"\"")
conf.append("-T \"V140\"")
elif (compiler == "V120"):
conf.append("-G \"Visual Studio 12 2013"+ext+"\"")
conf.append("-T \"V120\"")
elif (compiler == "V110"):
conf.append("-G \"Visual Studio 11 2012"+ext+"\"")
conf.append("-T \"V110\"")
elif (compiler == "ICC19-VC14"):
conf.append("-G \"Visual Studio 14 2015"+ext+"\"")
conf.append("-T \"Intel C++ Compiler 19.0\"")
elif (compiler == "ICC18-VC14"):
conf.append("-G \"Visual Studio 14 2015"+ext+"\"")
conf.append("-T \"Intel C++ Compiler 18.0\"")
elif (compiler == "ICC17-VC14"):
conf.append("-G \"Visual Studio 14 2015"+ext+"\"")
conf.append("-T \"Intel C++ Compiler 17.0\"")
elif (compiler == "ICC17-VC12"):
conf.append("-G \"Visual Studio 12 2013"+ext+"\"")
conf.append("-T \"Intel C++ Compiler 17.0\"")
elif (compiler == "ICC17"):
conf.append("-G \"Visual Studio 12 2013"+ext+"\"")
conf.append("-T \"Intel C++ Compiler 17.0\"")
elif (compiler == "ICC16"):
conf.append("-G \"Visual Studio 12 2013"+ext+"\"")
conf.append("-T \"Intel C++ Compiler 16.0\"")
elif (compiler == "ICC15"):
conf.append("-G \"Visual Studio 12 2013"+ext+"\"")
conf.append("-T \"Intel C++ Compiler XE 15.0\"")
elif (compiler == "LLVM_CLANG"):
conf.append("-G \"Visual Studio 16 2019\"")
conf.append("-A "+platform)
conf.append("-T \"LLVM_v142\"")
elif (compiler == "V141_CLANG"):
conf.append("-G \"Visual Studio 15 2017"+ext+"\"")
conf.append("-T \"v141_clang_c2\"")
elif (compiler.startswith("ICX")):
cmake_build_suffix = ""
conf.append("-G Ninja -D CMAKE_CXX_COMPILER=icx -DCMAKE_C_COMPILER=icx")
elif (compiler.startswith("dpcpp")):
cmake_build_suffix=""
conf.append("-G Ninja -D CMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang")
else:
raise ValueError('unknown compiler: ' + compiler + '')
elif OS == "linux":
if (compiler == "GCC"):
conf.append("-D CMAKE_CXX_COMPILER=g++ -D CMAKE_C_COMPILER=gcc")
elif (compiler == "CLANG"):
conf.append("-D CMAKE_CXX_COMPILER=clang++ -D CMAKE_C_COMPILER=clang")
elif (compiler.startswith("ICX")):
conf.append("-G Ninja -DCMAKE_CXX_COMPILER=icpx -DCMAKE_C_COMPILER=icx")
elif (compiler.startswith("ICC")):
conf.append("-D CMAKE_CXX_COMPILER="+NAS+"/intel/"+compiler[3:]+"/bin/icpc -D CMAKE_C_COMPILER="+NAS+"/intel/"+compiler[3:]+"/bin/icc")
elif (compiler.startswith("CLANG")):
conf.append("-D CMAKE_CXX_COMPILER="+NAS+"/clang/v"+compiler[5:]+"/bin/clang++ -D CMAKE_C_COMPILER="+NAS+"/clang/v"+compiler[5:]+"/bin/clang")
elif (compiler.startswith("dpcpp")):
conf.append("-G Ninja -D CMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang")
else:
raise ValueError('unknown compiler: ' + compiler + '')
else:
if (compiler == "GCC"):
conf.append("-D CMAKE_CXX_COMPILER=g++ -D CMAKE_C_COMPILER=gcc")
elif (compiler == "CLANG"):
conf.append("-D CMAKE_CXX_COMPILER=clang++ -D CMAKE_C_COMPILER=clang")
elif (compiler.startswith("ICC")):
conf.append("-D CMAKE_CXX_COMPILER="+NAS+"/intel/"+compiler[3:]+"-osx/compiler/latest/mac/bin/intel64/icpc -D CMAKE_C_COMPILER="+NAS+"/intel/"+compiler[3:]+"-osx/compiler/latest/mac/bin/intel64/icc")
elif (compiler.startswith("ICX")):
conf.append("-D CMAKE_CXX_COMPILER=/opt/intel/oneapi/compiler/"+compiler[3:]+"/mac/bin/intel64/icpc")
conf.append("-D CMAKE_C_COMPILER=/opt/intel/oneapi/compiler/"+compiler[3:]+"/mac/bin/intel64/icc")
else:
raise ValueError('unknown compiler: ' + compiler + '')
if "ispc" in config:
conf.append("-D EMBREE_ISPC_SUPPORT=ON")
ispc_compiler = config["ispc"]
if ispc_compiler.startswith("ispc"):
ispc_version = ispc_compiler[4:]
if ispc_version != "":
if OS == "windows": bin_folder = "bin\\"
else : bin_folder = "bin/"
if parse_version(ispc_version) < parse_version("1.11.0"): bin_folder = ""
if OS == "linux":
conf.append("-D EMBREE_ISPC_EXECUTABLE="+NAS + "/ispc/"+ispc_version+"-linux/"+bin_folder+"ispc")
elif OS == "macosx":
conf.append("-D EMBREE_ISPC_EXECUTABLE="+NAS + "/ispc/"+ispc_version+"-osx/"+bin_folder+"ispc")
elif OS == "windows":
conf.append("-D EMBREE_ISPC_EXECUTABLE="+NAS+"\\ispc\\"+ispc_version+"-windows\\"+bin_folder+"ispc.exe")
else:
sys.stderr.write("unknown operating system "+OS)
sys.exit(1)
else:
raise ValueError('unknown ISPC compiler: ' + ispc_compiler + '')
else:
conf.append("-D EMBREE_ISPC_SUPPORT=OFF")
isa = config["isa"]
if type(isa) == str:
conf.append("-D EMBREE_MAX_ISA="+isa+"")
else:
conf.append("-D EMBREE_MAX_ISA=NONE")
if "SSE2" in isa: conf.append("-D EMBREE_ISA_SSE2=ON")
else : conf.append("-D EMBREE_ISA_SSE2=OFF")
if "SSE42" in isa: conf.append("-D EMBREE_ISA_SSE42=ON")
else : conf.append("-D EMBREE_ISA_SSE42=OFF")
if "AVX" in isa: conf.append("-D EMBREE_ISA_AVX=ON")
else : conf.append("-D EMBREE_ISA_AVX=OFF")
if "AVX2" in isa: conf.append("-D EMBREE_ISA_AVX2=ON")
else : conf.append("-D EMBREE_ISA_AVX2=OFF")
if "AVX512" in isa: conf.append("-D EMBREE_ISA_AVX512=ON")
else : conf.append("-D EMBREE_ISA_AVX512=OFF")
if "tasking" in config:
tasking = config["tasking"]
if tasking == "INT":
conf.append("-D EMBREE_TASKING_SYSTEM=INTERNAL")
elif tasking == "PPL":
conf.append("-D EMBREE_TASKING_SYSTEM=PPL")
elif tasking.startswith("TBB"):
conf.append("-D EMBREE_TASKING_SYSTEM=TBB")
if OS == "linux":
if tasking == "TBB":
conf.append("-D EMBREE_TBB_ROOT=/usr")
elif tasking.startswith("TBB"):
conf.append("-D EMBREE_TBB_ROOT="+NAS+"/tbb/tbb-"+tasking[3:]+"-linux")
else:
raise ValueError('unknown tasking system: ' + tasking + '')
elif OS == "macosx":
if tasking == "TBB":
conf.append("-D EMBREE_TBB_ROOT=/opt/local")
elif tasking == "TBB_HOMEBREW":
conf.append("-D EMBREE_TBB_ROOT=/opt/homebrew")
elif tasking.startswith("TBB"):
conf.append("-D EMBREE_TBB_ROOT="+NAS+"/tbb/tbb-"+tasking[3:]+"-osx")
else:
raise ValueError('unknown tasking system: ' + tasking + '')
elif OS == "windows":
tbb_path = ""+NAS+"\\tbb\\tbb-"+tasking[3:]+"-windows"
conf.append("-D EMBREE_TBB_ROOT="+tbb_path)
# prepend PATH modification to prevent problems with non-delayed
# evaluation of variables in cmd when running oneAPI DPC++ compiler
# setup script, for example.
if platform == "x64":
env.insert(0, "set PATH="+tbb_path+"\\bin\\intel64\\vc12;"+tbb_path+"\\bin\\intel64\\vc14;"+tbb_path+"\\redist\\intel64\\vc12;"+tbb_path+"\\redist\\intel64\\vc14;%PATH%")
else:
env.insert(0, "set PATH="+tbb_path+"\\bin\\ia32\\vc12;"+tbb_path+"\\bin\\ia32\\vc14;"+tbb_path+"\\redist\\ia32\\vc12;"+tbb_path+"\\redist\\ia32\\vc14;%PATH%")
else:
sys.stderr.write("unknown operating system "+OS)
sys.exit(1)
else:
raise ValueError('unknown tasking system: ' + tasking)
if "api_namespace" in config:
conf.append("-D EMBREE_API_NAMESPACE="+config["api_namespace"])
conf.append("-D EMBREE_LIBRARY_NAME="+config["api_namespace"]) # we test different library name at the same time
conf.append("-D EMBREE_ISPC_SUPPORT=OFF")
# Add embree specific optons
for opt in ["LEVEL_ZERO", "STATIC_LIB", "TUTORIALS", "BACKFACE_CULLING", "BACKFACE_CULLING_CURVES", "IGNORE_INVALID_RAYS", "FILTER_FUNCTION", "LARGEGRF", "RAY_MASK", "RAY_PACKETS", "STAT_COUNTERS", "COMPACT_POLYS", "MIN_WIDTH"]:
if opt in config:
conf.append("-D EMBREE_"+opt+"="+config[opt])
# TODO: check if we want to chonge the names of theese options, so that the pattern fits here as well
if "TRI" in config:
conf.append("-D EMBREE_GEOMETRY_TRIANGLE="+config["TRI"])
if "QUAD" in config:
conf.append("-D EMBREE_GEOMETRY_QUAD="+config["QUAD"])
if "GRID" in config:
conf.append("-D EMBREE_GEOMETRY_GRID="+config["GRID"])
if "CURVE" in config:
conf.append("-D EMBREE_GEOMETRY_CURVE="+config["CURVE"])
if "SUBDIV" in config:
conf.append("-D EMBREE_GEOMETRY_SUBDIVISION="+config["SUBDIV"])
if "USERGEOM" in config:
conf.append("-D EMBREE_GEOMETRY_USER="+config["USERGEOM"])
if "INSTANCE" in config:
conf.append("-D EMBREE_GEOMETRY_INSTANCE="+config["INSTANCE"])
if "INSTANCE_ARRAY" in config:
conf.append("-D EMBREE_GEOMETRY_INSTANCE_ARRAY="+config["INSTANCE_ARRAY"])
if "POINT" in config:
conf.append("-D EMBREE_GEOMETRY_POINT="+config["POINT"])
if "GLFW" in config:
conf.append("-D EMBREE_TUTORIALS_GLFW="+config["GLFW"])
if "frequency_level" in config:
rtcore.append("frequency_level="+config["frequency_level"])
if "sycl" in config:
conf.append("-D EMBREE_SYCL_AOT_DEVICES="+config["sycl"])
if "implicit_dispatch_globals" in config:
conf.append("-D EMBREE_SYCL_IMPLICIT_DISPATCH_GLOBALS="+config["implicit_dispatch_globals"])
if "sycl_test" in config:
conf.append("-D EMBREE_SYCL_TEST="+config["sycl_test"])
if "rt_validation_api" in config:
conf.append("-D EMBREE_SYCL_RT_VALIDATION_API="+config["rt_validation_api"])
if "test_only_sycl" in config:
conf.append("-D EMBREE_TESTING_ONLY_SYCL_TESTS="+config["test_only_sycl"])
else:
conf.append("-D EMBREE_TESTING_ONLY_SYCL_TESTS=OFF")
if "EMBREE_USE_GOOGLE_BENCHMARK" in config:
conf.append("-D EMBREE_USE_GOOGLE_BENCHMARK="+config["EMBREE_USE_GOOGLE_BENCHMARK"])
else:
conf.append("-D EMBREE_USE_GOOGLE_BENCHMARK=OFF")
if "EMBREE_GOOGLE_BENCHMARK_DIR" in config:
conf.append("-D benchmark_DIR:PATH="+config["EMBREE_GOOGLE_BENCHMARK_DIR"])
if "EMBREE_BUILD_GOOGLE_BENCHMARK_FROM_SOURCE" in config:
conf.append("-D EMBREE_BUILD_GOOGLE_BENCHMARK_FROM_SOURCE=ON")
else:
conf.append("-D EMBREE_BUILD_GOOGLE_BENCHMARK_FROM_SOURCE=OFF")
if "package" in config:
SIGN_FILE = ""
if OS == "windows":
SIGN_FILE = os.environ["SIGN_FILE_WINDOWS"]
elif OS == "linux":
SIGN_FILE = os.environ["SIGN_FILE_LINUX"]
elif OS == "macosx":
SIGN_FILE = os.environ["SIGN_FILE_MAC"]
conf.append("-D EMBREE_SIGN_FILE="+SIGN_FILE)
conf.append("-D BUILD_TESTING=ON")
conf.append("-D EMBREE_TESTING_INSTALL_TESTS=ON")
conf.append("-D EMBREE_TESTING_PACKAGE=ON")
conf.append("-D EMBREE_TUTORIALS_OPENIMAGEIO=OFF")
conf.append("-D EMBREE_TUTORIALS_LIBJPEG=OFF")
conf.append("-D EMBREE_TUTORIALS_LIBPNG=OFF")
if OS == "linux" and config["package"] == "ZIP":
conf.append("-D EMBREE_INSTALL_DEPENDENCIES=ON")
conf.append("-D EMBREE_BUILD_GLFW_FROM_SOURCE=ON")
conf.append("-D EMBREE_ZIP_MODE=ON")
conf.append("-D CMAKE_SKIP_INSTALL_RPATH=OFF")
conf.append("-D CMAKE_INSTALL_INCLUDEDIR=include")
conf.append("-D CMAKE_INSTALL_LIBDIR=lib")
conf.append("-D CMAKE_INSTALL_DOCDIR=doc")
conf.append("-D CMAKE_INSTALL_BINDIR=bin")
conf.append("-D CMAKE_INSTALL_TESTDIR=testing")
elif OS == "macosx" and config["package"] == "ZIP":
conf.append("-D EMBREE_INSTALL_DEPENDENCIES=ON")
conf.append("-D EMBREE_ZIP_MODE=ON")
conf.append("-D CMAKE_SKIP_INSTALL_RPATH=OFF")
conf.append("-D CMAKE_MACOSX_RPATH=ON")
conf.append("-D CMAKE_INSTALL_INCLUDEDIR=include")
conf.append("-D CMAKE_INSTALL_LIBDIR=lib")
conf.append("-D CMAKE_INSTALL_DOCDIR=doc")
conf.append("-D CMAKE_INSTALL_BINDIR=bin")
conf.append("-D CMAKE_INSTALL_TESTDIR=testing")
elif OS == "windows" and config["package"] == "ZIP":
conf.append("-D EMBREE_INSTALL_DEPENDENCIES=ON")
conf.append("-D EMBREE_BUILD_GLFW_FROM_SOURCE=ON")
conf.append("-D EMBREE_ZIP_MODE=ON")
conf.append("-D CMAKE_INSTALL_INCLUDEDIR=include")
conf.append("-D CMAKE_INSTALL_LIBDIR=lib")
conf.append("-D CMAKE_INSTALL_DATAROOTDIR=")
conf.append("-D CMAKE_INSTALL_DOCDIR=doc")
conf.append("-D CMAKE_INSTALL_BINDIR=bin")
conf.append("-D CMAKE_INSTALL_TESTDIR=testing")
else:
sys.stderr.write("unknown package mode: "+OS+":"+config["package"])
sys.exit(1)
if rtcore:
conf.append("-D EMBREE_CONFIG="+(",".join(rtcore)))
if "dumptests" in config:
conf.append("-D EMBREE_TESTING_DUMPTESTS=" + config["dumptests"])
if "dumpformat" in config:
conf.append("-D EMBREE_TESTING_DUMPFORMAT=" + config["dumpformat"])
ctest_suffix = ""
ctest_suffix += " -D EMBREE_TESTING_INTENSITY="+str(g_intensity)
if "klocwork" in config:
ctest_suffix += " -D EMBREE_TESTING_KLOCWORK="+config["klocwork"]
ctest_suffix += " -D CTEST_CONFIGURATION_TYPE=\""+build+"\""
ctest_suffix += " -D CTEST_BUILD_OPTIONS=\"" + escape(" ".join(conf))+"\""
ctest_env = ""
for e in env:
ctest_env += e + " && "
ctest_conf = [ctest_env, ctest_suffix, cmake_build_suffix, threads]
pickle.dump(ctest_conf, open(".ctest_conf", "wb"), 0)
# builds or runs tests for specified host machine
def run(mode):
[ctest_env, ctest_suffix, cmake_build_suffix, threads] = pickle.load(open(".ctest_conf", "rb"))
# pick sde executable
# don't use sde if no sde cpuid is specified
sde_cmd = ""
if mode == "test" and "sde" in g_config:
if OS == "linux":
sde_cmd = os.path.sep.join([NAS, 'sde', 'lin', 'sde64'])
elif OS == "macosx":
sde_cmd = os.path.sep.join([NAS, 'sde', 'mac', 'sde64'])
elif OS == "windows":
sde_cmd = os.path.sep.join([NAS, 'sde', 'win', 'sde64'])
else:
sys.stderr.write("unknown operating system "+OS)
sys.exit(1)
sde_cmd = sde_cmd + " -" + g_config['sde'] + " -- "
if mode == "test" or mode == "build":
cmd = ctest_env + sde_cmd + "ctest -VV -S "+ os.path.join("scripts","test.cmake -DSTAGE="+mode+" -DTHREADS="+threads+" -DBUILD_SUFFIX=\""+cmake_build_suffix+"\"") + ctest_suffix
else:
cmd = ctest_env + os.path.join("scripts",mode)
if mode == "env":
cmd = ctest_env + "echo env";
if mode == "test" and not OS == "windows":
fix_cmake_paths()
# execute step
if (g_debugMode):
print(cmd)
else:
try:
if OS == "windows":
subprocess.check_call(cmd, stderr=subprocess.STDOUT, shell=True)
else:
subprocess.check_call(cmd, stderr=subprocess.STDOUT, shell=True, executable='/bin/bash')
except subprocess.CalledProcessError as e:
sys.stderr.write("windows test invocation failed with return code "+str(e.returncode))
sys.exit(1)
g_config = {}
def parseCommandLine(argv):
global g_config
global g_debugMode
if len(argv) == 0:
return;
elif len(argv)>=1 and argv[0] == "--debug":
g_debugMode = True
parseCommandLine(argv[1:len(argv)])
elif len(argv)>=1 and argv[0] == "--help":
return
elif ':' in argv[0]:
p = argv[0].split(":")
if p[0] == "isas":
g_config["isa"] = p[1].split('-')
else:
g_config[p[0]] = p[1]
parseCommandLine(argv[1:len(argv)])
else:
sys.stderr.write("unknown command line option: "+argv[0])
sys.exit(1)
argv = sys.argv
g_mode = ""
if len(argv) < 2:
sys.exit(1)
else:
g_mode = argv[1]
parseCommandLine(argv[2:len(argv)])
if (g_mode == "configure"):
runConfig(g_config)
else:
run(g_mode)

View file

@ -0,0 +1,271 @@
:: Copyright 2009-2021 Intel Corporation
:: SPDX-License-Identifier: Apache-2.0
@echo off
set "VARSDIR=%~dp0"
if not defined CMPLR_ROOT for /f "delims=" %%F in ("%VARSDIR%..") do set "CMPLR_ROOT=%%~fF"
set "SCRIPT_NAME=%~nx0"
set "VS_TARGET_ARCH="
set "INTEL_TARGET_ARCH="
set "INTEL_TARGET_PLATFORM=windows"
set "USE_INTEL_LLVM=0"
set "DPCPP_DIR="
set "GFX_DIR="
if /i "%1"=="" (
echo "error set dpcpp version" & goto END
) else (
set DPCPP_DIR=%1
)
shift
if /i "%1"=="" (
echo "error set gfx version" & goto END
) else (
set GFX_DIR=%1
)
shift
:ParseArgs
:: Parse the incoming arguments
if /i "%1"=="" goto CheckArgs
if /i "%1"=="ia32" (set INTEL_TARGET_ARCH=ia32) & (set TARGET_VS_ARCH=x86) & shift & goto ParseArgs
if /i "%1"=="intel64" (set INTEL_TARGET_ARCH=intel64) & (set TARGET_VS_ARCH=amd64) & shift & goto ParseArgs
if /i "%1"=="vs2017" (set TARGET_VS=vs2017) & shift & goto ParseArgs
if /i "%1"=="vs2019" (set TARGET_VS=vs2019) & shift & goto ParseArgs
if /i "%1"=="--include-intel-llvm" (set USE_INTEL_LLVM=1) & shift & goto ParseArgs
shift & goto ParseArgs
:CheckArgs
:: set correct defaults
if /i "%INTEL_TARGET_ARCH%"=="" (set INTEL_TARGET_ARCH=intel64) & (set TARGET_VS_ARCH=amd64)
:: Setup Intel Compiler environment directly if Visual Studio environment is ready.
if defined VSCMD_VER (
if /i "%VSCMD_ARG_TGT_ARCH%"=="x86" (
set INTEL_TARGET_ARCH=ia32
) else (
set INTEL_TARGET_ARCH=intel64
)
echo "SetIntelEnv"
goto SetIntelEnv
)
::detect installed VS
set "MSVS_VAR_SCRIPT="
:: The exact installation directory depends on both the version and offering of Visual Studio,
:: according to the following pattern: C:\Program Files (x86)\Microsoft Visual Studio\<version>\<offering>.
if defined VS2019INSTALLDIR (
goto SetVCVars
)
if defined VS2017INSTALLDIR (
goto SetVCVars
)
if /i "%TARGET_VS%"=="" (
call :SetVS2019INSTALLDIR
if not defined VS2019INSTALLDIR (
call :SetVS2017INSTALLDIR
)
goto SetVCVars
)
if /i "%TARGET_VS%"=="vs2019" (
if not defined VS2019INSTALLDIR (
call :SetVS2019INSTALLDIR
)
goto SetVCVars
)
if /i "%TARGET_VS%"=="vs2017" (
if not defined VS2017INSTALLDIR (
call :SetVS2017INSTALLDIR
)
goto SetVCVars
)
::default, set the latest VS in global environment
:SetVCVars
if /i "%TARGET_VS%"=="" (
::vs2019
if defined VS2019INSTALLDIR (
if exist "%VS2019INSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" (
goto SetVS2019
)
)
::vs2017
if defined VS2017INSTALLDIR (
if exist "%VS2017INSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" (
goto SetVS2017
)
)
call :NO_VS 2017 or 2019
goto EndWithError
)
::VS2019
if /i "%TARGET_VS%"=="vs2019" (
if defined VS2019INSTALLDIR (
if exist "%VS2019INSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" (
goto SetVS2019
)
)
call :NO_VS 2019
goto EndWithError
)
::VS2017
if /i "%TARGET_VS%"=="vs2017" (
if defined VS2017INSTALLDIR (
if exist "%VS2017INSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" (
goto SetVS2017
)
)
call :NO_VS 2017
goto EndWithError
)
:SetVS2019
set "TARGET_VS=vs2019"
set MSVS_VAR_SCRIPT="%VS2019INSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat"
goto Setup
:SetVS2017
set "TARGET_VS=vs2017"
set MSVS_VAR_SCRIPT="%VS2017INSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat"
goto Setup
:Setup
echo "MSVS_VAR_SCRIPT %MSVS_VAR_SCRIPT%"
:: call visual studio VARs script
:: ============================================================================
if "%VSCMD_START_DIR%"=="" (
if EXIST "%USERPROFILE%\Source" (
set "VSCMD_START_DIR=%CD%"
)
)
@call %MSVS_VAR_SCRIPT% %TARGET_VS_ARCH% 1>NUL
call :GetFullPath %MSVS_VAR_SCRIPT%\.. MSVS_VAR_SCRIPT_DIR
if /i "%INTEL_TARGET_ARCH%"=="ia32" (
if defined VCToolsInstallDir (
if exist "%VCToolsInstallDir%\bin\HostX64\x64" (
set "PATH=%PATH%;%VCToolsInstallDir%\bin\HostX64\x64"
goto set_dll_end
)
)
if exist "%MSVS_VAR_SCRIPT_DIR%\bin\amd64" (
set "PATH=%PATH%;%MSVS_VAR_SCRIPT_DIR%\bin\amd64"
goto set_dll_end
)
)
:set_dll_end
if defined VCToolsInstallDir (
set "__MS_VC_INSTALL_PATH=%VCToolsInstallDir%"
)
:: setup intel compiler after visual studio environment ready
:: ============================================================================
:SetIntelEnv
if /i "%INTEL_TARGET_ARCH%"=="ia32" (
set "INTEL_TARGET_ARCH_IA32=ia32"
) else (
if defined INTEL_TARGET_ARCH_IA32 (set "INTEL_TARGET_ARCH_IA32=")
)
:: There should be only one OpenCL CPU / FGPA emu runtime is loaded.
if defined OCL_ICD_FILENAMES (
set "OCL_ICD_FILENAMES="
)
:: OpenCL FPGA runtime
if exist "%CMPLR_ROOT%\%INTEL_TARGET_PLATFORM%\lib\oclfpga\fpgavars.bat" (
call "%CMPLR_ROOT%\%INTEL_TARGET_PLATFORM%\lib\oclfpga\fpgavars.bat"
)
:: ===========================================================================
:: location of this bat file, without a trailing \ (backslash character)
set "ROOT=%~dp0"
set "ROOT=%ROOT:~0,-1%"
echo "using dpcpp compiler %DPCPP_DIR%"
echo "using gfx/driver %GFX_DIR%"
set "PATH=%DPCPP_DIR%\bin;%PATH%"
set "PATH=%DPCPP_DIR%\lib;%PATH%"
set "PATH=%GFX_DIR%;%PATH%"
set "PATH=%GFX_DIR%\Graphics;%PATH%"
set "CPATH=%DPCPP_DIR%\include;%CPATH%"
set "INCLUDE=%DPCPP_DIR%\include;%INCLUDE%"
set "LIB=%DPCPP_DIR%\lib;%LIB%"
goto End
:End
exit /B 0
:: ============================================================================
:NO_VS
echo.
if /i "%*"=="2017 or 2019" (
echo ERROR: Visual Studio %* is not found in "C:\Program Files (x86)\Microsoft Visual Studio\<2017 or 2019>\<Edition>", please set VS2017INSTALLDIR or VS2019INSTALLDIR
goto :EOF
)
if /i "%*"=="2019" (
echo ERROR: Visual Studio %* is not found in "C:\Program Files (x86)\Microsoft Visual Studio\2019\<Edition>", please set VS2019INSTALLDIR
goto :EOF
)
if /i "%*"=="2017" (
echo ERROR: Visual Studio %* is not found in "C:\Program Files (x86)\Microsoft Visual Studio\2019\<Edition>", please set VS2017INSTALLDIR
goto :EOF
)
:EndWithError
exit /B 1
:: ============================================================================
:GetFullPath
SET %2=%~f1
GOTO :EOF
:SetVS2019INSTALLDIR
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional" (
set "VS2019INSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional"
goto :EOF
)
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" (
set "VS2019INSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise"
goto :EOF
)
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community" (
set "VS2019INSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community"
goto :EOF
)
goto :EOF
:SetVS2017INSTALLDIR
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional" (
set "VS2017INSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional"
goto :EOF
)
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise" (
set "VS2017INSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise"
goto :EOF
)
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community" (
set "VS2017INSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
goto :EOF
)
goto :EOF