Skip to content

Finishing up Ray Tracing Framework

Pre-release
Pre-release

Choose a tag to compare

@stephen-hqxu stephen-hqxu released this 28 Oct 19:29
6987332

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.glsl for sharing SSRI data with each renderers.
  • Add check for the scene memory limit in STPExtendedScenePipeline to make sure it does not exceed the maximum allowance of each shader.

General fixes and improvement

  • Deprecate and remove STPMemoryPool to save memory.
  • Add a new smart device memory object STPPinnedMemory for management of memory allocated by cudaMallocHost.
  • 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 STPTextureInformation for compatibility between NVRTC and other compilers.
  • using cleans up for various scene components.
  • For NVRTC used in STPTestRTC and STPCommonCompiler, zero-init the log outputs for them to avoid printing garbage string.
  • Remove linking against CUBIN in STPDeviceRuntimeProgram because 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 STPExtendedScenePipeline provided is valid.
  • Add extra parentheses in STPScenePipeline for clarity.
  • Add dependent template specifier in STPNullablePrimitive.
  • Remove TypeCount from STPTextureType because 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 STPDeadThreadPool exception.
  • 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.hpp under STPRealism.
  • Improve consistency for GL objects wrapper with GL specification, for:
    • STPBuffer
    • STPFrameBuffer
    • STPImageParameter
    • STPRenderBuffer
    • STPSampler
    • STPTexture