Finishing up Ray Tracing Framework
Pre-release
Pre-release
Release 0.15.0-Preview.3
SSRI shader
- Reduce primitive vertex memory and payload register usage by replacing vertex position with ray time to calculate the intersection position.
- Refactor geometry attribute for vertex and index data into 2 structures for easier data accessing. This is placed in a new file
STPGeometryAttributeFormat.hpp. - Fix some OptiX shader compiler flags, it should be using a physical architecture.
- Add a new public GLSL header
STPRayTracedIntersectionData.glslfor sharing SSRI data with each renderers. - Add check for the scene memory limit in
STPExtendedScenePipelineto make sure it does not exceed the maximum allowance of each shader.
General fixes and improvement
- Deprecate and remove
STPMemoryPoolto save memory. - Add a new smart device memory object
STPPinnedMemoryfor management of memory allocated bycudaMallocHost. - Improve documentation for
STPSingleHistogramFilter. - Don't need to check for last CUDA error when launching a kernel via
cuLaunchKernel. - Fix use of explicit template specialisation without declaration in the header, which is UB, in:
- STPTexture
- STPFrameBuffer
- Exclude structure definitions for types used in shaders only in
STPTextureInformationfor compatibility between NVRTC and other compilers. - using cleans up for various scene components.
- For NVRTC used in
STPTestRTCandSTPCommonCompiler, zero-init the log outputs for them to avoid printing garbage string. - Remove linking against CUBIN in
STPDeviceRuntimeProgrambecause CUDA does not support. - Disable representative fragment testing during normal rendering because this is not how it is supposed to be used.
- Add a new documentation entry regarding SSBO index usage.
Compiler-specific warnings and errors
- Avoid a signed-unsigned comparison in
STPWorldPipeline. - Ensure enum type for shader memory type in
STPExtendedScenePipelineprovided is valid. - Add extra parentheses in
STPScenePipelinefor clarity. - Add dependent template specifier in
STPNullablePrimitive. - Remove
TypeCountfromSTPTextureTypebecause it is no longer useful.
STPThreadPool
- Fix the thread pool for proper tasks completion before pool is destroyed.
- Fix a UB test case on thread pool when the pool is used after is has been destroyed.
- Improve test case for the thread pool.
- Remove
STPDeadThreadPoolexception. - Add a new license regarding our new thread pool implementation.
GL API consistency
- Add more GL compatibility types to
STPOpenGL. - Add GL vector types, which stay in a new file
STPGLVector.hppunder STPRealism. - Improve consistency for GL objects wrapper with GL specification, for:
- STPBuffer
- STPFrameBuffer
- STPImageParameter
- STPRenderBuffer
- STPSampler
- STPTexture