Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
a3509f6
removing unified memory for framebuffers, as this hurts multigpu perf…
natevm Feb 17, 2021
0c46d4d
some fixes for multigpu setups. Some issues with different gpus rende…
natevm Feb 17, 2021
81291c7
changing how max path bounces are handled to avoid long tails.
natevm Feb 20, 2021
f57bcc6
working on multigpu perf
natevm Feb 26, 2021
e0555a3
some steps forward towards dynamic load balancing
natevm Feb 27, 2021
14cfdee
fixes to load balancing. Fixes to frame buffer when cuda visible devi…
natevm Mar 1, 2021
8a386fc
adding some sync points
natevm Apr 3, 2021
ec0ee90
Merge branch 'development' of https://github.com/owl-project/ViSII in…
natevm Apr 3, 2021
bc5d1af
Adding support for constant material parameters with import_scene fun…
natevm Apr 3, 2021
1991793
updating owl submodule
natevm Apr 3, 2021
74ccee1
adding more visibility flags.
natevm Apr 3, 2021
5a68fdf
assigning visibility masks to entities
natevm Apr 3, 2021
8db142e
forcing denoiser configure to wait
natevm Apr 6, 2021
96c0aee
fixing bug where renderToImage wasnt saving the correct buffer
natevm Apr 14, 2021
8ccbf36
working on a volume sample
natevm Apr 14, 2021
5746cb6
simplifying download_content script a bit
natevm Apr 14, 2021
04f2bb2
adding a volumes example. Some bugs need to be worked out
natevm Apr 14, 2021
53be1aa
working on refactoring volume codepath to improve efficiency
natevm Apr 14, 2021
94316a6
refacting volume rendering code. Now much cheaper to render surfaces …
natevm Apr 15, 2021
cf6e014
upgrades to volume example
natevm Apr 15, 2021
86a0503
ray visibility flags now working. Added an example demonstrating feature
natevm Apr 15, 2021
1b8a87b
fixing some tests. Normal map test is failing
natevm Apr 15, 2021
3d34ab5
fixing race condition with textures and materials
natevm Apr 15, 2021
8c3d050
adding a get_center function to entities, which behaves differently t…
natevm Apr 24, 2021
57d05b1
Merge branch 'development' of https://github.com/owl-project/ViSII in…
natevm Apr 24, 2021
56083a3
Merge branch 'master' into development
natevm May 12, 2021
819e1b4
changing scene importer to allow for degenerate transforms with a war…
natevm May 16, 2021
ec6e877
Merge branch 'master' into development
natevm May 16, 2021
107a898
adding support for point lights
natevm May 22, 2021
2a08bb6
updating docs
natevm May 22, 2021
7617f80
improvements to how import_scene handles normal maps
natevm May 23, 2021
1e8100b
removing debug print in device code
natevm May 23, 2021
277e54c
resolving merge conflict
natevm Sep 22, 2021
ef1880a
adding support for alpha transparent backgrounds
natevm Sep 22, 2021
52b4655
removing lazy_updates from initialize. Removing deprecated initialize…
natevm Oct 27, 2021
f1762f3
improving the performance of transform updates
natevm Oct 27, 2021
ded9a62
adding back world matrix calculation
natevm Oct 27, 2021
6ec79ac
merging the two initialize loops into one, in the future this will ma…
natevm Oct 27, 2021
2c01f62
Update README.md
TontonTremblay Jun 10, 2022
cdf5663
Merge branch 'master' into development
natevm Jul 5, 2022
8c12de0
Update build.yml
natevm Jul 5, 2022
bec651a
updating NVISII to latest version of owl
natevm Jul 6, 2022
97ad536
Merge branch 'development' of https://github.com/owl-project/ViSII in…
natevm Jul 6, 2022
d89b46a
Update build.yml
natevm Jul 9, 2022
fe30bc8
Merge branch 'master' into development
natevm Jul 9, 2022
cf690fa
Merge branch 'master' into development
natevm Jul 9, 2022
8cb1d79
Update build.yml
natevm Jul 9, 2022
0d3bc03
Update build.yml
natevm Jul 10, 2022
62a3860
Update build.yml
natevm Jul 10, 2022
96653ef
Update CMakeLists.txt
natevm Jul 10, 2022
d209775
Update build.yml
natevm Jul 10, 2022
4f091ea
Update build.yml
natevm Jul 11, 2022
47abaaa
Update build.yml
natevm Jul 11, 2022
a089dde
Update build.yml
natevm Jul 11, 2022
89c9b5c
Update build.yml
natevm Jul 11, 2022
8c5f1bb
Update build.yml
natevm Jul 11, 2022
a75b50e
Update build.yml
natevm Jul 13, 2022
4b8a2c9
updating yml
natevm Sep 21, 2022
6b38df7
updating build yml
natevm Sep 21, 2022
bf8df3a
Update build.yml
natevm Sep 21, 2022
d542831
Update build.yml
natevm Sep 21, 2022
3c176e6
Update build.yml
natevm Sep 21, 2022
820d85a
Update build.yml
natevm Sep 21, 2022
86f5ca0
Update build.yml
natevm Jul 5, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 23 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, windows-2019]
python-version: ['3.6', '3.7', '3.8', '3.9']
optix-version: [70, 71, 72]
os: [ubuntu-22.04, windows-2019]
python-version: ['3.6', '3.7', '3.8', '3.9'] # #, '3.10'
optix-version: [70, 71, 72] #
include:
# Includes the value for matrix.container when the OS is Ubuntu, to use manylinux complaint CentOS version.
# For Windows, matrix.container remains undefined and the build runs on the host VM instead of within a container.
Expand Down Expand Up @@ -166,14 +166,24 @@ jobs:
with:
python-version: ${{ matrix.python-version }}

#$CUDA_PACKAGES="nvcc_11.7 cudart_11.7 visual_studio_integration"
- name: Windows Dependencies (CUDA)
if: runner.os == 'Windows'
shell: powershell
run: |
$CUDA_VERSION_FULL = "10.2.89"
$CUDA_REPO_PKG_REMOTE = "http://developer.download.nvidia.com/compute/cuda/10.2/Prod/network_installers/cuda_10.2.89_win10_network.exe"
$CUDA_REPO_PKG_LOCAL = "cuda_10.2.89_win10_network.exe"
$CUDA_PACKAGES = "nvcc_10.2 cudart_10.2"
$CUDA_VERSION_FULL="11.7.0"
$CUDA_REPO_PKG_REMOTE="http://developer.download.nvidia.com/compute/cuda/11.7.0/network_installers/cuda_11.7.0_windows_network.exe"
$CUDA_REPO_PKG_LOCAL="cuda_11.7.0_windows_network.exe"

echo "printing CUDA_REPO_PKG_REMOTE"
echo %CUDA_REPO_PKG_REMOTE%
echo $CUDA_REPO_PKG_REMOTE%
echo "printing CUDA_REPO_PKG_LOCAL"
echo %CUDA_REPO_PKG_LOCAL%
echo $CUDA_REPO_PKG_LOCAL
echo "printing CUDA_PACKAGES"
echo %CUDA_PACKAGES%
echo $CUDA_PACKAGES
# Download the cuda network installer
Invoke-WebRequest $CUDA_REPO_PKG_REMOTE -OutFile $CUDA_REPO_PKG_LOCAL | Out-Null
# Invoke silent install of CUDA (via network installer)
Expand All @@ -183,11 +193,16 @@ jobs:
if: runner.os == 'Windows'
env:
OPTIX_VERSION: ${{ matrix.optix-version }}
CUDACXX: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.7/bin/nvcc.exe
CUDA_PATH: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.7/
CudaToolkitDir: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.7/
run: |
pip install --upgrade setuptools setuptools_scm wheel numpy==1.19.5
mkdir build
cd build
cmake ../ -DCMAKE_CUDA_COMPILER="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2/bin/nvcc.exe" -DCUDA_TOOLKIT_ROOT_DIR="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2" -DPYTHON_VERSION="${{matrix.python-version}}"
echo "printing CUDACXX"
echo $CUDACXX
cmake ../ -DPYTHON_VERSION="${{matrix.python-version}}" -DCMAKE_CUDA_COMPILER="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.7/bin/nvcc.exe"
cmake --build . --config Release --target install
cd ..
cd install
Expand Down
114 changes: 75 additions & 39 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,22 @@
# ┌──────────────────────────────────────────────────────────────────┐
# │ Projects Settings │
# └──────────────────────────────────────────────────────────────────┘
cmake_minimum_required (VERSION 3.13)
cmake_policy( VERSION 3.13...3.14 )
project(NVISII CXX C)
cmake_minimum_required (VERSION 3.17)

MESSAGE(WARN CUDACXX is $ENV{CUDACXX} )
MESSAGE(WARN CUDA_PATH is $ENV{CUDA_PATH} )
MESSAGE(WARN CUDAHOSTCXX is $ENV{CUDAHOSTCXX} )
MESSAGE(WARN CUDAARCHS is $ENV{CUDAARCHS} )
MESSAGE(WARN CUDAToolkit_ROOT is $ENV{CUDAToolkit_ROOT})

project(NVISII CXX C CUDA)

MESSAGE(now we are past line 10)

set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
# set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/externals/owl/owl/cmake")


# Force 64 bit builds
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
Expand Down Expand Up @@ -94,7 +105,7 @@ set(MY_DEFINITION
# └──────────────────────────────────────────────────────────────────┘

# Build options go here... Things like "Build Tests", or "Generate documentation"...
option(NVCC_VERBOSE "verbose cuda -> ptx -> embedded build" OFF)
# option(NVCC_VERBOSE "verbose cuda -> ptx -> embedded build" OFF)

if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
# Enable c++11 and hide symbols which shouldn't be visible
Expand Down Expand Up @@ -281,16 +292,16 @@ set(IMGUI_SRC
# include_directories(${TBB_INCLUDE_DIR})

# cuda
if (${CUDA_TOOLKIT_ROOT_DIR})
message(INFO " CUDA_TOOLKIT_DIR set to ${CUDA_TOOLKIT_ROOT_DIR}")
endif()
# if (${CUDA_TOOLKIT_ROOT_DIR})
# message(INFO " CUDA_TOOLKIT_DIR set to ${CUDA_TOOLKIT_ROOT_DIR}")
# endif()

find_package(CUDA REQUIRED)
include_directories(${CUDA_TOOLKIT_INCLUDE})
find_program(BIN2C bin2c
HINTS
${CUDA_TOOLKIT_ROOT_DIR}/bin/
/usr/local/cuda/bin)
# find_package(CUDA REQUIRED)
# include_directories(${CUDA_TOOLKIT_INCLUDE})
# find_program(BIN2C bin2c
# HINTS
# ${CUDA_TOOLKIT_ROOT_DIR}/bin/
# /usr/local/cuda/bin)

# optix 7
include_directories(SYSTEM ${CMAKE_CURRENT_SOURCE_DIR}/include/nvisii/utilities/sutil/)
Expand Down Expand Up @@ -320,14 +331,17 @@ endif()

# owl
#set(SET_UP_CONFIGURATIONS_DONE 1)
#set(OWL_BUILD_SAMPLES OFF CACHE STRING "" FORCE)
#set(OWL_BUILD_ADVANCED_TESTS OFF CACHE STRING "" FORCE)
set(OptiX_INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/externals/owl/owl/)
set(OWL_BUILD_SAMPLES OFF CACHE STRING "" FORCE)
set(OWL_BUILD_ADVANCED_TESTS OFF CACHE STRING "" FORCE)
add_subdirectory(externals/owl EXCLUDE_FROM_ALL)
include(embed_ptx)

#include_directories(SYSTEM ${CMAKE_CURRENT_SOURCE_DIR}/externals/owl/)
#include_directories(SYSTEM ${CMAKE_CURRENT_SOURCE_DIR}/externals/owl/owl/include)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/externals/owl/owl/cmake)
include_directories(${OWL_INCLUDES})
include(configure_cuda)
# list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/externals/owl/owl/cmake)
# include_directories(${OWL_INCLUDES})
# include(configure_cuda)

# add libraries to a list for linking
set(
Expand All @@ -340,6 +354,8 @@ set(
#owl
${OWL_LIBRARIES}
assimp
OptiX::OptiX
owl::owl
)

set (
Expand Down Expand Up @@ -391,23 +407,23 @@ endif()
# # └──────────────────────────────────────────────────────────────────┘

# For compiling cuda kernels and embedding them as ptx
if (NVCC_VERBOSE)
set (NVCC_VERBOSE_FLAG --verbose)
endif()

macro(cuda_compile_and_embed output_var cuda_file)
set(var_name ${output_var})
cuda_compile_ptx(ptx_files ${cuda_file} OPTIONS --generate-line-info -use_fast_math -Xcudafe --diag_suppress=esa_on_defaulted_function_ignored --keep ${NVCC_VERBOSE_FLAG})
list(GET ptx_files 0 ptx_file)
set(embedded_file ${ptx_file}_embedded.c)
add_custom_command(
OUTPUT ${embedded_file}
COMMAND ${BIN2C} -c --padd 0 --type char --name ${var_name} ${ptx_file} > ${embedded_file}
DEPENDS ${ptx_file}
COMMENT "compiling (and embedding ptx from) ${cuda_file}"
)
set(${output_var} ${embedded_file})
endmacro()
# if (NVCC_VERBOSE)
# set (NVCC_VERBOSE_FLAG --verbose)
# endif()

# macro(cuda_compile_and_embed output_var cuda_file)
# set(var_name ${output_var})
# cuda_compile_ptx(ptx_files ${cuda_file} OPTIONS --generate-line-info -use_fast_math -Xcudafe --diag_suppress=esa_on_defaulted_function_ignored --keep ${NVCC_VERBOSE_FLAG})
# list(GET ptx_files 0 ptx_file)
# set(embedded_file ${ptx_file}_embedded.c)
# add_custom_command(
# OUTPUT ${embedded_file}
# COMMAND ${BIN2C} -c --padd 0 --type char --name ${var_name} ${ptx_file} > ${embedded_file}
# DEPENDS ${ptx_file}
# COMMENT "compiling (and embedding ptx from) ${cuda_file}"
# )
# set(${output_var} ${embedded_file})
# endmacro()

# ┌──────────────────────────────────────────────────────────────────┐
# │ Add source files │
Expand All @@ -431,12 +447,32 @@ set(HDR ${HDR} ${Externals_HDR})
# │ CUDA PTX │
# └──────────────────────────────────────────────────────────────────┘
# OPTIONS -Xcudafe --diag_suppress=esa_on_defaulted_function_ignored
cuda_compile_and_embed(ptxCode ${SRC_CU})
# compile_and_embed(ptxCode ${SRC_CU})

embed_ptx(
OUTPUT_TARGET
deviceCode_ptx
EMBEDDED_SYMBOL_NAMES
deviceCode_ptx
PTX_LINK_LIBRARIES
owl::owl
SOURCES
${SRC_CU}
)
set (
LIBRARIES
${LIBRARIES}
deviceCode_ptx
)

# ┌──────────────────────────────────────────────────────────────────┐
# │ NVISII Library │
# └──────────────────────────────────────────────────────────────────┘
cuda_add_library(nvisii_lib STATIC ${SRC} ${HDR} ${ptxCode} OPTIONS --expt-relaxed-constexpr -Xcudafe --diag_suppress=esa_on_defaulted_function_ignored)
add_library(nvisii_lib STATIC ${SRC} ${HDR} ${ptxCode}
# OPTIONS --expt-relaxed-constexpr -Xcudafe --diag_suppress=esa_on_defaulted_function_ignored
)
set_property(TARGET nvisii_lib PROPERTY CUDA_ARCHITECTURES OFF)

set_target_properties(nvisii_lib PROPERTIES POSITION_INDEPENDENT_CODE ON)
target_link_libraries(nvisii_lib ${LIBRARIES})
set_target_properties(nvisii_lib PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS true)
Expand Down Expand Up @@ -502,4 +538,4 @@ if(hasParent)
set(OWL_VIEWER_LIBRARIES ${OWL_VIEWER_LIBRARIES} PARENT_SCOPE)
set(OWL_HAVE_TBB ${OWL_HAVE_TBB} PARENT_SCOPE)
set(OWL_CXX_FLAGS ${OWL_CXX_FLAGS} PARENT_SCOPE)
endif()
endif()
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ For more information see our [ICLR workshop 2021 paper](https://arxiv.org/abs/21

[Documentation](https://nvisii.com) and [quick tutorial](https://youtu.be/vg7FN7YDUy0).


<!--
This library provides a simple, primarily python-user targeted, interface to rendering images of a virtual scene. Its key cornerstones are:

Expand Down
Loading