From 6b4edb498022caa132e4987fc80fd0ca78828262 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=BCnther?= Date: Fri, 10 Apr 2020 14:16:39 +0200 Subject: [PATCH 01/27] WIP hotfix for Windows release package specific VKL driver missing --- cmake/ospray_redistribute_deps.cmake | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cmake/ospray_redistribute_deps.cmake b/cmake/ospray_redistribute_deps.cmake index e571c08daa..849f0dd691 100644 --- a/cmake/ospray_redistribute_deps.cmake +++ b/cmake/ospray_redistribute_deps.cmake @@ -74,6 +74,9 @@ endmacro() ospray_add_dependent_lib(ospcommon::ospcommon) ospray_add_dependent_lib(openvkl::openvkl) ospray_add_dependent_lib(openvkl::openvkl_module_ispc_driver) +ospray_add_dependent_lib(openvkl::openvkl_module_ispc_driver_4) +ospray_add_dependent_lib(openvkl::openvkl_module_ispc_driver_8) +ospray_add_dependent_lib(openvkl::openvkl_module_ispc_driver_16) if (OSPRAY_MODULE_DENOISER) ospray_add_dependent_lib(OpenImageDenoise) endif() From b00f9b6b6b86742d747462a0136dc16b19302e27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=BCnther?= Date: Wed, 22 Apr 2020 18:53:09 +0200 Subject: [PATCH 02/27] Prune prerequisites (no RPM anymore) --- doc/getting_ospray.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/doc/getting_ospray.md b/doc/getting_ospray.md index 17579adf05..fb1c0d2b44 100644 --- a/doc/getting_ospray.md +++ b/doc/getting_ospray.md @@ -5,11 +5,9 @@ Prerequisites ------------- Your CPU must support at least SSE4.1 to run OSPRay. The TGZ/ZIP -packages contain most needed 3rd party dependencies, whereas for the -(much smaller) RPM/installer packages you need to have installed +packages contain most needed 3rd party dependencies. Additionally you +need -- Intel® [TBB](https://www.threadingbuildingblocks.org/) v3.0 or newer -- [Embree] ray tracing kernels v3.7.0 or newer - To run the example viewer: OpenGL - To use the distributed, multi-node rendering feature: Intel® [MPI Library](https://software.intel.com/en-us/intel-mpi-library/)) From 5c0ae550dc4b19f084d69a94b0d53bfbc4386fb0 Mon Sep 17 00:00:00 2001 From: Carson Brownlee Date: Fri, 17 Apr 2020 00:56:22 -0700 Subject: [PATCH 03/27] updating gallery and related projects - changing gallery to use grid layout with 300px thumbnails - removing images from related projects, adding blospray, rhino, and pconplanner --- doc/gallery.md | 209 +++++++++++++++++++++++++++------------- doc/related_projects.md | 36 ++++--- doc/stylesheet.css | 42 ++++++++ doc/teaser.html | 14 +-- 4 files changed, 212 insertions(+), 89 deletions(-) diff --git a/doc/gallery.md b/doc/gallery.md index 674b8d0a48..79c85d9787 100644 --- a/doc/gallery.md +++ b/doc/gallery.md @@ -6,108 +6,183 @@ with OSPRay. If *you* have created any notable images through OSPRay and would like to share them on this page, please [send us an email](mailto:ospray@googlegroups.com). + diff --git a/doc/related_projects.md b/doc/related_projects.md index 3fd60c94d5..37a473069d 100644 --- a/doc/related_projects.md +++ b/doc/related_projects.md @@ -58,6 +58,8 @@ particles interactively. VESTEC ------ +[![VESTEC](images/VESTEC-Logo-web.png){style="display:inline"}](https://vestec-project.eu/) + [VESTEC](https://vestec-project.eu/) – Visual Exploration and Sampling Toolkit for Extreme Computing – is an European funded project that builds a flexible toolchain to combine multiple data sources, From d630955ccb1c6dec89ce22cbff76987873c7b088 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=BCnther?= Date: Thu, 23 Apr 2020 14:28:07 +0200 Subject: [PATCH 07/27] Remove images only for website --- doc/Makefile | 3 +-- doc/ospray-doc | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/doc/Makefile b/doc/Makefile index 9ec378ef8a..b21f64ec93 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -7,12 +7,11 @@ images_jpg := $(addprefix images/, $(addsuffix .jpg, exampleViewer $(addprefix c images_png := $(addprefix images/, $(addsuffix .png, diffuse_rooms normalmap_frustum tutorial_accumulatedframe tutorial_firstframe ospExamples renderSunSky)) images_fig := spot_light spot_coords quad_light hdri_light images_svg := gitter_badge structured_spherical_coords -images_webonly := $(addprefix images/, VESTEC-Logo-web.png $(addsuffix .jpg, stingray $(addprefix teaser_, clouds cosmos hdospray materials moana rm tapestry))) images_fig2pdf := $(addprefix tmp/, $(addsuffix .pdf, $(images_fig))) images_svg2pdf := $(addprefix tmp/, $(addsuffix .pdf, $(images_svg))) images_fig2png := $(addprefix images/, $(addsuffix .png, $(images_fig))) -webimages := $(addprefix www/, $(images_webonly) $(images_jpg) $(images_png) $(images_fig2png) $(addprefix images/, $(addsuffix .svg, $(images_svg)))) +webimages := $(addprefix www/, $(images_jpg) $(images_png) $(images_fig2png) $(addprefix images/, $(addsuffix .svg, $(images_svg)))) pdfimages := $(images_jpg) $(images_png) $(images_fig2pdf) $(images_fig2svg) PANDOC := pandoc diff --git a/doc/ospray-doc b/doc/ospray-doc index 60323a166b..e43ffaf016 160000 --- a/doc/ospray-doc +++ b/doc/ospray-doc @@ -1 +1 @@ -Subproject commit 60323a166bcce0a9b298608209b8b94deaaa329c +Subproject commit e43ffaf016a8c4c1ef7768d41718f4cff30715b3 From 504238daf7daf6185caf0f987d45d7fe0256a03f Mon Sep 17 00:00:00 2001 From: Will Usher Date: Thu, 23 Apr 2020 21:28:52 -0600 Subject: [PATCH 08/27] fix type in doc --- README.md | 2 +- doc/api.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b7f4da448d..fa9c10e2e9 100644 --- a/README.md +++ b/README.md @@ -943,7 +943,7 @@ Note that cell widths are defined *per refinement level*, not per block. | | | | `OSP_AMR_FINEST` | | | | | `OSP_AMR_OCTANT` | | float\[\] | cellWidth | NULL| array of each level’s cell width | -| box3f\[\] | block.bounds | NULL| [data](#data) array of bounds for each AMR block | +| box3i\[\] | block.bounds | NULL| [data](#data) array of grid sizes (in voxels) for each AMR block | | int\[\] | block.level | NULL| array of each block’s refinement level | | OSPData\[\] | block.data | NULL| [data](#data) array of OSPData containing the actual scalar voxel data | | vec3f | gridOrigin | $(0, 0, 0)$| origin of the grid in world-space | diff --git a/doc/api.md b/doc/api.md index d62d1f9909..b0fa0f626c 100644 --- a/doc/api.md +++ b/doc/api.md @@ -597,8 +597,8 @@ Note that cell widths are defined _per refinement level_, not per block. float[] cellWidth NULL array of each level's cell width - box3f[] block.bounds NULL [data] array of bounds for each AMR - block + box3i[] block.bounds NULL [data] array of grid sizes (in voxels) + for each AMR block int[] block.level NULL array of each block's refinement level From aeb5a059c0017cdeb37a1123a1c2b49dcf72a113 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=BCnther?= Date: Wed, 22 Apr 2020 13:38:33 +0200 Subject: [PATCH 09/27] Bump version --- cmake/ospray_version.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/ospray_version.cmake b/cmake/ospray_version.cmake index 0a82dbb4a3..74f0f5fccc 100644 --- a/cmake/ospray_version.cmake +++ b/cmake/ospray_version.cmake @@ -3,7 +3,7 @@ set(OSPRAY_VERSION_MAJOR 2) set(OSPRAY_VERSION_MINOR 1) -set(OSPRAY_VERSION_PATCH 0) +set(OSPRAY_VERSION_PATCH 1) set(OSPRAY_SOVERSION 2) set(OSPRAY_VERSION_GITHASH 0) set(OSPRAY_VERSION_NOTE "") From 0703eafedd3b735327fc71462710f547b25e7e9e Mon Sep 17 00:00:00 2001 From: Bruce Cherniak Date: Mon, 20 Apr 2020 18:01:59 -0500 Subject: [PATCH 10/27] CarPaint was not obeying coat weight in creating layer --- ospray/render/pathtracer/materials/CarPaint.ispc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ospray/render/pathtracer/materials/CarPaint.ispc b/ospray/render/pathtracer/materials/CarPaint.ispc index 8221b870f4..59f5c04cfe 100644 --- a/ospray/render/pathtracer/materials/CarPaint.ispc +++ b/ospray/render/pathtracer/materials/CarPaint.ispc @@ -1,4 +1,4 @@ -// Copyright 2009-2019 Intel Corporation +// Copyright 2009-2020 Intel Corporation // SPDX-License-Identifier: Apache-2.0 #include "../bsdfs/Conductor.ih" @@ -185,7 +185,7 @@ const varying BSDF *varying CarPaint_getBSDF( rcp(coatIor), coatFinalColor, coatThickness, - 1.f); + coat); } else { bsdf = MicrofacetDielectricLayer_create(ctx, coatFrame, @@ -195,7 +195,7 @@ const varying BSDF *varying CarPaint_getBSDF( coatThickness, coatRoughness, 0.f, - 1.f); + coat); } } } From 0a6be7796477d604a55faced3b6322255909ad48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=BCnther?= Date: Wed, 22 Apr 2020 13:41:55 +0200 Subject: [PATCH 11/27] Changelog entry --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fffdeaf6e7..b03830db37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ Version History --------------- +### Changes in v2.1.1: + +- CarPaint obeys `coat` weight parameter + ### Changes in v2.1.0: - New clipping geometries feature that allows clipping any scene From d74fca43af8c5d224667fbe8c5526635691e8b3a Mon Sep 17 00:00:00 2001 From: Miroslaw Pawlowski Date: Thu, 23 Apr 2020 16:00:16 +0200 Subject: [PATCH 12/27] used OGL 32-bit float texture for OSPRay framebuffer --- apps/ospExamples/GLFWOSPRayWindow.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/apps/ospExamples/GLFWOSPRayWindow.cpp b/apps/ospExamples/GLFWOSPRayWindow.cpp index c83097b2f9..9952d3f60f 100644 --- a/apps/ospExamples/GLFWOSPRayWindow.cpp +++ b/apps/ospExamples/GLFWOSPRayWindow.cpp @@ -15,12 +15,15 @@ #ifndef GL_CLAMP_TO_BORDER #define GL_CLAMP_TO_BORDER 0x812D #endif -#ifndef GL_SRGB_ALPHA -#define GL_SRGB_ALPHA 0x8C42 -#endif #ifndef GL_FRAMEBUFFER_SRGB #define GL_FRAMEBUFFER_SRGB 0x8DB9 #endif +#ifndef GL_RGBA32F +#define GL_RGBA32F 0x8814 +#endif +#ifndef GL_RGB32F +#define GL_RGB32F 0x8815 +#endif static bool g_quitNextFrame = false; @@ -311,15 +314,14 @@ void GLFWOSPRayWindow::display() auto *fb = framebuffer.map(showAlbedo ? OSP_FB_ALBEDO : OSP_FB_COLOR); - const GLint glFormat = showAlbedo ? GL_RGB : GL_RGBA; glBindTexture(GL_TEXTURE_2D, framebufferTexture); glTexImage2D(GL_TEXTURE_2D, 0, - glFormat, + showAlbedo ? GL_RGB32F : GL_RGBA32F, windowSize.x, windowSize.y, 0, - glFormat, + showAlbedo ? GL_RGB : GL_RGBA, GL_FLOAT, fb); From 2c9c38c31a86cb7ff7ef68a1ded90a2f8747f27e Mon Sep 17 00:00:00 2001 From: Carson Date: Tue, 5 May 2020 09:10:34 +0000 Subject: [PATCH 13/27] fix bug coloring multiple isovalues --- ospray/geometry/Isosurfaces.ispc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ospray/geometry/Isosurfaces.ispc b/ospray/geometry/Isosurfaces.ispc index 249517358c..a4fa97af69 100644 --- a/ospray/geometry/Isosurfaces.ispc +++ b/ospray/geometry/Isosurfaces.ispc @@ -58,12 +58,17 @@ void Isosurfaces_intersect_kernel( bool gotHit = vklIterateHitV(&iterator, &hit); if (gotHit) { + int primID = 0; + for (primID = 0; primID < self->super.numPrimitives; primID++) { + if (hit.sample == self->isovalues[primID]) + break; + } if (isOcclusionTest) { ray->t = neg_inf; } else { ray->instID = args->context->instID[0]; ray->geomID = args->geomID; - ray->primID = 0; // ??? which primID? + ray->primID = primID; ray->t = hit.t; ray->u = 1e-3; // ??? which epsilon? // transport epsilon to postIntersect From 96a5c6071e6f6635be50a1f21da80dc9c417de3c Mon Sep 17 00:00:00 2001 From: Carson Brownlee Date: Mon, 4 May 2020 23:36:13 -0700 Subject: [PATCH 14/27] fixing correct depth values into depth buffer --- CHANGELOG.md | 1 + ospray/render/scivis/SciVis.ispc | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b03830db37..f7cb4ed3da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ Version History ### Changes in v2.1.1: - CarPaint obeys `coat` weight parameter +- Correct depth buffer values with SciVis renderer ### Changes in v2.1.0: diff --git a/ospray/render/scivis/SciVis.ispc b/ospray/render/scivis/SciVis.ispc index 75be241e51..06595e623d 100644 --- a/ospray/render/scivis/SciVis.ispc +++ b/ospray/render/scivis/SciVis.ispc @@ -70,16 +70,16 @@ void SciVis_renderSample(Renderer *uniform _self, // Use shaded color for blending blendedColor = surfaceShading.shadedColor; - // Prepare ray for next loop iteration, - // start from the last geometry hit all over to initial Tfar - setRay(ray, ray.t + dg.epsilon, originalRayTFar); - // Initialize other per sample data with first hit values if (firstHit) { sample.z = ray.t; sample.albedo = surfaceShading.albedo; sample.normal = dg.Ns; } + + // Prepare ray for next loop iteration, + // start from the last geometry hit all over to initial Tfar + setRay(ray, ray.t + dg.epsilon, originalRayTFar); } else { blendedColor = Renderer_getBackground(&self->super, sample.pos); // Initialize other per sample data with first hit values From 37bb29fdbd47edb71380ad18a387d119332f1d47 Mon Sep 17 00:00:00 2001 From: Carson Brownlee Date: Mon, 11 May 2020 15:35:22 -0700 Subject: [PATCH 15/27] adding stellar video link --- doc/gallery.md | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/doc/gallery.md b/doc/gallery.md index 1674fd3e66..d02dd5461f 100644 --- a/doc/gallery.md +++ b/doc/gallery.md @@ -18,7 +18,8 @@ Real-time screen capture of OSPRay rendering the moana island scene.
[![DKRZ](gallery/thumbnails/dkrz_video-thumb.jpg)](https://youtu.be/aNz22XzjIV0 "DKRZ")
-Path traced volumetric rendering of clouds in a climate simulation, courtesy DKRZ Niklas Rober. +Path traced volumetric rendering of clouds in a climate simulation, +courtesy DKRZ Niklas Rober.
@@ -32,30 +33,45 @@ Real-time screen capture of the "osprey" Rhino plugin by Darby Johnston.
[![Cosmos Video](gallery/thumbnails/cosmos_video-thumb.jpg)](https://vimeo.com/237987637 "Cosmos Video")
-AMR Volume rendering of a simulation of two black holes colliding using GRChombo in reference to a LIGO event. Simulation was conducted by -[the Centre for Theoretical Cosmology (CTC)](http://www.ctc.cam.ac.uk/). Images were -rendered in ParaView by directly sampling the AMR structure using OSPRay. +AMR Volume rendering of a simulation of two black holes colliding using +GRChombo in reference to a LIGO event. Simulation was conducted by [the +Centre for Theoretical Cosmology (CTC)](http://www.ctc.cam.ac.uk/). +Images were rendered in ParaView by directly sampling the AMR structure +using OSPRay.
[![NASA Parachute Video](gallery/thumbnails/nasa_parachute_video-thumb.jpg)](https://vimeo.com/237987416 "NASA Parachute Video")
-Parachute Simulation rendered using OSPRay by Tim Sandstrom of NASA Ames. +Parachute Simulation rendered using OSPRay by Tim Sandstrom of NASA +Ames.
[![NASA Booster Video](gallery/thumbnails/nasa_booster_video-thumb.jpg)](https://youtu.be/96U4d1wk23U "NASA Booster Video")
-Booster Simulation rendered using OSPRay by Tim Sandstrom and Patrick Moran of NASA Ames. +Booster Simulation rendered using OSPRay by Tim Sandstrom and Patrick +Moran of NASA Ames. +
+
+ +
+[![Stellar Radiation Video](gallery/thumbnails/stellar_video-thumb.jpg)](https://vimeo.com/417360212 "Stellar Radiation Video") +
+Stellar Radation. Visualization by Greg P. Johnson, Intel, and Joseph +Insley, Argonne National Lab, using OSPRay. Simulation provided by the +University of California, Santa Barbara (team leads Yan-Fei Jiang and +Lars Bildsten).
[![](gallery/thumbnails/bentley-thumb.jpg)](gallery/bentley.jpg)
-Photorealistic rendering of a Bentley virtual showroom using OSPRay's path tracer. +Photorealistic rendering of a Bentley virtual showroom using OSPRay's +path tracer.
From d399b5547f8851b77e8c02615cb6edf69a5aab67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=BCnther?= Date: Fri, 15 May 2020 08:50:30 +0200 Subject: [PATCH 16/27] Use concrete MPI version --- scripts/superbuild/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/superbuild/CMakeLists.txt b/scripts/superbuild/CMakeLists.txt index 1a72b467fa..958928e8ff 100644 --- a/scripts/superbuild/CMakeLists.txt +++ b/scripts/superbuild/CMakeLists.txt @@ -69,7 +69,7 @@ option(BUILD_OSPRAY_CI_TESTS "Enable OSPRay's tests." OFF) option(BUILD_OSPRAY_CI_EXTRAS "Enable OSPRay's extra compiler checks." OFF) option(BUILD_OSPRAY_MODULE_MPI "Enable fetch/build of module_mpi" OFF) -set(BUILD_OSPRAY_MODULE_MPI_VERSION "devel" CACHE STRING "What version of module_mpi?") +set(BUILD_OSPRAY_MODULE_MPI_VERSION "v2.1.0" CACHE STRING "What version of module_mpi?") option(INSTALL_IN_SEPARATE_DIRECTORIES "Install libraries into their own directories under CMAKE_INSTALL_PREFIX" From e5504d8eb96b12148647a7e0c866729ba06b0d04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=BCnther?= Date: Mon, 11 May 2020 15:14:37 +0200 Subject: [PATCH 17/27] Fix for Embree v3.10 --- CHANGELOG.md | 1 + .../ospray_cmake_config/osprayConfig.cmake.in | 3 +- cmake/ospray_macros.cmake | 50 +++++++++---------- cmake/ospray_options.cmake | 1 - 4 files changed, 25 insertions(+), 30 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7cb4ed3da..44bb66fc18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ Version History - CarPaint obeys `coat` weight parameter - Correct depth buffer values with SciVis renderer +- Adaptions to Embree v3.10.0 ### Changes in v2.1.0: diff --git a/cmake/ospray_cmake_config/osprayConfig.cmake.in b/cmake/ospray_cmake_config/osprayConfig.cmake.in index 9c0f141843..1aa920d7d5 100644 --- a/cmake/ospray_cmake_config/osprayConfig.cmake.in +++ b/cmake/ospray_cmake_config/osprayConfig.cmake.in @@ -1,4 +1,4 @@ -## Copyright 2009-2019 Intel Corporation +## Copyright 2009-2020 Intel Corporation ## SPDX-License-Identifier: Apache-2.0 # Called if we failed to find OSPRay or any of it's required dependencies, @@ -131,7 +131,6 @@ else() if (NOT TARGET embree) ospray_find_embree(${EMBREE_VERSION_REQUIRED}) ospray_verify_embree_features() - ospray_create_embree_target() endif() if (NOT TARGET ospcommon::ospcommon) diff --git a/cmake/ospray_macros.cmake b/cmake/ospray_macros.cmake index 8fb45929b8..c3a9ea5489 100644 --- a/cmake/ospray_macros.cmake +++ b/cmake/ospray_macros.cmake @@ -331,35 +331,32 @@ function(ospray_verify_embree_features) ospray_check_embree_feature(BACKFACE_CULLING "backface culling" OFF) endfunction() -macro(ospray_create_embree_target) - if (NOT TARGET embree) - add_library(embree INTERFACE) # NOTE(jda) - Cannot be IMPORTED due to CMake - # issues found on Ubuntu. - - target_include_directories(embree - INTERFACE - $ - ) - - target_link_libraries(embree - INTERFACE - $ - ) - endif() -endmacro() - macro(ospray_find_embree EMBREE_VERSION_REQUIRED) find_dependency(embree ${EMBREE_VERSION_REQUIRED}) - if(NOT DEFINED EMBREE_INCLUDE_DIRS) + if (NOT embree_FOUND) message(FATAL_ERROR "We did not find Embree installed on your system. OSPRay requires" " an Embree installation >= v${EMBREE_VERSION_REQUIRED}, please" " download and extract Embree (or compile Embree from source), then" " set the 'embree_DIR' variable to the installation (or build)" " directory.") + endif() + if (TARGET embree) + get_target_property(EMBREE_INCLUDE_DIRS embree + INTERFACE_INCLUDE_DIRECTORIES) + get_target_property(CONFIGURATIONS embree IMPORTED_CONFIGURATIONS) + list(GET CONFIGURATIONS 0 CONFIGURATION) + get_target_property(EMBREE_LIBRARY embree + IMPORTED_LOCATION_${CONFIGURATION}) else() - message(STATUS "Found Embree v${EMBREE_VERSION}: ${EMBREE_LIBRARY}") + add_library(embree INTERFACE) # NOTE(jda) - Cannot be IMPORTED due to CMake + # issues found on Ubuntu. + target_include_directories(embree + INTERFACE $) + target_link_libraries(embree + INTERFACE $) endif() + message(STATUS "Found Embree v${embree_VERSION}: ${EMBREE_LIBRARY}") endmacro() macro(ospray_determine_embree_isa_support) @@ -427,13 +424,12 @@ macro(ospray_find_openvkl OPENVKL_VERSION_REQUIRED) " an Open VKL installation >= v${OPENVKL_VERSION_REQUIRED}, please" " download and extract Open VKL (or compile from source), then" " set the 'openvkl_DIR' variable to the installation directory.") - else() - get_target_property(OPENVKL_INCLUDE_DIRS openvkl::openvkl - INTERFACE_INCLUDE_DIRECTORIES) - get_target_property(CONFIGURATIONS openvkl::openvkl IMPORTED_CONFIGURATIONS) - list(GET CONFIGURATIONS 0 CONFIGURATION) - get_target_property(OPENVKL_LIBRARY openvkl::openvkl - IMPORTED_LOCATION_${CONFIGURATION}) - message(STATUS "Found Open VKL: ${OPENVKL_LIBRARY}") endif() + get_target_property(OPENVKL_INCLUDE_DIRS openvkl::openvkl + INTERFACE_INCLUDE_DIRECTORIES) + get_target_property(CONFIGURATIONS openvkl::openvkl IMPORTED_CONFIGURATIONS) + list(GET CONFIGURATIONS 0 CONFIGURATION) + get_target_property(OPENVKL_LIBRARY openvkl::openvkl + IMPORTED_LOCATION_${CONFIGURATION}) + message(STATUS "Found Open VKL v${openvkl_VERSION}: ${OPENVKL_LIBRARY}") endmacro() diff --git a/cmake/ospray_options.cmake b/cmake/ospray_options.cmake index 0146b8ddfa..7ab9642e72 100644 --- a/cmake/ospray_options.cmake +++ b/cmake/ospray_options.cmake @@ -32,7 +32,6 @@ find_package(ospcommon ${OSPCOMMON_VERSION_REQUIRED} REQUIRED) ospray_find_embree(${EMBREE_VERSION_REQUIRED}) ospray_verify_embree_features() ospray_determine_embree_isa_support() -ospray_create_embree_target() # Open VKL ospray_find_openvkl(${OPENVKL_VERSION_REQUIRED}) From f9dc7ee39115504d7e27a1ec6cd9abd47c260df7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=BCnther?= Date: Mon, 11 May 2020 15:36:01 +0200 Subject: [PATCH 18/27] Guard install of (optional) libs More robust fix for 6b4edb49 --- cmake/ospray_redistribute_deps.cmake | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/cmake/ospray_redistribute_deps.cmake b/cmake/ospray_redistribute_deps.cmake index 849f0dd691..9e368cf089 100644 --- a/cmake/ospray_redistribute_deps.cmake +++ b/cmake/ospray_redistribute_deps.cmake @@ -1,4 +1,4 @@ -## Copyright 2009-2019 Intel Corporation +## Copyright 2009-2020 Intel Corporation ## SPDX-License-Identifier: Apache-2.0 macro(ospray_install_namelink NAME TARGET_NAME) @@ -65,10 +65,14 @@ if (OSPCOMMON_TASKING_TBB) endif() macro(ospray_add_dependent_lib TARGET_NAME) - get_target_property(CONFIGURATIONS ${TARGET_NAME} IMPORTED_CONFIGURATIONS) - list(GET CONFIGURATIONS 0 CONFIGURATION) - get_target_property(LIBRARY ${TARGET_NAME} IMPORTED_LOCATION_${CONFIGURATION}) - list(APPEND DEPENDENT_LIBS ${LIBRARY}) + if (TARGET ${TARGET_NAME}) + get_target_property(CONFIGURATIONS ${TARGET_NAME} IMPORTED_CONFIGURATIONS) + list(GET CONFIGURATIONS 0 CONFIGURATION) + get_target_property(LIBRARY ${TARGET_NAME} IMPORTED_LOCATION_${CONFIGURATION}) + list(APPEND DEPENDENT_LIBS ${LIBRARY}) + else() + message(STATUS "Skipping target '${TARGET_NAME}") + endif() endmacro() ospray_add_dependent_lib(ospcommon::ospcommon) @@ -95,6 +99,7 @@ if (WIN32) install(PROGRAMS ${DEPENDENT_LIBS} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT redist) else() + # TODO use ospray_add_dependent_lib(embree) when v3.10 (with targets) is minimum list(APPEND DEPENDENT_LIBS ${EMBREE_LIBRARY}) install(PROGRAMS ${DEPENDENT_LIBS} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT redist) From 3c8b0d0015b5b4cd8a17398e77398d685474fbfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=BCnther?= Date: Mon, 11 May 2020 15:46:15 +0200 Subject: [PATCH 19/27] Install MSVC runtime --- cmake/ospray_redistribute_deps.cmake | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/cmake/ospray_redistribute_deps.cmake b/cmake/ospray_redistribute_deps.cmake index 9e368cf089..f71ae0080b 100644 --- a/cmake/ospray_redistribute_deps.cmake +++ b/cmake/ospray_redistribute_deps.cmake @@ -108,3 +108,13 @@ else() ospray_install_namelink(embree ${EMBREE_LIBNAME}) endif() endif() + +# Install MSVC runtime +if (WIN32) + set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE) + include(InstallRequiredSystemLibraries) + list(FILTER CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS INCLUDE REGEX + ".*msvcp[0-9]+\.dll|.*vcruntime[0-9]+\.dll|.*vcruntime[0-9]+_[0-9]+\.dll") + install(FILES ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} + DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT redist) +endif() From c6b4549a581392b2c70976013aa5d61cd2ee7557 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=BCnther?= Date: Mon, 11 May 2020 15:51:00 +0200 Subject: [PATCH 20/27] Use Embree v3.10 in superbuild --- scripts/superbuild/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/superbuild/CMakeLists.txt b/scripts/superbuild/CMakeLists.txt index 958928e8ff..a91752d12b 100644 --- a/scripts/superbuild/CMakeLists.txt +++ b/scripts/superbuild/CMakeLists.txt @@ -53,7 +53,7 @@ set(BUILD_OSPCOMMON_VERSION "v1.3.0" CACHE STRING "Which version of ospcommon to option(DOWNLOAD_TBB "Download TBB or use the only found in the system environment?" ON) set(TBB_VERSION "2020.2" CACHE STRING "Which version of TBB to download?") -set(BUILD_EMBREE_VERSION "v3.9.0" CACHE STRING "Which version of Embree to build?") +set(BUILD_EMBREE_VERSION "v3.10.0" CACHE STRING "Which version of Embree to build?") option(BUILD_EMBREE_FROM_SOURCE "Build Embree or use pre-built version?" ON) set(BUILD_OPENVKL_VERSION "v0.9.0" CACHE STRING "Which version of OpenVKL to build?") From 24aec1c8619d10b3156c21e4e9e4058c90853b9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=BCnther?= Date: Wed, 13 May 2020 11:09:31 +0200 Subject: [PATCH 21/27] Package ospTestSuite as app --- apps/ospTestSuite/CMakeLists.txt | 2 +- cmake/package.cmake | 10 +--------- scripts/build_gitlab/linux.sh | 3 +-- scripts/build_gitlab/win.ps1 | 3 +-- scripts/superbuild/CMakeLists.txt | 1 - scripts/superbuild/build_ospray.cmake | 3 +-- 6 files changed, 5 insertions(+), 17 deletions(-) diff --git a/apps/ospTestSuite/CMakeLists.txt b/apps/ospTestSuite/CMakeLists.txt index adc96df923..bac23e4e2d 100644 --- a/apps/ospTestSuite/CMakeLists.txt +++ b/apps/ospTestSuite/CMakeLists.txt @@ -31,5 +31,5 @@ PRIVATE install(TARGETS ospTestSuite DESTINATION ${CMAKE_INSTALL_BINDIR} - COMPONENT test + COMPONENT apps ) diff --git a/cmake/package.cmake b/cmake/package.cmake index 966eab17df..fd76f24e38 100644 --- a/cmake/package.cmake +++ b/cmake/package.cmake @@ -85,19 +85,15 @@ set(CPACK_COMPONENT_DEVEL_DISPLAY_NAME "Development") set(CPACK_COMPONENT_DEVEL_DESCRIPTION "Header files for C and C++ required to develop applications with OSPRay.") set(CPACK_COMPONENT_APPS_DISPLAY_NAME "Applications") -set(CPACK_COMPONENT_APPS_DESCRIPTION "Example and viewer applications and tutorials demonstrating how to use OSPRay.") +set(CPACK_COMPONENT_APPS_DESCRIPTION "Example, viewer and test applications as well as tutorials demonstrating how to use OSPRay.") set(CPACK_COMPONENT_REDIST_DISPLAY_NAME "Redistributables") set(CPACK_COMPONENT_REDIST_DESCRIPTION "Dependencies of OSPRay (such as Embree, TBB, imgui) that may or may not be already installed on your system.") -set(CPACK_COMPONENT_TEST_DISPLAY_NAME "Test Suite") -set(CPACK_COMPONENT_TEST_DESCRIPTION "Tools for testing the correctness of various aspects of OSPRay.") - # dependencies between components set(CPACK_COMPONENT_DEVEL_DEPENDS lib) set(CPACK_COMPONENT_APPS_DEPENDS lib) set(CPACK_COMPONENT_LIB_REQUIRED ON) # always install the libs -set(CPACK_COMPONENT_TEST_DEPENDS lib) # point to readme and license files set(CPACK_RESOURCE_FILE_README ${PROJECT_SOURCE_DIR}/README.md) @@ -107,9 +103,6 @@ if (OSPRAY_ZIP_MODE) set(CPACK_MONOLITHIC_INSTALL ON) else() set(CPACK_COMPONENTS_ALL lib devel apps) - if (OSPRAY_ENABLE_TESTING) - list(APPEND CPACK_COMPONENTS_ALL test) - endif() endif() @@ -174,7 +167,6 @@ else() # Linux specific settings set(CPACK_RPM_lib_PACKAGE_REQUIRES ${OSPLIB_REQS}) set(CPACK_RPM_apps_PACKAGE_REQUIRES "ospray-lib >= ${OSPRAY_VERSION}") set(CPACK_RPM_devel_PACKAGE_REQUIRES "ospray-lib = ${OSPRAY_VERSION}, ispc >= ${ISPC_VERSION_REQUIRED}") - set(CPACK_RPM_test_PACKAGE_REQUIRES "ospray-lib = ${OSPRAY_VERSION}") endif() set(CPACK_RPM_PACKAGE_RELEASE 1) diff --git a/scripts/build_gitlab/linux.sh b/scripts/build_gitlab/linux.sh index b1982ea92c..a7bebff5f4 100755 --- a/scripts/build_gitlab/linux.sh +++ b/scripts/build_gitlab/linux.sh @@ -1,5 +1,5 @@ #!/bin/bash -## Copyright 2015-2019 Intel Corporation +## Copyright 2015-2020 Intel Corporation ## SPDX-License-Identifier: Apache-2.0 mkdir build @@ -12,7 +12,6 @@ cmake --version cmake -L \ -D CMAKE_INSTALL_LIBDIR=lib \ - -D BUILD_OSPRAY_CI_TESTS=ON \ -D BUILD_EMBREE_FROM_SOURCE=OFF \ -D INSTALL_IN_SEPARATE_DIRECTORIES=OFF \ "$@" \ diff --git a/scripts/build_gitlab/win.ps1 b/scripts/build_gitlab/win.ps1 index 857b690189..5053bd6a86 100755 --- a/scripts/build_gitlab/win.ps1 +++ b/scripts/build_gitlab/win.ps1 @@ -1,4 +1,4 @@ -## Copyright 2009-2019 Intel Corporation +## Copyright 2009-2020 Intel Corporation ## SPDX-License-Identifier: Apache-2.0 md build @@ -9,7 +9,6 @@ cmake --version cmake -L ` -G $args[0] ` -T $args[1] ` - -D BUILD_OSPRAY_CI_TESTS=ON ` -D BUILD_EMBREE_FROM_SOURCE=OFF ` -D BUILD_OIDN=ON ` -D INSTALL_IN_SEPARATE_DIRECTORIES=OFF ` diff --git a/scripts/superbuild/CMakeLists.txt b/scripts/superbuild/CMakeLists.txt index a91752d12b..6aaeec9170 100644 --- a/scripts/superbuild/CMakeLists.txt +++ b/scripts/superbuild/CMakeLists.txt @@ -65,7 +65,6 @@ option(BUILD_OIDN_FROM_SOURCE "Build OpenImageDenoise or use pre-built version?" option(BUILD_GLFW "Build glfw for OSPRay examples or use one in existing environment?" ON) option(BUILD_DEPENDENCIES_ONLY "Don't build OSPRay itself, only its dependencies" OFF) -option(BUILD_OSPRAY_CI_TESTS "Enable OSPRay's tests." OFF) option(BUILD_OSPRAY_CI_EXTRAS "Enable OSPRay's extra compiler checks." OFF) option(BUILD_OSPRAY_MODULE_MPI "Enable fetch/build of module_mpi" OFF) diff --git a/scripts/superbuild/build_ospray.cmake b/scripts/superbuild/build_ospray.cmake index 53281d3c53..b00d82b912 100644 --- a/scripts/superbuild/build_ospray.cmake +++ b/scripts/superbuild/build_ospray.cmake @@ -26,8 +26,7 @@ ExternalProject_Add(${COMPONENT_NAME} -DCMAKE_INSTALL_DOCDIR=${CMAKE_INSTALL_DOCDIR} -DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR} -DOSPRAY_BUILD_ISA=ALL - -DOSPRAY_ENABLE_TESTING=${BUILD_OSPRAY_CI_TESTS} - -DOSPRAY_MODULE_BILINEAR_PATCH=${BUILD_OSPRAY_CI_TESTS} + -DOSPRAY_MODULE_BILINEAR_PATCH=${BUILD_OSPRAY_CI_EXTRAS} -DOSPRAY_MODULE_DENOISER=${BUILD_OIDN} -DOSPRAY_STRICT_BUILD=${BUILD_OSPRAY_CI_EXTRAS} -DOSPRAY_WARN_AS_ERRORS=${BUILD_OSPRAY_CI_EXTRAS} From 7aa1a047ee0a46339affea8f119db6ff89a56458 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=BCnther?= Date: Wed, 13 May 2020 16:15:45 +0200 Subject: [PATCH 22/27] Use cpack for linux again --- .gitlab-ci.yml | 2 +- scripts/release/linux.sh | 63 +++++++++++++-------------------------- scripts/release/macosx.sh | 7 +++-- 3 files changed, 25 insertions(+), 47 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2c4c62fa06..850065b6e9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -357,7 +357,7 @@ release-linux: - modules artifacts: paths: - - ./*.gz + - build_release/*.gz release-osx-clang: <<: *release_job diff --git a/scripts/release/linux.sh b/scripts/release/linux.sh index eea5389173..76272df1b6 100755 --- a/scripts/release/linux.sh +++ b/scripts/release/linux.sh @@ -48,17 +48,8 @@ done ROOT_DIR=$PWD DEP_DIR=$ROOT_DIR/deps DEP_BUILD_DIR=$ROOT_DIR/build_deps -OSPRAY_PKG_BASE=ospray-2.1.0.x86_64.linux -OSPRAY_BUILD_DIR=$ROOT_DIR/build_release -INSTALL_DIR=$ROOT_DIR/install/$OSPRAY_PKG_BASE THREADS=`nproc` -#### Cleanup any existing directories #### - -rm -rf $DEP_DIR -rm -rf $DEP_BUILD_DIR -rm -rf $OSPRAY_BUILD_DIR -rm -rf $INSTALL_DIR #### Build dependencies #### @@ -72,6 +63,7 @@ cmake --version cmake \ "$@" \ + -D BUILD_JOBS=$THREADS \ -D BUILD_DEPENDENCIES_ONLY=ON \ -D CMAKE_INSTALL_PREFIX=$DEP_DIR \ -D CMAKE_INSTALL_LIBDIR=lib \ @@ -87,8 +79,8 @@ cd $ROOT_DIR #### Build OSPRay #### -mkdir -p $OSPRAY_BUILD_DIR -cd $OSPRAY_BUILD_DIR +mkdir -p build_release +cd build_release # Clean out build directory to be sure we are doing a fresh build rm -rf * @@ -103,45 +95,30 @@ export OpenImageDenoise_DIR=$DEP_DIR # set release settings cmake -L \ - -D CMAKE_INSTALL_PREFIX=$INSTALL_DIR \ - -D ISPC_EXECUTABLE=$DEP_DIR/bin/ispc \ -D OSPRAY_BUILD_ISA=ALL \ - -D OSPRAY_MODULE_DENOISER=ON \ - -D OSPRAY_INSTALL_DEPENDENCIES=OFF \ + -D ISPC_EXECUTABLE=$DEP_DIR/bin/ispc \ -D OSPRAY_ZIP_MODE=ON \ - -D CPACK_PACKAGING_INSTALL_PREFIX=/ \ + -D OSPRAY_MODULE_DENOISER=ON \ + -D OSPRAY_INSTALL_DEPENDENCIES=ON \ -D CMAKE_INSTALL_INCLUDEDIR=include \ -D CMAKE_INSTALL_LIBDIR=lib \ -D CMAKE_INSTALL_DOCDIR=doc \ -D CMAKE_INSTALL_BINDIR=bin \ .. -# build OSPRay -make -j $THREADS install +# create tar.gz +make -j $THREADS preinstall # verify libs -check_symbols $INSTALL_DIR/lib/libospray.so GLIBC 2 17 0 -check_symbols $INSTALL_DIR/lib/libospray.so GLIBCXX 3 4 19 -check_symbols $INSTALL_DIR/lib/libospray.so CXXABI 1 3 7 - -check_symbols $INSTALL_DIR/lib/libospray_module_ispc.so GLIBC 2 17 0 -check_symbols $INSTALL_DIR/lib/libospray_module_ispc.so GLIBCXX 3 4 19 -check_symbols $INSTALL_DIR/lib/libospray_module_ispc.so CXXABI 1 3 7 - -check_imf $INSTALL_DIR/lib/libospray.so -check_imf $INSTALL_DIR/lib/libospray_module_ispc.so - -# copy dependent libs into the install -INSTALL_LIB_DIR=$INSTALL_DIR/lib - -cp -P $DEP_DIR/lib/*ospcommon.so* $INSTALL_LIB_DIR -cp -P $DEP_DIR/lib/*openvkl*.so* $INSTALL_LIB_DIR -cp -P $DEP_BUILD_DIR/embree/src/lib/*embree*.so* $INSTALL_LIB_DIR -cp -P $DEP_BUILD_DIR/oidn/src/lib/*OpenImage*.so* $INSTALL_LIB_DIR -cp -P $DEP_BUILD_DIR/tbb/src/tbb/lib/intel64/gcc4.8/libtbb.so.* $INSTALL_LIB_DIR -cp -P $DEP_BUILD_DIR/tbb/src/tbb/lib/intel64/gcc4.8/libtbbmalloc.so.* $INSTALL_LIB_DIR - -# tar up the results -cd $INSTALL_DIR/.. -tar -caf $OSPRAY_PKG_BASE.tar.gz $OSPRAY_PKG_BASE -mv *.tar.gz $ROOT_DIR +check_symbols libospray.so GLIBC 2 17 0 +check_symbols libospray.so GLIBCXX 3 4 19 +check_symbols libospray.so CXXABI 1 3 7 + +check_symbols libospray_module_ispc.so GLIBC 2 17 0 +check_symbols libospray_module_ispc.so GLIBCXX 3 4 19 +check_symbols libospray_module_ispc.so CXXABI 1 3 7 + +check_imf libospray.so +check_imf libospray_module_ispc.so + +make -j $THREADS package || exit 2 diff --git a/scripts/release/macosx.sh b/scripts/release/macosx.sh index 11a49f852c..277d74a32b 100755 --- a/scripts/release/macosx.sh +++ b/scripts/release/macosx.sh @@ -1,5 +1,5 @@ #!/bin/bash -## Copyright 2014-2019 Intel Corporation +## Copyright 2014-2020 Intel Corporation ## SPDX-License-Identifier: Apache-2.0 #### Helper functions #### @@ -15,6 +15,7 @@ umask 002 ROOT_DIR=$PWD DEP_DIR=$ROOT_DIR/deps +DEP_BUILD_DIR=$ROOT_DIR/build_deps THREADS=`sysctl -n hw.logicalcpu` # set compiler if the user hasn't explicitly set CC and CXX @@ -33,8 +34,8 @@ unset DYLD_LIBRARY_PATH #### Build dependencies #### -mkdir deps_build -cd deps_build +mkdir $DEP_BUILD_DIR +cd $DEP_BUILD_DIR cmake --version From cbf56261f7703ec0194e70883c0e812e80fc379a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=BCnther?= Date: Wed, 13 May 2020 18:36:42 +0200 Subject: [PATCH 23/27] Fix namelink generation for dependencies --- cmake/ospray_redistribute_deps.cmake | 59 ++++++++++++++-------------- 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/cmake/ospray_redistribute_deps.cmake b/cmake/ospray_redistribute_deps.cmake index f71ae0080b..94a2d26772 100644 --- a/cmake/ospray_redistribute_deps.cmake +++ b/cmake/ospray_redistribute_deps.cmake @@ -1,31 +1,36 @@ ## Copyright 2009-2020 Intel Corporation ## SPDX-License-Identifier: Apache-2.0 -macro(ospray_install_namelink NAME TARGET_NAME) - set(BASE_LIB_NAME lib${NAME}) +macro(ospray_install_namelink NAME) + get_filename_component(TARGET_NAME ${NAME} NAME) # strip path set(LIB_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX}) - execute_process(COMMAND "${CMAKE_COMMAND}" -E create_symlink - ${TARGET_NAME} ${CMAKE_CURRENT_BINARY_DIR}/${BASE_LIB_NAME}${LIB_SUFFIX}) - install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/lib${NAME}${LIB_SUFFIX} - DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT redist) + # strip version and lib suffix + if(APPLE) + set(LIBREGEX "(.+)[.]([0-9]+)([.][0-9]+[.][0-9]+)?${LIB_SUFFIX}") + else() + set(LIBREGEX "(.+)${LIB_SUFFIX}[.]([0-9]+)([.][0-9]+[.][0-9]+)?") + endif() + string(REGEX REPLACE ${LIBREGEX} "\\1" BASE_LIB_NAME ${TARGET_NAME}) - # If the shared lib we're copying is named with a specific version, also - # create a major version suffixed symlink - string(REGEX MATCH "([0-9]+)[.]([0-9]+)[.]([0-9]+)" VERSION_STRING ${TARGET_NAME}) - if (CMAKE_MATCH_0) + if (CMAKE_MATCH_COUNT) + set(SYMLINK ${CMAKE_CURRENT_BINARY_DIR}/${BASE_LIB_NAME}${LIB_SUFFIX}) + execute_process(COMMAND "${CMAKE_COMMAND}" -E + create_symlink ${TARGET_NAME} ${SYMLINK}) + install(PROGRAMS ${SYMLINK} DESTINATION ${CMAKE_INSTALL_LIBDIR} + COMPONENT redist) + endif() + + if (CMAKE_MATCH_COUNT GREATER 2) + # also create a major version suffixed symlink if(APPLE) - execute_process(COMMAND "${CMAKE_COMMAND}" -E create_symlink - ${TARGET_NAME} - ${CMAKE_CURRENT_BINARY_DIR}/${BASE_LIB_NAME}.${CMAKE_MATCH_1}${LIB_SUFFIX}) - install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${BASE_LIB_NAME}.${CMAKE_MATCH_1}${LIB_SUFFIX} - DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT redist) + set(SYMLINK ${CMAKE_CURRENT_BINARY_DIR}/${BASE_LIB_NAME}.${CMAKE_MATCH_2}${LIB_SUFFIX}) else() - execute_process(COMMAND "${CMAKE_COMMAND}" -E create_symlink - ${TARGET_NAME} - ${CMAKE_CURRENT_BINARY_DIR}/${BASE_LIB_NAME}${LIB_SUFFIX}.${CMAKE_MATCH_1}) - install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${BASE_LIB_NAME}${LIB_SUFFIX}.${CMAKE_MATCH_1} - DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT redist) + set(SYMLINK ${CMAKE_CURRENT_BINARY_DIR}/${BASE_LIB_NAME}${LIB_SUFFIX}.${CMAKE_MATCH_2}) endif() + execute_process(COMMAND "${CMAKE_COMMAND}" -E + create_symlink ${TARGET_NAME} ${SYMLINK}) + install(PROGRAMS ${SYMLINK} DESTINATION ${CMAKE_INSTALL_LIBDIR} + COMPONENT redist) endif() endmacro() @@ -55,12 +60,8 @@ if (OSPCOMMON_TASKING_TBB) else() install(PROGRAMS ${TBB_LIBRARY} ${TBB_LIBRARY_MALLOC} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT redist) - if (NOT APPLE) - get_filename_component(TBB_LIBNAME ${TBB_LIBRARY} NAME) - get_filename_component(TBB_MALLOC_LIBNAME ${TBB_LIBRARY_MALLOC} NAME) - ospray_install_namelink(tbb ${TBB_LIBNAME}) - ospray_install_namelink(tbbmalloc ${TBB_MALLOC_LIBNAME}) - endif() + ospray_install_namelink(${TBB_LIBRARY}) + ospray_install_namelink(${TBB_LIBRARY_MALLOC}) endif() endif() @@ -70,6 +71,7 @@ macro(ospray_add_dependent_lib TARGET_NAME) list(GET CONFIGURATIONS 0 CONFIGURATION) get_target_property(LIBRARY ${TARGET_NAME} IMPORTED_LOCATION_${CONFIGURATION}) list(APPEND DEPENDENT_LIBS ${LIBRARY}) + ospray_install_namelink(${LIBRARY}) else() message(STATUS "Skipping target '${TARGET_NAME}") endif() @@ -103,10 +105,7 @@ else() list(APPEND DEPENDENT_LIBS ${EMBREE_LIBRARY}) install(PROGRAMS ${DEPENDENT_LIBS} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT redist) - if (NOT APPLE) - get_filename_component(EMBREE_LIBNAME ${EMBREE_LIBRARY} NAME) - ospray_install_namelink(embree ${EMBREE_LIBNAME}) - endif() + ospray_install_namelink(${EMBREE_LIBRARY}) endif() # Install MSVC runtime From 37afc7cd1fa9b91676cfb72ca2c59ce5068c87ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=BCnther?= Date: Wed, 13 May 2020 22:28:36 +0200 Subject: [PATCH 24/27] Use a "release install" for testing --- .gitlab-ci.yml | 51 ++++++++++----------------- scripts/build_gitlab/linux.sh | 1 - scripts/build_gitlab/win.ps1 | 2 -- scripts/superbuild/build_ospray.cmake | 7 ++++ 4 files changed, 25 insertions(+), 36 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 850065b6e9..bc126bcac4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -31,6 +31,12 @@ variables: tags: - build +.job_template: &build_artifacts + artifacts: + paths: + - build/install/ospray + expire_in: 3 day + .job_template: &release_job stage: deploy tags: @@ -56,12 +62,12 @@ variables: .job_template: &test_job_unix <<: *test_job script: - - LD_LIBRARY_PATH="$CI_PROJECT_DIR/build/install/lib:$LD_LIBRARY_PATH" PATH="$CI_PROJECT_DIR/build/install/bin:$PATH" scripts/tests/run_tests.sh "$CI_PROJECT_DIR" + - LD_LIBRARY_PATH="$CI_PROJECT_DIR/build/install/ospray/lib:$LD_LIBRARY_PATH" PATH="$CI_PROJECT_DIR/build/install/ospray/bin:$PATH" scripts/tests/run_tests.sh "$CI_PROJECT_DIR" .job_template: &test_job_windows <<: *test_job script: - - $env:Path += ";$CI_PROJECT_DIR\build\install\bin" + - $env:Path += ";$CI_PROJECT_DIR\build\install\ospray\bin" - scripts\tests\run_tests.ps1 "$CI_PROJECT_DIR" @@ -82,44 +88,35 @@ build-arch-clang: build-arch-gcc-extras: <<: *build_job_docker script: - - scripts/build_gitlab/linux.sh -G Ninja -DBUILD_GLFW=OFF -DBUILD_OSPRAY_CI_EXTRAS=ON -DINSTALL_IN_SEPARATE_DIRECTORIES=ON -DBUILD_OIDN=ON + - scripts/build_gitlab/linux.sh -G Ninja -DBUILD_GLFW=OFF -DBUILD_OSPRAY_CI_EXTRAS=ON -DBUILD_OIDN=ON build-arch-clang-extras: <<: *build_job_docker script: - export CC=clang - export CXX=clang++ - - scripts/build_gitlab/linux.sh -G Ninja -DBUILD_GLFW=OFF -DBUILD_OSPRAY_CI_EXTRAS=ON -DINSTALL_IN_SEPARATE_DIRECTORIES=ON -DBUILD_OIDN=ON + - scripts/build_gitlab/linux.sh -G Ninja -DBUILD_GLFW=OFF -DBUILD_OSPRAY_CI_EXTRAS=ON -DBUILD_OIDN=ON build-ubuntu1604-gcc: <<: *build_job_docker image: ospray/docker-images:ubuntu16.04 script: - scripts/build_gitlab/linux.sh -G Ninja - artifacts: - paths: - - build/install - expire_in: 3 day + <<: *build_artifacts build-ubuntu1804-gcc: <<: *build_job_docker image: ospray/docker-images:ubuntu18.04 script: - scripts/build_gitlab/linux.sh -G Ninja -DBUILD_GLFW=OFF - artifacts: - paths: - - build/install - expire_in: 3 day + <<: *build_artifacts build-centos8: <<: *build_job_docker image: ospray/docker-images:centos8 script: - scripts/build_gitlab/linux.sh -G Ninja - artifacts: - paths: - - build/install - expire_in: 3 day + <<: *build_artifacts build-centos7-icc: <<: *build_job_docker_modules @@ -142,10 +139,7 @@ build-centos7-icc15: build-centos7-gcc: <<: *build_job_docker image: ospray/docker-images:centos7 - artifacts: - paths: - - build/install - expire_in: 3 day + <<: *build_artifacts build-centos7-mpi: <<: *build_job_docker_modules @@ -175,10 +169,7 @@ build-windows-msvc14: tags: - msvc14 - win - artifacts: - paths: - - build/install - expire_in: 3 day + <<: *build_artifacts build-windows-msvc15: <<: *build_job_shell @@ -187,10 +178,7 @@ build-windows-msvc15: tags: - msvc15 - win - artifacts: - paths: - - build/install - expire_in: 3 day + <<: *build_artifacts #build-windows-icc: # <<: *build_job_shell @@ -199,10 +187,7 @@ build-windows-msvc15: # tags: # - icc17 # - win -# artifacts: -# paths: -# - build/install -# expire_in: 3 day +# <<: *build_artifacts build-scan-kw: stage: build @@ -304,7 +289,7 @@ generate-ci-baseline: <<: *test_job_unix image: ospray/docker-images:ubuntu18.04 script: - - LD_LIBRARY_PATH="$CI_PROJECT_DIR/build/install/lib:$LD_LIBRARY_PATH" PATH="$CI_PROJECT_DIR/build/install/bin:$PATH" scripts/tests/generate_baseline.sh + - LD_LIBRARY_PATH="$CI_PROJECT_DIR/build/install/ospray/lib:$LD_LIBRARY_PATH" PATH="$CI_PROJECT_DIR/build/install/ospray/bin:$PATH" scripts/tests/generate_baseline.sh dependencies: - build-ubuntu1804-gcc artifacts: diff --git a/scripts/build_gitlab/linux.sh b/scripts/build_gitlab/linux.sh index a7bebff5f4..ff43a3eaa0 100755 --- a/scripts/build_gitlab/linux.sh +++ b/scripts/build_gitlab/linux.sh @@ -13,7 +13,6 @@ cmake --version cmake -L \ -D CMAKE_INSTALL_LIBDIR=lib \ -D BUILD_EMBREE_FROM_SOURCE=OFF \ - -D INSTALL_IN_SEPARATE_DIRECTORIES=OFF \ "$@" \ ../scripts/superbuild diff --git a/scripts/build_gitlab/win.ps1 b/scripts/build_gitlab/win.ps1 index 5053bd6a86..cf7a886804 100755 --- a/scripts/build_gitlab/win.ps1 +++ b/scripts/build_gitlab/win.ps1 @@ -10,8 +10,6 @@ cmake -L ` -G $args[0] ` -T $args[1] ` -D BUILD_EMBREE_FROM_SOURCE=OFF ` - -D BUILD_OIDN=ON ` - -D INSTALL_IN_SEPARATE_DIRECTORIES=OFF ` ../scripts/superbuild cmake --build . --config Release --target ALL_BUILD diff --git a/scripts/superbuild/build_ospray.cmake b/scripts/superbuild/build_ospray.cmake index b00d82b912..7e274caee1 100644 --- a/scripts/superbuild/build_ospray.cmake +++ b/scripts/superbuild/build_ospray.cmake @@ -8,6 +8,12 @@ if (INSTALL_IN_SEPARATE_DIRECTORIES) set(COMPONENT_PATH ${INSTALL_DIR_ABSOLUTE}/${COMPONENT_NAME}) endif() +# MPI need working SDK, which rules out installed depedencies +set(INSTALL_DEPENDENCIES ON) +if(BUILD_OSPRAY_MODULE_MPI) + set(INSTALL_DEPENDENCIES OFF) +endif() + ExternalProject_Add(${COMPONENT_NAME} PREFIX ${COMPONENT_NAME} DOWNLOAD_COMMAND "" @@ -28,6 +34,7 @@ ExternalProject_Add(${COMPONENT_NAME} -DOSPRAY_BUILD_ISA=ALL -DOSPRAY_MODULE_BILINEAR_PATCH=${BUILD_OSPRAY_CI_EXTRAS} -DOSPRAY_MODULE_DENOISER=${BUILD_OIDN} + -DOSPRAY_INSTALL_DEPENDENCIES=${INSTALL_DEPENDENCIES} -DOSPRAY_STRICT_BUILD=${BUILD_OSPRAY_CI_EXTRAS} -DOSPRAY_WARN_AS_ERRORS=${BUILD_OSPRAY_CI_EXTRAS} $<$:-DISPC_EXECUTABLE=${ISPC_PATH}> From 38b43a08de8398086415d9c746b32b89b360d45f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=BCnther?= Date: Thu, 14 May 2020 16:51:50 +0200 Subject: [PATCH 25/27] Require ospcommon v1.3.1 --- cmake/ospray_options.cmake | 2 +- scripts/superbuild/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/ospray_options.cmake b/cmake/ospray_options.cmake index 7ab9642e72..a66432f76f 100644 --- a/cmake/ospray_options.cmake +++ b/cmake/ospray_options.cmake @@ -10,7 +10,7 @@ include(GNUInstallDirs) set(OSPRAY_CMAKECONFIG_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/ospray-${OSPRAY_VERSION}") -set(OSPCOMMON_VERSION_REQUIRED 1.3.0) +set(OSPCOMMON_VERSION_REQUIRED 1.3.1) set(EMBREE_VERSION_REQUIRED 3.8.0) set(OPENVKL_VERSION_REQUIRED 0.9.0) diff --git a/scripts/superbuild/CMakeLists.txt b/scripts/superbuild/CMakeLists.txt index 6aaeec9170..b6750f482f 100644 --- a/scripts/superbuild/CMakeLists.txt +++ b/scripts/superbuild/CMakeLists.txt @@ -48,7 +48,7 @@ option(ALWAYS_REBUILD "Force every project to always be rebuilt?" OFF) option(DOWNLOAD_ISPC "Download ispc or use the one found in ${PATH}?" ON) -set(BUILD_OSPCOMMON_VERSION "v1.3.0" CACHE STRING "Which version of ospcommon to build?") +set(BUILD_OSPCOMMON_VERSION "v1.3.1" CACHE STRING "Which version of ospcommon to build?") option(DOWNLOAD_TBB "Download TBB or use the only found in the system environment?" ON) set(TBB_VERSION "2020.2" CACHE STRING "Which version of TBB to download?") From ddb396f3f84eafd6680fa332082a53f5473ec9bb Mon Sep 17 00:00:00 2001 From: Krzysztof Raszkowski Date: Mon, 18 May 2020 14:17:05 +0000 Subject: [PATCH 26/27] ci: kw scan jobs adjustments --- .gitlab-ci.yml | 13 ++++--- scripts/build_gitlab/build-scan-kw.sh | 45 +++++------------------- scripts/build_gitlab/test-kw-critical.sh | 16 +++++++++ 3 files changed, 30 insertions(+), 44 deletions(-) create mode 100755 scripts/build_gitlab/test-kw-critical.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bc126bcac4..7996eb4c81 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -191,17 +191,16 @@ build-windows-msvc15: build-scan-kw: stage: build - image: ospray-kw-centos7 + image: ospray/docker-images:centos7 script: - scripts/build_gitlab/build-scan-kw.sh - test -s $CI_PROJECT_DIR/kw_build_number tags: - - kw-scan-docker + - docker artifacts: paths: - $CI_PROJECT_DIR/kw_build_number expire_in: 3 day - allow_failure: true source-protex-scan: stage: build @@ -276,13 +275,13 @@ test-windows-msvc14: test-kw-critical: stage: test-src - image: ospray-kw-centos7 + image: ospray/docker-images:centos7 script: - - /tmp/test-kw-critical.sh - dependencies: + - scripts/build_gitlab/test-kw-critical.sh + needs: - build-scan-kw tags: - - kw-scan-docker + - docker allow_failure: true generate-ci-baseline: diff --git a/scripts/build_gitlab/build-scan-kw.sh b/scripts/build_gitlab/build-scan-kw.sh index 624109f7a0..f05135b184 100755 --- a/scripts/build_gitlab/build-scan-kw.sh +++ b/scripts/build_gitlab/build-scan-kw.sh @@ -1,42 +1,14 @@ #!/bin/bash -# function repeat the command $1 times, when the last line output is equal ERROR_MSG -function retry_cmd() -{ - set +e - MAX_RETRY=$1 - CMD="${@:2}" - ERROR_MSG="License check failed ... Exiting" - - RETRY_COUNTER="0" - while [ $RETRY_COUNTER -lt $MAX_RETRY ]; do - CMD_OUTPUT=$($CMD) - CMD_RETURN_CODE=$? - echo "$CMD_OUTPUT" - CMD_OUTPUT=$(echo $CMD_OUTPUT | tail -1) - if [ $CMD_RETURN_CODE == 0 ] && [[ $CMD_OUTPUT != $ERROR_MSG ]]; then - break - elif [ $CMD_RETURN_CODE != 1 ]; then - set -e - echo "Unknown script error code = [$CMD_RETURN_CODE]" - return $CMD_RETURN_CODE - fi - RETRY_COUNTER=$[$RETRY_COUNTER+1] - echo "Found license check failed, [$RETRY_COUNTER/$MAX_RETRY] - retrying ... " - sleep 10 - done - - set -e - if [ $RETRY_COUNTER -ge $MAX_RETRY ]; then - return 62 - fi - return 0 -} - set -e +KW_SERVER_PATH=$KW_PATH/server +KW_CLIENT_PATH=$KW_PATH/client +export KLOCWORK_LTOKEN=/tmp/ltoken + echo "$KW_SERVER_IP;$KW_SERVER_PORT;$KW_USER;$KW_LTOKEN" > $KLOCWORK_LTOKEN + mkdir build cd build @@ -64,9 +36,8 @@ export openvkl_DIR=`pwd`/../install cmake -DISPC_EXECUTABLE=`pwd`/../install/bin/ispc ../.. -# build $KW_CLIENT_PATH/bin/kwinject make -j `nproc` +$KW_SERVER_PATH/bin/kwbuildproject --url http://$KW_SERVER_IP:$KW_SERVER_PORT/$KW_PROJECT_NAME --tables-directory $CI_PROJECT_DIR/kw_tables kwinject.out +$KW_SERVER_PATH/bin/kwadmin --url http://$KW_SERVER_IP:$KW_SERVER_PORT/ load --force --name build-$CI_JOB_ID $KW_PROJECT_NAME $CI_PROJECT_DIR/kw_tables +echo "build-$CI_JOB_ID" > $CI_PROJECT_DIR/kw_build_number -retry_cmd 15 $KW_SERVER_PATH/bin/kwbuildproject --url http://$KW_SERVER_IP:$KW_SERVER_PORT/$KW_PROJECT_NAME --tables-directory $CI_PROJECT_DIR/release/kw_tables kwinject.out -retry_cmd 15 $KW_SERVER_PATH/bin/kwadmin --url http://$KW_SERVER_IP:$KW_SERVER_PORT/ load $KW_PROJECT_NAME $CI_PROJECT_DIR/release/kw_tables | tee project_load_log -cat project_load_log | grep "Starting build" | cut -d":" -f2 > $CI_PROJECT_DIR/kw_build_number diff --git a/scripts/build_gitlab/test-kw-critical.sh b/scripts/build_gitlab/test-kw-critical.sh new file mode 100755 index 0000000000..985b19646f --- /dev/null +++ b/scripts/build_gitlab/test-kw-critical.sh @@ -0,0 +1,16 @@ +#!/bin/bash +set -e +KW_CRITICAL_OUTPUT_PATH=/tmp/critical +export KW_BUILD_NUMBER=$(cat $CI_PROJECT_DIR/kw_build_number) +echo "Checking for critical issues in $KW_BUILD_NUMBER ..." +no_proxy=$KW_SERVER_IP curl -f --data "action=search&project=$KW_PROJECT_NAME&query=build:'$KW_BUILD_NUMBER'%20severity:Critical%20status:Analyze,Fix&user=$KW_USER<oken=$KW_LTOKEN" http://$KW_SERVER_IP:$KW_SERVER_PORT/review/api -o $KW_CRITICAL_OUTPUT_PATH +getCriticalCount() { + cat $KW_CRITICAL_OUTPUT_PATH | wc -l +} +if [ -f $KW_CRITICAL_OUTPUT_PATH ]; then + echo "Critical issues found - $(getCriticalCount) in $KW_BUILD_NUMBER"; + cat $KW_CRITICAL_OUTPUT_PATH + exit 1; +else + echo "No critical issues were found in $KW_BUILD_NUMBER" +fi From 1e04c2853eea4a2b1f6e780869fbe730971b9240 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=BCnther?= Date: Mon, 25 May 2020 16:40:21 +0200 Subject: [PATCH 27/27] CHANGELOG entry, spelling, sync README --- CHANGELOG.md | 9 +++++---- README.md | 20 ++++++++++---------- doc/api.md | 12 ++++++------ 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44bb66fc18..b7b9c25455 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ Version History - CarPaint obeys `coat` weight parameter - Correct depth buffer values with SciVis renderer - Adaptions to Embree v3.10.0 +- The Linux binary release finds `ospcommon` again ### Changes in v2.1.0: @@ -21,7 +22,7 @@ Version History - New plane geometry defined via plane equation and optional bounding box - Sun-sky light based on physical model of Hošek-Wilkie -- Support for photometric lights (e.g. IES or EULUMDAT) +- Support for photometric lights (e.g., IES or EULUMDAT) - Add new `ospGetTaskDuration` API call to query execution time of asynchronous tasks - Support for 16bit (unsigned short) textures @@ -57,7 +58,7 @@ Version History - Add the option to specify a single color for geometric models - The `scivis` renderer now respects the opacity component of `color` on geometric models -- Fix various inconsistent handling of frame buffer alpha between +- Fix various inconsistent handling of framebuffer alpha between renderers - `ospGetCurrentDevice` now increments the ref count of the returned `OSPDevice` handle, so applications will need to release the handle @@ -116,7 +117,7 @@ Version History - Any unused parameters an object ignores now emit a warning message - New support for volumes in the `pathtracer` - Several parameters are available for performance/quality - trade-offs for both photo-realistic and scientific visualization + trade-offs for both photorealistic and scientific visualization use cases - Simplification of the SciVis renderer - Fixed AO lighting and simple ray marched volume rendering for @@ -794,7 +795,7 @@ changes. - Incorporated early version of a new Qt-based viewer to eventually unify (and replace) the existing simpler GLUT-based viewers - Added new path tracing renderer (`ospray/render/pathtracer`), -- roughly based on the Embree sample path tracer + roughly based on the Embree sample path tracer - Added new features to the volume renderer - Gradient shading (lighting) - Implicit isosurfacing diff --git a/README.md b/README.md index fa9c10e2e9..b2ae0f39b9 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ OSPRay ====== -This is release v2.1.0 of Intel® OSPRay. For changes and new features +This is release v2.1.1 of Intel® OSPRay. For changes and new features see the [changelog](CHANGELOG.md). Visit http://www.ospray.org for more information. @@ -714,8 +714,8 @@ opaque arrays to allow the `OSPData` to own the lifetime of the array memory. However, opaque arrays dictate the cost of copying data into it, which should be kept in mind. -Thus the most efficient way to specify a data array from the application -is to created a shared data array, which is done with +Thus, the most efficient way to specify a data array from the +application is to created a shared data array, which is done with ``` {.cpp} OSPData ospNewSharedData(const void *sharedData, @@ -1411,11 +1411,11 @@ about 0.53°. ### Point Light / Sphere Light The sphere light (or the special case point light) is a light emitting -uniformly in all directions from the surface towards the outside. It -does not emit any light towards the inside of the sphere. It is created -by passing the type string “`sphere`” to `ospNewLight`. In addition to -the [general parameters](#lights) understood by all lights the sphere -light supports the following special parameters: +uniformly in all directions from the surface toward the outside. It does +not emit any light toward the inside of the sphere. It is created by +passing the type string “`sphere`” to `ospNewLight`. In addition to the +[general parameters](#lights) understood by all lights the sphere light +supports the following special parameters: | Type | Name | Description | |:------|:---------|:-----------------------------------------------| @@ -2595,7 +2595,7 @@ Rendering ### Asynchronous Rendering Rendering is by default asynchronous (non-blocking), and is done by -combining a frame buffer, renderer, camera, and world. +combining a framebuffer, renderer, camera, and world. What to render and how to render it depends on the renderer’s parameters. If the framebuffer supports accumulation (i.e., it was @@ -2634,7 +2634,7 @@ The following are values which can be synchronized with the application | Name | Description | |:----------------------|:------------------------------------------------------------------------------------------------------------------------------------------------| -| OSP\_NONE\_FINISHED | Don’t wait for anything to be finished (immediately return from `ospWait`) | +| OSP\_NONE\_FINISHED | Do not wait for anything to be finished (immediately return from `ospWait`) | | OSP\_WORLD\_COMMITTED | Wait for the world to be committed (not yet implemented) | | OSP\_WORLD\_RENDERED | Wait for the world to be rendered, but not post-processing operations (Pixel/Tile/Frame Op) | | OSP\_FRAME\_FINISHED | Wait for all rendering operations to complete | diff --git a/doc/api.md b/doc/api.md index b0fa0f626c..29903e73c9 100644 --- a/doc/api.md +++ b/doc/api.md @@ -372,8 +372,8 @@ opaque arrays to allow the `OSPData` to own the lifetime of the array memory. However, opaque arrays dictate the cost of copying data into it, which should be kept in mind. -Thus the most efficient way to specify a data array from the application -is to created a shared data array, which is done with +Thus, the most efficient way to specify a data array from the +application is to created a shared data array, which is done with OSPData ospNewSharedData(const void *sharedData, OSPDataType, @@ -1161,8 +1161,8 @@ tracer]). For instance, the apparent size of the sun is about 0.53°. ### Point Light / Sphere Light The sphere light (or the special case point light) is a light emitting -uniformly in all directions from the surface towards the outside. -It does not emit any light towards the inside of the sphere. +uniformly in all directions from the surface toward the outside. +It does not emit any light toward the inside of the sphere. It is created by passing the type string "`sphere`" to `ospNewLight`. In addition to the [general parameters](#lights) understood by all lights the sphere light supports the following special parameters: @@ -2433,7 +2433,7 @@ Rendering ### Asynchronous Rendering Rendering is by default asynchronous (non-blocking), and is done by -combining a frame buffer, renderer, camera, and world. +combining a framebuffer, renderer, camera, and world. What to render and how to render it depends on the renderer's parameters. If the framebuffer supports accumulation (i.e., it was @@ -2467,7 +2467,7 @@ The following are values which can be synchronized with the application -------------------- -------------------------------------------------------- Name Description -------------------- -------------------------------------------------------- - OSP_NONE_FINISHED Don't wait for anything to be finished (immediately + OSP_NONE_FINISHED Do not wait for anything to be finished (immediately return from `ospWait`) OSP_WORLD_COMMITTED Wait for the world to be committed (not yet implemented)