Prepare for Biome Interpolation
Release 0.6.3
Major changes to STPSingleHistogramFilter
- Move
defaultdeclared destroctor forSTPSingleHistogramFilterinto source code so compiler won't complain about using incomplete type of Pimpl. - Remove constructor of
STPSingleHistogramFilterto predict the size of the texture because it won't make any difference to the performance. NowSTPSingleHistogramFilteris trivally constructable. - Augment the data structure, now the output histogram is no longer bound to a particular STPSingleHistogramFilter instance, but rather, user can ask for a single histogram buffer where the output will then be stored.
- Split
STPSingleHistogramFilter::STPHistogramBufferwith two versions, being default-allocated and page-locked-allocated. The buffer passed to external will always be using page-locked allocator for fast device memory transfer.
General fix and improvement
- Refactor code base using new features in C++17 like conditional initialiser and structured binding,
- Enable move constructor/operator in
STPChunkandSTPChunkStorage. - Simplify class construction using initialiser list, for
STPRainDrop,STPSingleHistogramFilterandSTPFreeSlipGeneratorand variousSTPEnvironmentclasses. STPChunkwill now always allocate memory for internal texture during construction.- Fix some typos.
- Fix a detrimental bug that causes host memory to be freed before CUDA stream has finished execution. To resolve that we use CUDA stream host callback.
- Augment
STPPinnedMemoryPoolsuch that it can be used on pagable memory. To avoid confusion it has been renamed toSTPMemoryPooland use template parameter to denote the memory type of it.
Partial resolution to issue #21
- Use
remove_pointerto determine the base type forcudaStream_tinstead of hard coding. - Change the storage type in
STPChunkStoragefromunique_ptr<STPChunk>toSTPChunk. - Simplify chained function call to set compiler and linker flag in
STPDiversityGeneratorRTC.