Skip to content

Commit 2f53826

Browse files
committed
Merge branch 'release-1.0' into 'master'
Release 1.0 Remaining items to be done before merge: - ~~Make AVX512 a regular ISA in ```OSPRAY_BUILD_ISA``` selection~~ - ~~Add release-1.0 branch to deploy jobs~~ - ~~Update website to use new ```ospGlutViewer``` instead of old ```ospModelViewer```~~ - ~~Update ```CHANGELOG```~~ - ~~Make ```OSPRAY_USE_EXTERNAL_EMBREE``` default to ```ON```~~ See merge request !11
2 parents 5c34884 + d6f0098 commit 2f53826

481 files changed

Lines changed: 45214 additions & 8732 deletions

File tree

Some content is hidden

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

.gitlab-ci.yml

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,30 @@ build-osx-clang:
7171
build-windows-msvc:
7272
type: build
7373
script:
74-
- call scripts\build_gitlab\win.bat
74+
- call scripts\build_gitlab\win.bat "Visual Studio 12 2013 Win64" "v120"
7575
tags:
7676
- msvc
7777
- build
7878
- win7
7979

80+
build-windows-msvc14:
81+
type: build
82+
script:
83+
- call scripts\build_gitlab\win.bat "Visual Studio 14 2015 Win64" "v140"
84+
tags:
85+
- msvc14
86+
- build
87+
- win7
88+
89+
build-windows-icc:
90+
type: build
91+
script:
92+
- call scripts\build_gitlab\win.bat "Visual Studio 12 2013 Win64" "Intel C++ Compiler 16.0"
93+
tags:
94+
- icc
95+
- build
96+
- win7
97+
8098
### RELEASE JOBS ###
8199

82100
# NOTE(jda) - Current CentOS 6 release machine needs gcc environment
@@ -96,6 +114,7 @@ build-windows-msvc:
96114
# only:
97115
# - devel
98116
# - master
117+
# - release-1.0
99118
# artifacts:
100119
# paths:
101120
# - build_release/*.gz
@@ -114,7 +133,7 @@ release-linux-icc:
114133
only:
115134
- devel
116135
- master
117-
- release-0.10
136+
- release-1.0
118137
artifacts:
119138
paths:
120139
- build_release/*.gz
@@ -132,7 +151,7 @@ release-osx-clang:
132151
only:
133152
- devel
134153
- master
135-
- release-0.10
154+
- release-1.0
136155
artifacts:
137156
paths:
138157
- build_release/*.gz
@@ -149,7 +168,7 @@ release-windows:
149168
only:
150169
- devel
151170
- master
152-
- release-0.10
171+
- release-1.0
153172
artifacts:
154173
paths:
155174
- build_release\ospray*.zip

CHANGELOG.md

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,50 @@
11
Version History
22
---------------
33

4+
### Changes in v1.0.0:
5+
6+
- New OSPRay 'SDK'
7+
- OSPRay internal headers are now installed, enabling applications
8+
to extend OSPRay from a binary install
9+
- CMake macros for OSPRay and ISPC configuration now a part of
10+
binary releases
11+
- CMake clients use them by calling
12+
`include(${OSPRAY_USE_FILE})` in their CMake code after
13+
calling `find_package(ospray)`
14+
- New OSPRay C++ wrapper classes
15+
- These act as a thin layer on top of OSPRay object handles,
16+
where multiple wrappers will share the same underlying
17+
handle when assigned, copied, or moved
18+
- New OSPRay objects are only created when a class instance is
19+
explicity constructed
20+
- C++ users are encouraged to use these over the `ospray.h`
21+
API
22+
- Complete rework of sample applications
23+
- New shared code for parsing the `commandline`
24+
- Save/load of transfer functions now handled through a separate
25+
library which does not depend on Qt
26+
- Added `ospCvtParaViewTfcn` utility, which enables
27+
`ospVolumeViewer` to load color maps from ParaView
28+
- GLUT based sample viewer updates
29+
- Rename of `ospModelViewer` to `ospGlutViewer`
30+
- GLUT viewer now supports volume rendering
31+
- Command mode with preliminary scripting capabilities,
32+
enabled by pressing '`:`' key (not available when using
33+
Intel C++ compiler (icc))
34+
- Enhanced support of sample applications on Windows
35+
- New minimum ISPC version is 1.9.0
36+
- Support of Intel® AVX-512 for second generation Intel® Xeon Phi™
37+
processor (codename Knights Landing) is now a part of the
38+
`OSPRAY_BUILD_ISA` CMake build configuration
39+
- Compiling AVX-512 requires icc to be enabled as a build option
40+
- Enhanced error messages when `ospLoadModule()` fails
41+
- Added `OSP_FB_RGBA32F` support in the `DistributedFrameBuffer`
42+
- Updated Glass shader in the PathTracer
43+
- Many miscellaneous cleanups, bugfixes, and improvements
44+
445
### Changes in v0.10.1:
5-
- Fixed support of first generation Intel® Xeon Phi™ coprocessor
46+
47+
- Fixed support of first generation Intel Xeon Phi coprocessor
648
(codename Knights Corner)
749
- Restored missing implementation of `ospRemoveVolume()`
850

@@ -11,7 +53,7 @@ Version History
1153
- Added new tasking options: `Cilk`, `Internal`, and `Debug`
1254
- Provides more ways for OSPRay to interact with calling
1355
application tasking systems
14-
- `Cilk`: Use Intel® Cilk™ Plus language extensions (ICC only)
56+
- `Cilk`: Use Intel® Cilk™ Plus language extensions (icc only)
1557
- `Internal`: Use hand written OSPRay tasking system
1658
- `Debug`: All tasks are run in serial (useful for debugging)
1759
- In most cases, Intel Threading Building Blocks (Intel `TBB`)

CMakeLists.txt

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,28 @@ IF(POLICY CMP0054)
2929
ENDIF()
3030

3131
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake)
32-
SET(OSPRAY_VERSION_MAJOR 0)
33-
SET(OSPRAY_VERSION_MINOR 10)
34-
SET(OSPRAY_VERSION_PATCH 1)
32+
SET(OSPRAY_VERSION_MAJOR 1)
33+
SET(OSPRAY_VERSION_MINOR 0)
34+
SET(OSPRAY_VERSION_PATCH 0)
35+
SET(OSPRAY_VERSION_GITHASH 0)
36+
IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git)
37+
FIND_PACKAGE(Git)
38+
IF(GIT_FOUND)
39+
EXECUTE_PROCESS(
40+
COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
41+
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
42+
OUTPUT_VARIABLE "OSPRAY_VERSION_GITHASH"
43+
ERROR_QUIET
44+
OUTPUT_STRIP_TRAILING_WHITESPACE)
45+
ENDIF()
46+
ENDIF()
47+
3548
SET(OSPRAY_VERSION
3649
${OSPRAY_VERSION_MAJOR}.${OSPRAY_VERSION_MINOR}.${OSPRAY_VERSION_PATCH}
3750
)
3851
SET(OSPRAY_SOVERSION 0)
3952

53+
4054
SET(CONFIGURATION_TYPES "Debug;Release;RelWithDebInfo")
4155
IF (WIN32)
4256
IF (NOT OSPRAY_DEFAULT_CMAKE_CONFIGURATION_TYPES_SET)
@@ -68,17 +82,12 @@ IF(NOT WIN32)
6882
INCLUDE(cmake/doxygen.cmake)
6983
ENDIF()
7084

71-
OSPRAY_CONFIGURE_COMPILER()
72-
7385
##############################################################
7486
# OSPRay specific build options and configuration selection
7587
##############################################################
7688

7789
OPTION(OSPRAY_USE_EXTERNAL_EMBREE
78-
"Use a pre-built Embree instead of the internally built version")
79-
80-
OPTION(OSPRAY_BUILD_ENABLE_KNL "Enable experimental 'Knights Landing' build?")
81-
MARK_AS_ADVANCED(OSPRAY_BUILD_ENABLE_KNL)
90+
"Use a pre-built Embree instead of the internally built version" ON)
8291

8392
OPTION(OSPRAY_VOLUME_VOXELRANGE_IN_APP "Move 'voxelrange' computations to app?")
8493
MARK_AS_ADVANCED(OSPRAY_VOLUME_VOXELRANGE_IN_APP)
@@ -95,37 +104,29 @@ ENDIF()
95104

96105
OPTION(OSPRAY_BUILD_MPI_DEVICE "Add MPI Remote/Distributed rendering support?")
97106

98-
# the arch we're targeting for the non-MIC/non-xeon phi part of ospray
99-
SET(OSPRAY_BUILD_ISA "ALL" CACHE STRING "Target ISA (SSE, AVX, AVX2, or ALL)")
100-
IF (OSPRAY_BUILD_ENABLE_KNL)
101-
SET_PROPERTY(CACHE OSPRAY_BUILD_ISA PROPERTY STRINGS ALL SSE AVX AVX2 AVX512)
102-
ELSE()
103-
SET_PROPERTY(CACHE OSPRAY_BUILD_ISA PROPERTY STRINGS ALL SSE AVX AVX2)
104-
ENDIF()
105-
106-
# make ISA target case-insensitive, used in configure_ospray() macro
107-
STRING(TOUPPER ${OSPRAY_BUILD_ISA} OSPRAY_BUILD_ISA)
108-
109107
SET(OSPRAY_MIC ${OSPRAY_BUILD_MIC_SUPPORT})
110108
SET(OSPRAY_MPI ${OSPRAY_BUILD_MPI_DEVICE})
111109

112110
##############################################################
113111
# create binary packages; before any INSTALL() invocation/definition
114112
##############################################################
115113

114+
OPTION(OSPRAY_ZIP_MODE "Use tarball/zip CPack generator instead of RPM" ON)
115+
MARK_AS_ADVANCED(OSPRAY_ZIP_MODE)
116+
116117
INCLUDE(package)
117118

118119
##############################################################
119120
# the OSPRay 'common' library
120121
##############################################################
121122

122-
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR})
123-
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/ospray/include)
123+
CONFIGURE_OSPRAY()
124+
124125
SET(OSPRAY_TARGET "intel64")
125-
ADD_SUBDIRECTORY(common builddir/ospray_common/intel64)
126+
ADD_SUBDIRECTORY(ospcommon builddir/ospray_common/intel64)
126127
IF (OSPRAY_MIC)
127128
SET(OSPRAY_TARGET "mic")
128-
ADD_SUBDIRECTORY(common builddir/ospray_common/mic)
129+
ADD_SUBDIRECTORY(ospcommon builddir/ospray_common/mic)
129130
ENDIF()
130131

131132
##############################################################

README.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
OSPRay
22
======
33

4-
This is release v0.10.1 of OSPRay. For changes and new features see the
4+
This is release v1.0.0 of OSPRay. For changes and new features see the
55
[changelog](CHANGELOG.md). Also visit http://www.ospray.org for more
66
information.
77

@@ -29,10 +29,10 @@ and AVX-512 to achieve high rendering performance.
2929
OSPRay Support and Contact
3030
--------------------------
3131

32-
OSPRay is still in beta stage, and though we do our best to
32+
OSPRay is under active development, and though we do our best to
3333
guarantee stable release versions a certain number of bugs,
3434
as-yet-missing features, inconsistencies, or any other issues are
35-
unavoidable at this stage. Should you find any such issues please report
35+
still possible. Should you find any such issues please report
3636
them immediately via [OSPRay's GitHub Issue
3737
Tracker](https://github.com/ospray/OSPRay/issues) (or, if you should
3838
happen to have a fix for it,you can also send us a pull request); for
@@ -67,7 +67,7 @@ following prerequisites:
6767
- To build OSPRay you need [CMake](http://www.cmake.org), any
6868
form of C++ compiler (we recommend using the [Intel® C++ compiler
6969
(icc)](https://software.intel.com/en-us/c-compilers), but also
70-
support GCC and clang-cc), and standard Linux development tools.
70+
support GCC and Clang), and standard Linux development tools.
7171
To build the demo viewers, you should also have some version of
7272
OpenGL and the GL Utility Toolkit (GLUT or freeglut), as well as
7373
Qt 4.6 or higher.
@@ -83,7 +83,7 @@ following prerequisites:
8383
- Per default OSPRay uses the Intel® Threading Building Blocks (TBB)
8484
as tasking system, which we recommend for performance and
8585
flexibility reasons. Alternatively you can set CMake variable
86-
`OSPRAY_TASKING_SYSTEM` to `OpenMP`.
86+
`OSPRAY_TASKING_SYSTEM` to `OpenMP`, `Internal`, or `Cilk` (icc only).
8787
- OSPRay also heavily uses [Embree](http://embree.github.io); however,
8888
OSPRay directly includes its own copy of Embree, so a special
8989
installation of Embree is *not* required.
@@ -129,13 +129,13 @@ CMake is easy:
129129
- The compiler CMake will use will default to whatever the `CC` and
130130
`CXX` environment variables point to. Should you want to specify a
131131
different compiler, run cmake manually while specifying the desired
132-
compiler. The default compiler on most linux machines is 'gcc', but
133-
it can be pointed to 'clang' instead by executing the following:
132+
compiler. The default compiler on most linux machines is `gcc`, but
133+
it can be pointed to `clang` instead by executing the following:
134134

135135
user@mymachine[~/Projects/ospray/release]: cmake
136136
-DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang ..
137137

138-
CMake will now use clang instead of gcc. If you are ok with using
138+
CMake will now use Clang instead of GCC. If you are ok with using
139139
the default compiler on your system, then simply skip this step.
140140
Note that the compiler variables cannot be changed after the first
141141
`cmake` or `ccmake` run.
@@ -216,3 +216,6 @@ at the [OSPRay Demos and Examples] page.
216216
[imgTutorial2]: https://ospray.github.io/images/tutorial_accumulatedframe.png
217217
[imgQtViewer]: https://ospray.github.io/images/QtViewer.jpg
218218
[imgVolumeViewer]: https://ospray.github.io/images/VolumeViewer.png
219+
[imgSpotLight]: https://ospray.github.io/images/spot_light.png
220+
[imgQuadLight]: https://ospray.github.io/images/quad_light.png
221+
[imgHDRILight]: https://ospray.github.io/images/hdri_light.png

apps/CMakeLists.txt

Lines changed: 40 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -14,33 +14,56 @@
1414
## limitations under the License. ##
1515
## ======================================================================== ##
1616

17-
CONFIGURE_OSPRAY()
18-
1917
IF(NOT THIS_IS_MIC)
2018

21-
# common xml utility classes
19+
INCLUDE_DIRECTORIES(
20+
${CMAKE_SOURCE_DIR}/ospray/include
21+
${CMAKE_SOURCE_DIR}
22+
${CMAKE_CURRENT_LIST_DIR}
23+
common
24+
)
25+
26+
# common utilities
27+
ADD_SUBDIRECTORY(common/commandline)
28+
ADD_SUBDIRECTORY(common/importer)
29+
ADD_SUBDIRECTORY(common/ospray_cpp)
30+
ADD_SUBDIRECTORY(common/tfn_lib)
31+
ADD_SUBDIRECTORY(common/miniSG)
2232
ADD_SUBDIRECTORY(common/xml)
2333

24-
# mini-scene graph viewer for _geometry_ (intentionally simple)
25-
OPTION(OSPRAY_APPS_MODELVIEWER "Build ospModelViewer application." ON)
34+
# benchmark application which has no windowing framework dependencies
35+
OPTION(OSPRAY_APPS_BENCHMARK "Build ospBenchmark application." ON)
36+
37+
IF(OSPRAY_APPS_BENCHMARK)
38+
ADD_SUBDIRECTORY(bench)
39+
ENDIF()
40+
41+
# determine if we can enable scripting features (can't with icc)
42+
IF(NOT OSPRAY_COMPILER_ICC)
43+
OPTION(OSPRAY_APPS_ENABLE_SCRIPTING
44+
"Enable scripting features in viewer apps."
45+
ON)
46+
MARK_AS_ADVANCED(OSPRAY_APPS_ENABLE_SCRIPTING)
47+
ELSE()
48+
SET(OSPRAY_APPS_ENABLE_SCRIPTING OFF)
49+
ENDIF()
50+
51+
IF(OSPRAY_APPS_ENABLE_SCRIPTING)
52+
ADD_DEFINITIONS(-DOSPRAY_APPS_ENABLE_SCRIPTING)
53+
INCLUDE_DIRECTORIES(common/script/chaiscript)
54+
ADD_SUBDIRECTORY(common/script)
55+
ENDIF()
2656

27-
# include glut and widgets only when needed
28-
# needs to be before the first application, such that the GLUT include path is known
29-
# XXX if the defaults change, include could be missing on the first run of CMake
30-
IF(OSPRAY_APPS_MODELVIEWER OR
31-
OSPRAY_APPS_STREAMLINEVIEWER OR
32-
OSPRAY_APPS_PARTICLEVIEWER)
33-
# GLUT is used by apps as well
57+
# mini-scene graph viewer implemented with GLUT
58+
OPTION(OSPRAY_APPS_GLUTVIEWER "Build ospGlutViewer application." ON)
59+
60+
IF(OSPRAY_APPS_GLUTVIEWER)
3461
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/glut.cmake)
3562
# common utility classes for GLUT-based 3D viewer widget
3663
ADD_SUBDIRECTORY(common/widgets)
64+
ADD_SUBDIRECTORY(glutViewer)
3765
ENDIF()
3866

39-
IF (OSPRAY_APPS_MODELVIEWER)
40-
ADD_SUBDIRECTORY(modelViewer)
41-
ENDIF()
42-
43-
IF(NOT WIN32)
4467
# NOTE(jda) - Disable Qt based viewers when on OS X using ICC due to
4568
# unresolved issues
4669
# qt-based viewer for geometry (and soon volumes)
@@ -51,25 +74,11 @@ IF(NOT THIS_IS_MIC)
5174
ENDIF()
5275
ENDIF()
5376

54-
# stream line viewer for NASA Stream Line Demo
55-
OPTION(OSPRAY_APPS_STREAMLINEVIEWER "Build ospStreamLineViewer application." OFF)
56-
MARK_AS_ADVANCED(OSPRAY_APPS_STREAMLINEVIEWER)
57-
IF(OSPRAY_APPS_STREAMLINEVIEWER)
58-
ADD_SUBDIRECTORY(streamLineViewer)
59-
ENDIF()
60-
61-
# xyz atom model viewer (one sphere per atom)
62-
OPTION(OSPRAY_APPS_PARTICLEVIEWER "Build ospParticleViewer application." OFF)
63-
IF(OSPRAY_APPS_PARTICLEVIEWER)
64-
ADD_SUBDIRECTORY(particleViewer)
65-
ENDIF()
66-
6777
# volume viewer application
6878
IF(NOT (APPLE AND (${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")))
6979
OPTION(OSPRAY_APPS_VOLUMEVIEWER "Build ospVolumeViewer application." ON)
7080
IF(OSPRAY_APPS_VOLUMEVIEWER)
7181
ADD_SUBDIRECTORY(volumeViewer)
7282
ENDIF()
7383
ENDIF()
74-
ENDIF(NOT WIN32)
7584
ENDIF()

0 commit comments

Comments
 (0)