Skip to content

Commit

Permalink
Merge branch 'release-1.0' into 'master'
Browse files Browse the repository at this point in the history
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
  • Loading branch information
jeffamstutz committed Jul 20, 2016
2 parents 5c34884 + d6f0098 commit 2f53826
Show file tree
Hide file tree
Showing 481 changed files with 45,214 additions and 8,732 deletions.
27 changes: 23 additions & 4 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,30 @@ build-osx-clang:
build-windows-msvc:
type: build
script:
- call scripts\build_gitlab\win.bat
- call scripts\build_gitlab\win.bat "Visual Studio 12 2013 Win64" "v120"
tags:
- msvc
- build
- win7

build-windows-msvc14:
type: build
script:
- call scripts\build_gitlab\win.bat "Visual Studio 14 2015 Win64" "v140"
tags:
- msvc14
- build
- win7

build-windows-icc:
type: build
script:
- call scripts\build_gitlab\win.bat "Visual Studio 12 2013 Win64" "Intel C++ Compiler 16.0"
tags:
- icc
- build
- win7

### RELEASE JOBS ###

# NOTE(jda) - Current CentOS 6 release machine needs gcc environment
Expand All @@ -96,6 +114,7 @@ build-windows-msvc:
# only:
# - devel
# - master
# - release-1.0
# artifacts:
# paths:
# - build_release/*.gz
Expand All @@ -114,7 +133,7 @@ release-linux-icc:
only:
- devel
- master
- release-0.10
- release-1.0
artifacts:
paths:
- build_release/*.gz
Expand All @@ -132,7 +151,7 @@ release-osx-clang:
only:
- devel
- master
- release-0.10
- release-1.0
artifacts:
paths:
- build_release/*.gz
Expand All @@ -149,7 +168,7 @@ release-windows:
only:
- devel
- master
- release-0.10
- release-1.0
artifacts:
paths:
- build_release\ospray*.zip
Expand Down
46 changes: 44 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,50 @@
Version History
---------------

### Changes in v1.0.0:

- New OSPRay 'SDK'
- OSPRay internal headers are now installed, enabling applications
to extend OSPRay from a binary install
- CMake macros for OSPRay and ISPC configuration now a part of
binary releases
- CMake clients use them by calling
`include(${OSPRAY_USE_FILE})` in their CMake code after
calling `find_package(ospray)`
- New OSPRay C++ wrapper classes
- These act as a thin layer on top of OSPRay object handles,
where multiple wrappers will share the same underlying
handle when assigned, copied, or moved
- New OSPRay objects are only created when a class instance is
explicity constructed
- C++ users are encouraged to use these over the `ospray.h`
API
- Complete rework of sample applications
- New shared code for parsing the `commandline`
- Save/load of transfer functions now handled through a separate
library which does not depend on Qt
- Added `ospCvtParaViewTfcn` utility, which enables
`ospVolumeViewer` to load color maps from ParaView
- GLUT based sample viewer updates
- Rename of `ospModelViewer` to `ospGlutViewer`
- GLUT viewer now supports volume rendering
- Command mode with preliminary scripting capabilities,
enabled by pressing '`:`' key (not available when using
Intel C++ compiler (icc))
- Enhanced support of sample applications on Windows
- New minimum ISPC version is 1.9.0
- Support of Intel® AVX-512 for second generation Intel® Xeon Phi™
processor (codename Knights Landing) is now a part of the
`OSPRAY_BUILD_ISA` CMake build configuration
- Compiling AVX-512 requires icc to be enabled as a build option
- Enhanced error messages when `ospLoadModule()` fails
- Added `OSP_FB_RGBA32F` support in the `DistributedFrameBuffer`
- Updated Glass shader in the PathTracer
- Many miscellaneous cleanups, bugfixes, and improvements

### Changes in v0.10.1:
- Fixed support of first generation Intel® Xeon Phi™ coprocessor

- Fixed support of first generation Intel Xeon Phi coprocessor
(codename Knights Corner)
- Restored missing implementation of `ospRemoveVolume()`

Expand All @@ -11,7 +53,7 @@ Version History
- Added new tasking options: `Cilk`, `Internal`, and `Debug`
- Provides more ways for OSPRay to interact with calling
application tasking systems
- `Cilk`: Use Intel® Cilk™ Plus language extensions (ICC only)
- `Cilk`: Use Intel® Cilk™ Plus language extensions (icc only)
- `Internal`: Use hand written OSPRay tasking system
- `Debug`: All tasks are run in serial (useful for debugging)
- In most cases, Intel Threading Building Blocks (Intel `TBB`)
Expand Down
49 changes: 25 additions & 24 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,28 @@ IF(POLICY CMP0054)
ENDIF()

SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake)
SET(OSPRAY_VERSION_MAJOR 0)
SET(OSPRAY_VERSION_MINOR 10)
SET(OSPRAY_VERSION_PATCH 1)
SET(OSPRAY_VERSION_MAJOR 1)
SET(OSPRAY_VERSION_MINOR 0)
SET(OSPRAY_VERSION_PATCH 0)
SET(OSPRAY_VERSION_GITHASH 0)
IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git)
FIND_PACKAGE(Git)
IF(GIT_FOUND)
EXECUTE_PROCESS(
COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
OUTPUT_VARIABLE "OSPRAY_VERSION_GITHASH"
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
ENDIF()
ENDIF()

SET(OSPRAY_VERSION
${OSPRAY_VERSION_MAJOR}.${OSPRAY_VERSION_MINOR}.${OSPRAY_VERSION_PATCH}
)
SET(OSPRAY_SOVERSION 0)


SET(CONFIGURATION_TYPES "Debug;Release;RelWithDebInfo")
IF (WIN32)
IF (NOT OSPRAY_DEFAULT_CMAKE_CONFIGURATION_TYPES_SET)
Expand Down Expand Up @@ -68,17 +82,12 @@ IF(NOT WIN32)
INCLUDE(cmake/doxygen.cmake)
ENDIF()

OSPRAY_CONFIGURE_COMPILER()

##############################################################
# OSPRay specific build options and configuration selection
##############################################################

OPTION(OSPRAY_USE_EXTERNAL_EMBREE
"Use a pre-built Embree instead of the internally built version")

OPTION(OSPRAY_BUILD_ENABLE_KNL "Enable experimental 'Knights Landing' build?")
MARK_AS_ADVANCED(OSPRAY_BUILD_ENABLE_KNL)
"Use a pre-built Embree instead of the internally built version" ON)

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

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

# the arch we're targeting for the non-MIC/non-xeon phi part of ospray
SET(OSPRAY_BUILD_ISA "ALL" CACHE STRING "Target ISA (SSE, AVX, AVX2, or ALL)")
IF (OSPRAY_BUILD_ENABLE_KNL)
SET_PROPERTY(CACHE OSPRAY_BUILD_ISA PROPERTY STRINGS ALL SSE AVX AVX2 AVX512)
ELSE()
SET_PROPERTY(CACHE OSPRAY_BUILD_ISA PROPERTY STRINGS ALL SSE AVX AVX2)
ENDIF()

# make ISA target case-insensitive, used in configure_ospray() macro
STRING(TOUPPER ${OSPRAY_BUILD_ISA} OSPRAY_BUILD_ISA)

SET(OSPRAY_MIC ${OSPRAY_BUILD_MIC_SUPPORT})
SET(OSPRAY_MPI ${OSPRAY_BUILD_MPI_DEVICE})

##############################################################
# create binary packages; before any INSTALL() invocation/definition
##############################################################

OPTION(OSPRAY_ZIP_MODE "Use tarball/zip CPack generator instead of RPM" ON)
MARK_AS_ADVANCED(OSPRAY_ZIP_MODE)

INCLUDE(package)

##############################################################
# the OSPRay 'common' library
##############################################################

INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR})
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/ospray/include)
CONFIGURE_OSPRAY()

SET(OSPRAY_TARGET "intel64")
ADD_SUBDIRECTORY(common builddir/ospray_common/intel64)
ADD_SUBDIRECTORY(ospcommon builddir/ospray_common/intel64)
IF (OSPRAY_MIC)
SET(OSPRAY_TARGET "mic")
ADD_SUBDIRECTORY(common builddir/ospray_common/mic)
ADD_SUBDIRECTORY(ospcommon builddir/ospray_common/mic)
ENDIF()

##############################################################
Expand Down
19 changes: 11 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
OSPRay
======

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

Expand Down Expand Up @@ -29,10 +29,10 @@ and AVX-512 to achieve high rendering performance.
OSPRay Support and Contact
--------------------------

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

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

CMake will now use clang instead of gcc. If you are ok with using
CMake will now use Clang instead of GCC. If you are ok with using
the default compiler on your system, then simply skip this step.
Note that the compiler variables cannot be changed after the first
`cmake` or `ccmake` run.
Expand Down Expand Up @@ -216,3 +216,6 @@ at the [OSPRay Demos and Examples] page.
[imgTutorial2]: https://ospray.github.io/images/tutorial_accumulatedframe.png
[imgQtViewer]: https://ospray.github.io/images/QtViewer.jpg
[imgVolumeViewer]: https://ospray.github.io/images/VolumeViewer.png
[imgSpotLight]: https://ospray.github.io/images/spot_light.png
[imgQuadLight]: https://ospray.github.io/images/quad_light.png
[imgHDRILight]: https://ospray.github.io/images/hdri_light.png
71 changes: 40 additions & 31 deletions apps/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,33 +14,56 @@
## limitations under the License. ##
## ======================================================================== ##

CONFIGURE_OSPRAY()

IF(NOT THIS_IS_MIC)

# common xml utility classes
INCLUDE_DIRECTORIES(
${CMAKE_SOURCE_DIR}/ospray/include
${CMAKE_SOURCE_DIR}
${CMAKE_CURRENT_LIST_DIR}
common
)

# common utilities
ADD_SUBDIRECTORY(common/commandline)
ADD_SUBDIRECTORY(common/importer)
ADD_SUBDIRECTORY(common/ospray_cpp)
ADD_SUBDIRECTORY(common/tfn_lib)
ADD_SUBDIRECTORY(common/miniSG)
ADD_SUBDIRECTORY(common/xml)

# mini-scene graph viewer for _geometry_ (intentionally simple)
OPTION(OSPRAY_APPS_MODELVIEWER "Build ospModelViewer application." ON)
# benchmark application which has no windowing framework dependencies
OPTION(OSPRAY_APPS_BENCHMARK "Build ospBenchmark application." ON)

IF(OSPRAY_APPS_BENCHMARK)
ADD_SUBDIRECTORY(bench)
ENDIF()

# determine if we can enable scripting features (can't with icc)
IF(NOT OSPRAY_COMPILER_ICC)
OPTION(OSPRAY_APPS_ENABLE_SCRIPTING
"Enable scripting features in viewer apps."
ON)
MARK_AS_ADVANCED(OSPRAY_APPS_ENABLE_SCRIPTING)
ELSE()
SET(OSPRAY_APPS_ENABLE_SCRIPTING OFF)
ENDIF()

IF(OSPRAY_APPS_ENABLE_SCRIPTING)
ADD_DEFINITIONS(-DOSPRAY_APPS_ENABLE_SCRIPTING)
INCLUDE_DIRECTORIES(common/script/chaiscript)
ADD_SUBDIRECTORY(common/script)
ENDIF()

# include glut and widgets only when needed
# needs to be before the first application, such that the GLUT include path is known
# XXX if the defaults change, include could be missing on the first run of CMake
IF(OSPRAY_APPS_MODELVIEWER OR
OSPRAY_APPS_STREAMLINEVIEWER OR
OSPRAY_APPS_PARTICLEVIEWER)
# GLUT is used by apps as well
# mini-scene graph viewer implemented with GLUT
OPTION(OSPRAY_APPS_GLUTVIEWER "Build ospGlutViewer application." ON)

IF(OSPRAY_APPS_GLUTVIEWER)
INCLUDE(${PROJECT_SOURCE_DIR}/cmake/glut.cmake)
# common utility classes for GLUT-based 3D viewer widget
ADD_SUBDIRECTORY(common/widgets)
ADD_SUBDIRECTORY(glutViewer)
ENDIF()

IF (OSPRAY_APPS_MODELVIEWER)
ADD_SUBDIRECTORY(modelViewer)
ENDIF()

IF(NOT WIN32)
# NOTE(jda) - Disable Qt based viewers when on OS X using ICC due to
# unresolved issues
# qt-based viewer for geometry (and soon volumes)
Expand All @@ -51,25 +74,11 @@ IF(NOT THIS_IS_MIC)
ENDIF()
ENDIF()

# stream line viewer for NASA Stream Line Demo
OPTION(OSPRAY_APPS_STREAMLINEVIEWER "Build ospStreamLineViewer application." OFF)
MARK_AS_ADVANCED(OSPRAY_APPS_STREAMLINEVIEWER)
IF(OSPRAY_APPS_STREAMLINEVIEWER)
ADD_SUBDIRECTORY(streamLineViewer)
ENDIF()

# xyz atom model viewer (one sphere per atom)
OPTION(OSPRAY_APPS_PARTICLEVIEWER "Build ospParticleViewer application." OFF)
IF(OSPRAY_APPS_PARTICLEVIEWER)
ADD_SUBDIRECTORY(particleViewer)
ENDIF()

# volume viewer application
IF(NOT (APPLE AND (${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")))
OPTION(OSPRAY_APPS_VOLUMEVIEWER "Build ospVolumeViewer application." ON)
IF(OSPRAY_APPS_VOLUMEVIEWER)
ADD_SUBDIRECTORY(volumeViewer)
ENDIF()
ENDIF()
ENDIF(NOT WIN32)
ENDIF()
Loading

0 comments on commit 2f53826

Please sign in to comment.