Attempted replacement of PerlinNoise with FastNoise2 library, but reverted it back because of no ARM support for M1 Macs (see FastNoise2 issue)
Graphics libraries:
Fixed runtime errors in GPU profiling builds with METHANE_GPU_PROFILING_ENABLED=ON:
DirectX GPU timestamps re-calibration issue leading to GPU ranges shifting was fixed.
Fixed command list execution waiting threads synchronisation in Profiling builds in Typography tutorial.
Fixed resources retaining in command lists. Retained resources were incorrectly cleared on CommandList::Reset(), while they should be cleared on CommandList::Commit().
Fixed DirectX descriptor heaps allocations after Context::Reset() by always using deferred heap allocation in all cases. Deferred heap initialisation flag was removed, since it became unconditionally deferred.
Fixed sporadic hang in CommandQueueTrackingBase::WaitForExecution()
Fixed sporadic crash on destruction of CommandQueueTrackingBase with proper shutdown procedure called from destructor of derived class.
Fixed Vulkan build and some initialisation errors on MacOS.
Tests:
All unit tests were updated to support breaking changes in Catch v3.
Point<T,size> wrapper class was extended with workarounds of MacOS & ARM specific bugs in HLSL++ integer vector comparison and division operators (see 1 and 2).
Logging of Point, Rect and RectSize values was added in DataTypes unit tests.
External libraries:
External dependencies management via Git submodules was replaced with CPM.cmake package manager. No submodules anymore - it greatly simplifies external library updates!
All externally dependent repositories are downloaded to CPM cache directory during CMake configuration stage, to Build/Output/ExternalsCache by default (it can be changed with CMake option CPM_SOURCE_CACHE).
Methane Kit v0.6 Post-Release Hot-Fixes
PerlinNoise
withFastNoise2
library, but reverted it back because of no ARM support for M1 Macs (see FastNoise2 issue)METHANE_GPU_PROFILING_ENABLED=ON
:CommandList::Reset()
, while they should be cleared onCommandList::Commit()
.Context::Reset()
by always using deferred heap allocation in all cases. Deferred heap initialisation flag was removed, since it became unconditionally deferred.CommandQueueTrackingBase::WaitForExecution()
CommandQueueTrackingBase
with proper shutdown procedure called from destructor of derived class.Point<T,size>
wrapper class was extended with workarounds of MacOS & ARM specific bugs in HLSL++ integer vector comparison and division operators (see 1 and 2).Point
,Rect
andRectSize
values was added inDataTypes
unit tests.Build/Output/ExternalsCache
by default (it can be changed with CMake optionCPM_SOURCE_CACHE
).README.md
description of the external dependencies was added inExternals
directory.CMakeLists.txt
was simplified by moving all compiler configuration options toCMake/MethaneBuildOptions.cmake
.