·
2 commits
to master
since this release
First public implementation (more clear and correct than official Vulkan docs of the extension) of SPV_KHR_shader_invocation_reorder in HLSL, see our spirv_intrinsics headers in nbl/builtin/hlsl
Solves: microsoft/DirectXShaderCompiler#8226
What's Changed
New Features
- Nabla can be consumed as a CMake package and has a target to make a redistributable SDK
- CI now builds Nabla redistributables for Win32 which can be downloaded
- Nabla Shader Compiler Boost.Wave preprocessor reworked, has a cache and extremely verbose runtime error logging
- Some examples now compile runtime shaders in parallel and use pipeline cache
- Mitsuba Scene Loader resurrected
- Material Compiler v3 Frontend AST complete
- Monte Carlo Sampling HLSL library with unit tests and benchmarks
- CDF HLSL sampler
- IES profile loader and viewer example
- Alias Table Builder and HLSL sampler
- Resampled Importance Sampling compatible BxDFs and Light Samplers
- Statically Polymorphic HLSL Path Tracer
- Example 40 a WIP Path Tracer
- SER / Shader Invocation Reorder support
- OBB calculation for Polygon Geometries
- Vertex Welding for Polygon Geometries
- Iridescent Fresnel (thin two-layer diffractive) implementation for BRDFs and BSDFs
- Statically Polymorphic adaptive Simpson Quadrature in HLSL
- octahedral mapping HLSL header
- Cache for Owen Scrambled Sobol Sequence generation
Improvements
- Far more performant and correct Spherical Triangle (Arvo 1997) and Spherical Rectangle (Urena 2013) sampling on the GPU
- Experimental DXC and SPIR-V Tools legalization flags which reduce compile times by a factor of 10 via limiting unrolling before legalization
- refactored the
material_compiler3/CNodePoolto have its functionality inCObjectPool - New Curve fit fast approximations for
acos(x)/sin(x) - DXC and SPIR-V Tools Updates
- experimental and draft
ICPUSceneresource - add
getGeometryExclusiveCounttoIMorphTargets IRayTracingPipelineSBT validation- add
interm_getImageViewInHierarchytoIAssetLoader - HLSL binary searches can now take stateful comparators (mostly to track accesses for CDF sampler)
- reworked
concepts/accessorsfor images - add some scalar-component-wise matrix operators
- Owen Scrambled Sobol Sequence generation can be parallelized now
Bugfixes
- bugs in BLAS validation
- Commandbuffer tracking of resources used by a command if more than 32k shared pointers referenced
- Smooth Normal recomputation for Polygon Geometries is now correct
- Cleaner Example shutdowns in event of a failure
ICPUGeometryCollection::validlogic- rework
exportForBLASmethod into aCBLASExporterandIBLASExporterclasses respectively forICPUGeometryCollectionandIGeometryCollectionrespectively
Deprecations / removals
- old
matrix4SIMDandmatrix3x4SIMDclasses - old
core::quaternionnow HLSL version only used SStridedRange<BufferType>moved tocorenamespaceIBottomLevelAccelerationStructure::BUILD_FLAGS::ALLOW_DATA_ACCESS_BITremoved_BITfrom enum nameICPUTopLevelAccelerationStructure::getBuildRangeInforemoved- morton code HLSL and C++ reworked and unified
Full Changelog: v0.9.1.0...v0.10.0.0