Skip to content

Commit

Permalink
Merge branch 'release-1.1.x'
Browse files Browse the repository at this point in the history
  • Loading branch information
jeffamstutz committed Oct 4, 2016
2 parents 2f53826 + 1fe3a45 commit 143e649
Show file tree
Hide file tree
Showing 310 changed files with 5,813 additions and 6,324 deletions.
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@
*#
bin
*.user*
build
build_release
build*
*.sw?
tags
.ycm_extra_conf.pyc
Expand All @@ -16,3 +15,4 @@ tbb
embree
ispc
ospray-doc
modules
55 changes: 38 additions & 17 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,18 @@ build-centos6-gcc:
- gcc
- build

build-centos6-icc:
type: build
script:
- module load intel
- export CC=icc
- export CXX=icpc
- scripts/build_gitlab/linux.sh
tags:
- centos6
- icc
- build

build-centos7-gcc:
type: build
script:
Expand All @@ -22,33 +34,42 @@ build-centos7-gcc:
- gcc
- build

build-fedora-gcc:
build-arch-gcc:
type: build
script:
- scripts/build_gitlab/linux.sh
tags:
- fedora
- arch
- gcc
- build

build-ubuntu-gcc:
build-ubuntu1604-gcc:
type: build
script:
- scripts/build_gitlab/linux.sh
tags:
- ubuntu
- ubuntu1604
- gcc
- build

#build-ubuntu-clang:
# type: build
# script:
# - export CC=clang
# - export CXX=clang++
# - scripts/build_gitlab/linux.sh
# tags:
# - ubuntu
# - clang
build-ubuntu1604-clang:
type: build
script:
- export CC=clang
- export CXX=clang++
- scripts/build_gitlab/linux.sh
tags:
- ubuntu1604
- clang

build-ubuntu1404-gcc:
type: build
script:
- scripts/build_gitlab/linux.sh
tags:
- ubuntu1404
- gcc
- build

build-sles-gcc:
type: build
Expand Down Expand Up @@ -89,7 +110,7 @@ build-windows-msvc14:
build-windows-icc:
type: build
script:
- call scripts\build_gitlab\win.bat "Visual Studio 12 2013 Win64" "Intel C++ Compiler 16.0"
- call scripts\build_gitlab\win.bat "Visual Studio 12 2013 Win64" "Intel C++ Compiler 17.0"
tags:
- icc
- build
Expand Down Expand Up @@ -133,7 +154,7 @@ release-linux-icc:
only:
- devel
- master
- release-1.0
- release-1.1.x
artifacts:
paths:
- build_release/*.gz
Expand All @@ -151,7 +172,7 @@ release-osx-clang:
only:
- devel
- master
- release-1.0
- release-1.1.x
artifacts:
paths:
- build_release/*.gz
Expand All @@ -168,7 +189,7 @@ release-windows:
only:
- devel
- master
- release-1.0
- release-1.1.x
artifacts:
paths:
- build_release\ospray*.zip
Expand Down
57 changes: 52 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,53 @@
Version History
---------------

### Changes in v1.1.0:

- New "scivis" renderer features
- Single sided lighting (enabled by default)
- Many new volume rendering specific features
- Adaptive sampling to help improve the correctness of
rendering high frequency volume data
- Pre-integration of transfer function for higher fidelity
images
- Ambient occlusion
- Volumes can cast shadows
- Smooth shading in volumes
- Single shading point option for accelerated shading
- Add preliminary support for adaptive accumulation in the MPI device
- Camera specific features
- Initial support for stereo rendering with the perspective camera
- Option `architectural` in perspective camera, rectifying
vertical edges to appear parallel
- Rendering a subsection of the full view with
`imageStart`/`imageEnd` supported by all cameras
- This will be our last release supporting the first generation Intel®
Xeon Phi™ coprocessor (codename Knights Corner)
- Future major and minor releases will be upgraded to the latest
version of Embree, which no longer supports Knights Corner
- Depending on user feedback, patch releases are still made to
fix bugs
- Enhanced output statistics in `ospBenchmark` application
- Many fixes to the OSPRay SDK
- Improved CMake detection of compile-time enabled features
- Now distribute OSPRay configuration and ISPC CMake macros
- Improved SDK support on Windows
- OSPRay library can now be compiled with `-Wall` and `-Wextra` enabled
- Tested with GCC v5.3.1 and Clang v3.8
- Sample applications and modules have not been fixed yet, thus
applications which build OSPRay as a CMake subproject should
disable them with `-DOSPRAY_ENABLE_APPS=OFF` and
`-DOSPRAY_ENABLE_MODULES=OFF`
- Minor bug fixes, improvements, and cleanups
- Regard shading normal when bump mapping
- Fix internal CMake naming inconsistencies in macros
- Fix missing API calls in C++ wrapper classes
- Fix crashes on MIC
- Fix thread count initialization bug with TBB
- CMake optimizations for faster configuration times
- Enhanced support for scripting in both `ospGlutViewer` and
`ospBenchmark` applications

### Changes in v1.0.0:

- New OSPRay 'SDK'
Expand All @@ -16,7 +63,7 @@ Version History
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
explicitly constructed
- C++ users are encouraged to use these over the `ospray.h`
API
- Complete rework of sample applications
Expand All @@ -33,13 +80,13 @@ Version History
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
- 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
- Updated Glass shader in the path tracer
- Many miscellaneous cleanups, bugfixes, and improvements

### Changes in v0.10.1:
Expand Down Expand Up @@ -78,7 +125,7 @@ Version History
- OSPRay can now use a newer, pre-installed Embree enabled by the new
`OSPRAY_USE_EXTERNAL_EMBREE` CMake option
- New `ospcommon` library used to separately provide math types and OS
abstractions for both OSPRay and sample apps
abstractions for both OSPRay and sample applications
- Removes extra dependencies on internal Embree math types and
utility functions
- `ospray.h` header is now C99 compatible
Expand Down Expand Up @@ -136,7 +183,7 @@ changes.
standard library versions (GCC v4.8.0)
- Optimization of volume sampling resulting in volume rendering
speedups of up to 1.5x
- Updates to pathtracer
- Updates to path tracer
- Reworked material system
- Added texture transformations and colored transparency in OBJ
material
Expand Down
123 changes: 20 additions & 103 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,141 +29,58 @@ IF(POLICY CMP0054)
ENDIF()

SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake)
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)
SET(CMAKE_CONFIGURATION_TYPES "${CONFIGURATION_TYPES}"
CACHE STRING "List of generated configurations." FORCE)
SET(OSPRAY_DEFAULT_CMAKE_CONFIGURATION_TYPES_SET ON
CACHE INTERNAL "Default CMake configuration types set.")
ENDIF()
ELSE()
IF(NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the build type." FORCE)
SET_PROPERTY(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CONFIGURATION_TYPES})
ENDIF()
ENDIF()

SET(OSPRAY_BINARY_DIR ${PROJECT_BINARY_DIR})
SET(LIBRARY_OUTPUT_PATH ${OSPRAY_BINARY_DIR})
SET(EXECUTABLE_OUTPUT_PATH ${OSPRAY_BINARY_DIR})

##############################################################
# CMake modules and macro files
##############################################################

INCLUDE(cmake/ospray.cmake)
INCLUDE(cmake/ispc.cmake)
INCLUDE(cmake/mpi.cmake)
INCLUDE(ospray_macros)
INCLUDE(ospray_options)
INCLUDE(ispc)
INCLUDE(mpi)

IF(NOT WIN32)
INCLUDE(cmake/doxygen.cmake)
ENDIF()

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

OPTION(OSPRAY_USE_EXTERNAL_EMBREE
"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)

IF (WIN32)
SET(OSPRAY_BUILD_MIC_SUPPORT OFF CACHE INTERNAL
"OSPRay with KNC not supported on Windows.")
ELSE()
OPTION(OSPRAY_BUILD_MIC_SUPPORT "Build OSPRay with KNC Support?")
IF (OSPRAY_BUILD_MIC_SUPPORT AND NOT OSPRAY_COMPILER_ICC)
MESSAGE(FATAL_ERROR "MIC support requires the Intel Compiler.")
ENDIF()
ENDIF()

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

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
##############################################################

CONFIGURE_OSPRAY()

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

##############################################################
# the OSPRay library
##############################################################

SET(OSPRAY_TARGET "intel64")
ADD_SUBDIRECTORY(ospray builddir/ospray/intel64)
IF (OSPRAY_MIC)
SET(OSPRAY_TARGET "mic")
ADD_SUBDIRECTORY(ospray builddir/ospray/mic)
ENDIF()
OSPRAY_ADD_SUBDIRECTORY(ospray)

##############################################################
# OSPRay modules
##############################################################

SET(OSPRAY_TARGET "intel64")
ADD_SUBDIRECTORY(modules builddir/modules/intel64)
IF (OSPRAY_MIC)
SET(OSPRAY_TARGET "mic")
ADD_SUBDIRECTORY(modules builddir/modules/mic)
OPTION(OSPRAY_ENABLE_MODULES "Enable the 'modules' subtree in the build." ON)
MARK_AS_ADVANCED(OSPRAY_ENABLE_MODULES)

IF (OSPRAY_ENABLE_MODULES)
OSPRAY_ADD_SUBDIRECTORY(modules)
ENDIF()

##############################################################
# OSPRay sample apps; at the end: they may need modules
##############################################################

SET(OSPRAY_TARGET "intel64")
ADD_SUBDIRECTORY(apps builddir/apps/intel64)
IF (OSPRAY_MIC)
SET(OSPRAY_TARGET "mic")
ADD_SUBDIRECTORY(apps builddir/apps/mic)
OPTION(OSPRAY_ENABLE_APPS "Enable the 'apps' subtree in the build." ON)
MARK_AS_ADVANCED(OSPRAY_ENABLE_APPS)

IF (OSPRAY_ENABLE_APPS)
# NOTE(jda) - Don't use OSPRAY_ADD_SUBDIRECTORY() macro as we don't have any
# KNC code in the apps subdirectory to compile.
ADD_SUBDIRECTORY(apps)
ENDIF()

# create a configure file that both ospray and ispc can read the cmake config from
# needs to be at the end, after all cache variables have been set
# create a configure file that both ospray and ispc can read the cmake config
# from needs to be at the end, after all cache variables have been set
CONFIGURE_FILE(ospray/common/OSPConfig.h.in OSPConfig.h)
INSTALL(FILES ${CMAKE_BINARY_DIR}/OSPConfig.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ospray
Expand Down
Loading

0 comments on commit 143e649

Please sign in to comment.