Skip to content

Concurrency and Memory Managment

Compare
Choose a tag to compare
@devshgraphicsprogramming devshgraphicsprogramming released this 19 Nov 19:17
001a200

NOTE: This release replaces 0.3.0-alpha11, the address allocator API has changed slightly to account for a few things. This is the last release before the Asset Pipeline merge.

Made IReferenceCounted atomically thread-safe.

Added:

  1. AlignedBase to force alignment and override new/delete for aligned alloc, and derived most classes from it.
  2. aligned_allocator with typedef core::allocator replacement for std::allocator
  3. Typedefs for most STL containers using the aligned allocator
  4. Default Streaming buffers for staging upload and downloads to/from the GPU
  5. Address Allocators abstracted away from the representation of the resource from which sub-allocations take place
  6. Address Allocator adaptors
  7. GeneralpurposeAddressAllocator that is 4x faster than glibc malloc in a single thread
  8. EventDeferredHandler, which is basically a GPU object garbage collector triggered by API fences
  9. Mapped Memory Range Flushing
  10. Example 31.SkinningDataBenchmark
  11. Object caches
  12. New CMake build system
  13. Arrow, Cylinder and Cone meshbuffer generation
  14. GLSL-source function generation class
  15. Debug line drawing extension
  16. Simplified and updated examples
  17. Threw out the old irr::os global static thread-unsafe timer (also inlined ITimer)
  18. BaW bugfix backports (setScale)

Removed:

  1. IEmptySceneNode
  2. Various ISceneManager legacy functions

Others:

  • matrixSIMD4 implementation and fixes
  • Disallow MSAA non-PoT sample counts (Vulkan requires)
  • Bound Buffer Range tracking bug fixed
  • Got rid of copy ctors in most IReferenceCounted derived classes (esp. MeshBuffer)
  • Improved the robustness and performance of ext::BlurPerformer
  • Mesh requantization loop bug
  • PLY/STL import/export improved