Skip to content

Commit 5a7071d

Browse files
committed
Merge branch 'release-1.0.x'
2 parents 0ebfb98 + fc1826f commit 5a7071d

File tree

187 files changed

+7779
-3678
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

187 files changed

+7779
-3678
lines changed

CHANGELOG.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,42 @@
11
Version History
22
---------------
33

4+
### Open VKL 1.0.0
5+
6+
- The version 1.0 release marks long term API stability (until v2.0)
7+
- Open VKL can now be built for ARM CPUs that support Neon
8+
- Iterator API updates:
9+
- Introducing interval and hit iterator contexts, which hold
10+
iterator-specific configuration (eliminates value selector objects)
11+
- Interval and hit iteration is now supported on any volume attribute
12+
- Interval iterators now include a `time` parameter
13+
- Interval iterators now support the `intervalResolutionHint` parameter,
14+
replacing `maxIteratorDepth` and `elementaryCellIteration`
15+
- Supporting configurable background values; default is now
16+
`VKL_BACKGROUND_UNDEFINED` (NaN) for all volume types
17+
- `vklGetValueRange()` now supports all volume attributes
18+
- Added ISPC-side API bindings for `vklGetNumAttributes()` and
19+
`vklGetValueRange()`
20+
- Structured regular volumes:
21+
- Added support for tricubic filtering
22+
- More accurate gradient computations respecting filter mode
23+
- Hit iteration robustness improvements
24+
- VDB volumes:
25+
- Interval and hit iteration robustness improvements
26+
- Corrected interval iterator `nominalDeltaT` computation for
27+
non-normalized ray directions and non-uniform object-space grid spacings
28+
- Fixed bug which could cause incorrect value range computations for
29+
temporally varying volumes
30+
- vklExamples additions demonstrating:
31+
- Multi-attribute interval / hit iteration
32+
- Configurable background values
33+
- Temporally varying volumes
34+
- Superbuild updates to latest versions of dependencies
35+
- Now requiring minimum versions:
36+
- Embree 3.13.1
37+
- rkcommon 1.7.0
38+
- ISPC 1.16.0
39+
440
### Open VKL 0.13.0
541

642
- Driver (now device) API changes:

CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
1919

2020
## Establish project ##
2121

22-
project(openvkl VERSION 0.13.0 LANGUAGES C CXX)
22+
project(openvkl VERSION 1.0.0 LANGUAGES C CXX)
2323

2424
## Add openvkl specific macros ##
2525

@@ -47,13 +47,13 @@ openvkl_configure_build_type()
4747
openvkl_configure_global_build_flags()
4848
openvkl_configure_ispc_isa()
4949

50-
set(RKCOMMON_VERSION_REQUIRED 1.6.1)
50+
set(RKCOMMON_VERSION_REQUIRED 1.7.0)
5151
find_package(rkcommon ${RKCOMMON_VERSION_REQUIRED} REQUIRED)
5252
get_target_property(RKCOMMON_INCLUDE_DIRS rkcommon::rkcommon
5353
INTERFACE_INCLUDE_DIRECTORIES)
5454

5555

56-
find_package(embree 3.6.1 REQUIRED)
56+
find_package(embree 3.13.1 REQUIRED)
5757
openvkl_create_embree_target()
5858

5959
## Build library, examples, and tests ##

README.md

Lines changed: 272 additions & 184 deletions
Large diffs are not rendered by default.

SECURITY.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
Security Policy
2+
===============
3+
4+
Intel is committed to rapidly addressing security vulnerabilities
5+
affecting our customers and providing clear guidance on the solution,
6+
impact, severity and mitigation.
7+
8+
Reporting a Vulnerability
9+
-------------------------
10+
11+
Please [report any security vulnerabilities][guidelines] in this project
12+
utilizing the [guidelines here][guidelines].
13+
14+
[guidelines]: https://www.intel.com/content/www/us/en/security-center/vulnerability-handling-guidelines.html "Vulnerability Handling Guidelines"

cmake/openvklConfig.cmake.in

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
## Copyright 2019-2020 Intel Corporation
1+
## Copyright 2019-2021 Intel Corporation
22
## SPDX-License-Identifier: Apache-2.0
33

44
@PACKAGE_INIT@
@@ -16,6 +16,7 @@ set(OPENVKL_ISA_AVX @OPENVKL_ISA_AVX@)
1616
set(OPENVKL_ISA_AVX2 @OPENVKL_ISA_AVX2@)
1717
set(OPENVKL_ISA_AVX512KNL @OPENVKL_ISA_AVX512KNL@)
1818
set(OPENVKL_ISA_AVX512SKX @OPENVKL_ISA_AVX512SKX@)
19+
set(OPENVKL_ISA_NEON @OPENVKL_ISA_NEON@)
1920

2021
## Standard signal that the package was found ##
2122

cmake/openvkl_ispc.cmake

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
option(OPENVKL_ISPC_FAST_MATH "enable ISPC fast-math optimizations" OFF)
55

66
# ISPC versions to look for, in decending order (newest first)
7-
set(ISPC_VERSION_WORKING "1.15.0" "1.14.1")
7+
set(ISPC_VERSION_WORKING "1.16.0")
88
list(GET ISPC_VERSION_WORKING -1 ISPC_VERSION_REQUIRED)
99

1010
if (NOT ISPC_EXECUTABLE)
@@ -83,14 +83,18 @@ endmacro ()
8383

8484
macro(openvkl_configure_ispc_isa)
8585
# support only individual specification of ISAs
86-
option(OPENVKL_ISA_SSE4 "Enables SSE4 ISA." ON)
87-
option(OPENVKL_ISA_AVX "Enables AVX ISA." ON)
88-
option(OPENVKL_ISA_AVX2 "Enables AVX2 ISA." ON)
89-
option(OPENVKL_ISA_AVX512KNL "Enables AVX512 ISA for Knights Landing." OFF)
90-
option(OPENVKL_ISA_AVX512SKX "Enables AVX512 ISA for Skylake." ON)
91-
92-
if (OPENVKL_ISA_AVX512KNL AND OPENVKL_ISA_AVX512SKX)
93-
message(FATAL_ERROR "Only one AVX512 ISA may be enabled; choose either AVX512KNL or AVX512SKX")
86+
if (NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm64|aarch64")
87+
option(OPENVKL_ISA_SSE4 "Enables SSE4 ISA." ON)
88+
option(OPENVKL_ISA_AVX "Enables AVX ISA." ON)
89+
option(OPENVKL_ISA_AVX2 "Enables AVX2 ISA." ON)
90+
option(OPENVKL_ISA_AVX512KNL "Enables AVX512 ISA for Knights Landing." OFF)
91+
option(OPENVKL_ISA_AVX512SKX "Enables AVX512 ISA for Skylake." ON)
92+
93+
if (OPENVKL_ISA_AVX512KNL AND OPENVKL_ISA_AVX512SKX)
94+
message(FATAL_ERROR "Only one AVX512 ISA may be enabled; choose either AVX512KNL or AVX512SKX")
95+
endif()
96+
else()
97+
option(OPENVKL_ISA_NEON "Enables NEON ISA." ON)
9498
endif()
9599

96100
# generate final ISPC target lists; both a full list of all targets, and lists
@@ -106,6 +110,12 @@ macro(openvkl_configure_ispc_isa)
106110
message(STATUS "OpenVKL SSE4 ISA target enabled.")
107111
endif()
108112

113+
if (OPENVKL_ISA_NEON)
114+
set(OPENVKL_ISPC_TARGET_LIST ${OPENVKL_ISPC_TARGET_LIST} neon-i32x4)
115+
set(OPENVKL_ISPC_TARGET_LIST_4 ${OPENVKL_ISPC_TARGET_LIST_4} neon-i32x4)
116+
message(STATUS "OpenVKL NEON ISA target enabled.")
117+
endif()
118+
109119
if (OPENVKL_ISA_AVX)
110120
set(OPENVKL_ISPC_TARGET_LIST ${OPENVKL_ISPC_TARGET_LIST} avx)
111121
set(OPENVKL_ISPC_TARGET_LIST_8 ${OPENVKL_ISPC_TARGET_LIST_8} avx)
@@ -139,7 +149,7 @@ macro(openvkl_configure_ispc_isa)
139149
if (DEFINED ${TARGET_LIST})
140150
list(LENGTH ${TARGET_LIST} NUM_TARGETS)
141151

142-
if (NUM_TARGETS EQUAL 1)
152+
if (NUM_TARGETS EQUAL 1 AND NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm64|aarch64")
143153
list(APPEND ${TARGET_LIST} sse2)
144154
endif()
145155
endif()
@@ -158,7 +168,11 @@ macro (OPENVKL_ISPC_COMPILE)
158168
string(REPLACE ";" "," ISPC_TARGET_ARGS "${ISPC_TARGETS}")
159169

160170
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
161-
set(ISPC_ARCHITECTURE "x86-64")
171+
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm64|aarch64")
172+
set(ISPC_ARCHITECTURE "aarch64")
173+
else()
174+
set(ISPC_ARCHITECTURE "x86-64")
175+
endif()
162176
else()
163177
set(ISPC_ARCHITECTURE "x86")
164178
endif()

cmake/openvkl_macros.cmake

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -100,14 +100,16 @@ function(openvkl_get_compile_options_for_width WIDTH FLAGS)
100100

101101
message(STATUS "detected Clang or GNU compiler")
102102

103-
if(WIDTH EQUAL 4)
104-
set(LOCAL_FLAGS "-msse4.2")
105-
elseif(WIDTH EQUAL 8)
106-
set(LOCAL_FLAGS "-mavx")
107-
elseif(WIDTH EQUAL 16)
108-
set(LOCAL_FLAGS "-mavx512f")
109-
else()
110-
message(FATAL_ERROR "unknown build width")
103+
if(NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm64|aarch64")
104+
if(WIDTH EQUAL 4)
105+
set(LOCAL_FLAGS "-msse4.2")
106+
elseif(WIDTH EQUAL 8)
107+
set(LOCAL_FLAGS "-mavx")
108+
elseif(WIDTH EQUAL 16)
109+
set(LOCAL_FLAGS "-mavx512f")
110+
else()
111+
message(FATAL_ERROR "unknown build width")
112+
endif()
111113
endif()
112114

113115
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")

0 commit comments

Comments
 (0)