Setup Ray Tracing Environment
Pre-release
Pre-release
Release 0.15.0-Preview.1
Setup OptiX
- Add a CMake module finder for OptiX.
- Add
STPRendererErrorHandlerto handle API errors from OptiX.
Setup ray tracing shader
- Implement simple ray tracing shaders for ray-primitive intersection test.
- Refactor
STPCameraInformation.glslslightly for code reuse.
Runtime compiler
- Split
STPRuntimeCompilableintoSTPDeviceRuntimeBinaryandSTPDeviceRuntimeProgram. This is done to make future use of NVRTC for OptiX compilation easier.STPDeviceRuntimeBinaryis a wrapper over NVRTC and outputs nvrtcProgram.STPDeviceRuntimeProgramis a wrapper over CUDA driver API module manager and outputs CUmodule.
- The new runtime compilers are now stateless.
- Explicitly manage memory of all
const char*usingstd::string. - Move device compute capability query to
STPEngineInitialiser.
General fixes and improvement
- Simplify environment setup for SQLite and CUDA to use
find_packageinstead ofinclude. - Use
NDEBUGinstead of_DEBUGto check for build mode in source code to maintain C++ standard. - Remove flag
--fmad=falsefrom runtime compilers.
Config file template
- Refactor
STPAlgorithmDeviceInfoandSTPRealismInfo; remove redundant naming prefixes, enclose variables into appropriate namespaces. - Add information regarding OptiX directory to
STPRealismInfo. - Add
STPCoreInfo.h.incontaining information regarding the core engine and include directory for libraries.
Error handler
- Add
STPGenericErrorHandlerBlueprintas an extendable C API error handler. - All definitions are now inlined. Use of template specialisation previously without header declaration leads to undefined behaviour.
- Split the old
STPDeviceErrorHandlerintoSTPDeviceErrorHandlerfor CUDA call andSTPDatabaseErrorHandlerfor SQLite database call. - Capitalise all macros and rename to reduce verbosity, for example STPcudaCheckErr is renamed to STP_CHECK_CUDA. However it creates a huge diff since all uses of such macros needs to be renamed.
STPSmartDeviceObject
- Merge
STPSmartStreamandSTPSmartEventinto one file, calledSTPSmartDeviceObject. - Add
STPMemPool,STPTextureandSTPSurfaceas two new managed CUDA objects for CUDA memory pool, texture and surface objects respectively. - Remove tests for these CUDA objects because they are too trivial.