Releases: intel/GPGMM
Releases · intel/GPGMM
v0.1.2
What's Changed
New Features 🎉
- Always unlock released resource allocations. by @bbernhar in #918
- Add support for RESIDENCY_HEAP_FLAG_CREATE_LOCKED. by @bbernhar in #919
- Add GetResidencyManager to IResourceAllocation. by @bbernhar in #917
- Add GetResourceAllocator support to IResourceAllocation. by @bbernhar in #922
Bug fixes 🐛
- Fix check when final lock is released for resource allocations. by @bbernhar in #920
- Fix D3D12 device from leaking. by @bbernhar in #925
- Add EXPECT_REFCOUNT_EQ for D3D12 device at end of test. by @bbernhar in #926
Other Changes
- Reland "Add GetResidencyManager to IResourceAllocation. (#917)" by @bbernhar in #921
- Move GetResidencyManager to IResidencyHeap. by @bbernhar in #923
- Use std::unique_ptr for pool-allocated memory. by @bbernhar in #927
- Use GPGMM_TRY_ASSIGN on TrySubAllocateMemory. by @bbernhar in #928
- Make MemoryAllocator ref-counted. by @bbernhar in #929
- Move Unknown deletion into DeleteThis. by @bbernhar in #931
- Use ResultOrError for TryAllocateBlock. by @bbernhar in #930
- Shared pooled heap allocations within resource allocators. by @bbernhar in #932
- Reuse MemoryAllocationBase upon TryAllocateMemory. by @bbernhar in #933
- Reuse sub-allocation instead of re-creating. by @bbernhar in #934
- Eliminate heap alloc in DedicatedMemoryAllocator::TryAllocateMemory. by @bbernhar in #941
- Make ResidencyHeap thread-safe. by @bbernhar in #942
- Eliminate slab copies during allocation. by @bbernhar in #943
- Move resource allocation creation out. by @bbernhar in #944
- Keep resource allocator alive for buffers. by @bbernhar in #945
- Depreciate DebugName in descriptors. by @bbernhar in #946
- Add error handing for pool operations. by @bbernhar in #947
- Refactor pools to iterate as STL containers. by @bbernhar in #948
- Avoid re-allocation when returning to pool. by @bbernhar in #950
- Allow StableList to be enumerated as non-range. by @bbernhar in #951
- Add RESOURCE_ALLOCATOR_DESC::ExtraRequiredResourceFlags by @bbernhar in #953
- Avoid re-asking for device lost reason. by @bbernhar in #954
- Add operator+ support for StableList. by @bbernhar in #955
- Support operator+= for StableList. by @bbernhar in #956
- Reland "Minor clean-up of MemoryPool." by @bbernhar in #957
- Move Lock/Unlock to ResidencyHeap. by @bbernhar in #958
- Support exporting of committed resource allocations. by @bbernhar in #959
- Remove DebugName from RESOURCE_RESOURCE_ALLOCATION_DESC. by @bbernhar in #960
- Use full include path for Error.h by @bbernhar in #961
Full Changelog: v0.1.1...v0.1.2
v0.1.1
What's Changed
Breaking Changes 🛠
New Features 🎉
- Add device removed reason handling. by @bbernhar in #795
- Add RESIDENCY_FLAG_ALWAYS_IN_BUDGET support. by @bbernhar in #796
- Support re-attempt of resource creation on E_OUTOFMEMORY. by @bbernhar in #913
- Never evict mapped resource allocations. by @bbernhar in #916
Bug fixes 🐛
- Misc coverity fixes. by @bbernhar in #797
- Fix MaxResourceHeapSize not being honored. by @bbernhar in #803
- Apply ALLOCATOR_FLAG_ALWAYS_RESIDENT by default if NOT_RESIDENT is unsupported. by @bbernhar in #802
- Always re-align memory requests. by @bbernhar in #808
- Fix error returned by resource tier mismatch. by @bbernhar in #811
- Suppress logging of internal objects. by @bbernhar in #817
- Fixes to enable UE5.1 CitySample by @bbernhar in #825
- Fix un-init struct in CreateResourceHeapNotResident. by @bbernhar in #828
- Disallow creation of heaps that exceed adapter limits. by @bbernhar in #829
- Fix deadlock when creating unowned committed resources. by @bbernhar in #897
Other Changes
- Allow cmake install paths to be overridden. by @bbernhar in #794
- Roll third_party DEPS by @bbernhar in #791
- Log heap creation. by @bbernhar in #789
- Minor improvements to alignment mismatch logging. by @bbernhar in #798
- More fixes for coverity by @bbernhar in #800
- Skip eviction checks when budget wasn't updated during tests. by @bbernhar in #801
- Wire up allocation instances to logs. by @bbernhar in #804
- Minor heap creation improvements. by @bbernhar in #805
- Rename gpgmm_d3d12 to use backend types. by @bbernhar in #806
- Move printing of types to only when debugger is attached. by @bbernhar in #807
- Roll third_party DEPS by @bbernhar in #810
- Rename kMemoryAllocated to kObjectCreated. by @bbernhar in #809
- Inline EnsureInBudget by @bbernhar in #814
- Replace flag to check residency status in tests. by @bbernhar in #812
- Move event tracing into backend. by @bbernhar in #816
- Move resource stats and method into backend. by @bbernhar in #815
- Rename RESIDENCY_MANAGER_STATS fields. by @bbernhar in #819
- Rename MemorySegment => HeapSegment. by @bbernhar in #820
- Depreciate gpgmm header. by @bbernhar in #818
- RESIDENCY_FLAG_NEVER_UPDATE_BUDGET_ON_WORKER_THREAD => RESIDENCY_FLAG_DISABLE_BUDGET_UPDATES_ON_WORKER_THREAD by @bbernhar in #822
- Rename D3D12EventTraceReplay => D3D12MemoryTraceReplay by @bbernhar in #821
- Rename D3D-specific macros to use GPGMM-prefix. by @bbernhar in #824
- Use GPGMM-specific macros for event tracing. by @bbernhar in #823
- Refactor GPGMM_INVALID_IF => GPGMM_RETURN_INVALID_IF. by @bbernhar in #827
- More logging improvements. by @bbernhar in #826
- Roll third_party DEPS by @bbernhar in #830
- Rename platform headers. by @bbernhar in #832
- Minor refactor in ResourceAllocator. by @bbernhar in #833
- Refactoring D3D12 logging. by @bbernhar in #834
- Rename ALLOCATION_FLAG_DISABLE_RESIDENCY => ALLOCATION_FLAG_NEVER_RESIDENT and ALLOCATION_FLAG_WARN_ON_ALIGNMENT_MISMATCH => ALLOCATION_FLAG_ALWAYS_WARN_ON_ALIGNMENT_MISMATCH. by @bbernhar in #835
- Rename RESOURCE_ALLOCATOR_STATS => ALLOCATOR_STATS by @bbernhar in #836
- Rename WarningLog => WarnLog. by @bbernhar in #837
- Migrate error handlers to check for device lost. by @bbernhar in #838
- Move GetTypename to macro. by @bbernhar in #840
- Roll third_party DEPS by @bbernhar in #843
- Refactor the D3D12 API. by @bbernhar in #839
- Inherit RefCount in MemoryBase. by @bbernhar in #841
- Rename DebugResourceAllocator => ResourceAllocationTrackingAllocator. by @bbernhar in #842
- Roll third_party DEPS by @bbernhar in #846
- Roll third_party DEPS by @bbernhar in #847
- Remove build_with_chromium cases for tests. by @bbernhar in #853
- Make gpgmm_export.h optional. by @bbernhar in #854
- Fix spelling in gpgmm headers. by @bbernhar in #855
- Remove GPGMM_REFCOUNT_TYPE. by @bbernhar in #857
- Move budget events into cpp. by @bbernhar in #858
- Depreciate RESIDENCY_HEAP_INFO::IsCachedForResidency by @bbernhar in #856
- Rename RESIDENCY_FLAG_DISABLE_BUDGET_UPDATES_ON_WORKER_THREAD to RESIDENCY_FLAG_DISABLE_BACKGROUND_BUDGET_UPDATES. by @bbernhar in #859
- Remove unused forward declares from D3D12Test by @bbernhar in #860
- Clean-up comments in memory allocation and allocator. by @bbernhar in #861
- Remove from gpgmm_d3d12.h by @bbernhar in #862
- Rename MemoryAllocator to MemoryAllocatorBase. by @bbernhar in #863
- Rename MemoryAllocation to MemoryAllocationBase. by @bbernhar in #864
- Validate residency resource heap flags by @bbernhar in #865
- Update header guards to use project relative path. by @bbernhar in #866
- Move event messages into cpp. by @bbernhar in #867
- Rename ALLOCATION_METHOD => ALLOCATION_TYPE. by @bbernhar in #868
- Terminate multi-sampled resource allocators. by @bbernhar in #870
- Rename [Next|Prev|PowerOfTwo to [Upper|Lower]PowerOfTwo. by @bbernhar in https://github.com//pull/869
- Rename gpgmm_enable_logging_internal_objects => gpgmm_enable_logging_internal. by @bbernhar in #871
- Fix TryAllocateResource logging. by @bbernhar in #872
- Allow import of resource heaps. by @bbernhar in #873
- Fix D3D12ResourceAllocatorTests.CreateBuffer failure. by @bbernhar in #874
- Disable background budgets by default. by @bbernhar in #875
- Disable single heap type on UMA by default. by @bbernhar in #876
- Disable prefetching by default. by @bbernhar in #877
- Fix D3D12 resource and residency manager flag enums. by @bbernhar in #878
- Rename RequireResourceHeapPadding to ExtraRequiredResourcePadding. by @bbernhar in #879
- Default the creation of resources to being resident. by @bbernhar in #880
- Rename ALWAYS_IN_BUDGET => CREATE_IN_BUDGET and ALWAYS_RESIDENT => CREATE_RESIDENT. by @bbernhar in #881
- Rename DISABLE_UNIFIED_MEMORY => NEVER_USE_UNIFIED_MEMORY. by @bbernhar in #883
- Rename RESIDENCY_HEAP_STATUS fields. by @bbernhar in #882
- Rename status parameter in SetResidencyStatus. by @bbernhar in #886
- Return error results on validation checks. by @bbernhar in #887
- Determine residency heap size when unspecified. by @bbernhar in #885
- More clean-up to internal logging. by @bbernhar in #884
- Use error macro for validation. by @bbernhar in #888
- Move defaults where used. by @bbernhar in #889
- Convert sizes to printable units. by @bbernhar in #890
- Split errors from messages. by @bbernhar in #891
- Rename ALLOCATOR_ALGORITHM => RESOURCE_ALLOCATION_ALGORITHM. by @bbernhar in #8...
v0.1.0
What's Changed
Breaking Changes 🛠
- Fix formatting for recording enums. by @bbernhar in #758
- Replace GetStats with QueryStats. by @bbernhar in #759
- Make ReleaseMemory return HRESULT. by @bbernhar in #761
New Features 🎉
- Eliminate excessive ref-counts for imported resources. by @bbernhar in #753
- Add missing message ids to log messages. by @bbernhar in #766
- Improve CreateHeap out-of-memory error messages. by @bbernhar in #765
- Ignore MessageId in log messages when unknown. by @bbernhar in #768
- Emit debug message enum instead of ID. by @bbernhar in #773
- Add performance warnings to D3D12. by @bbernhar in #775
- Warn when over budget. by @bbernhar in #776
- Move alignment mismatch behind flag. by @bbernhar in #779
- Add ALLOCATOR_FLAG_ALWAYS_RESIDENT. by @bbernhar in #787
Bug fixes 🐛
- Fix enum ops failing builds from #758. by @bbernhar in #760
- Do not re-attempt if allocation failure is fatal. by @bbernhar in #764
- Fix error C2059 due to redefine of VK_DEFINE_HANDLE. by @bbernhar in #770
- Do not restrict available memory if NOT_RESIDENT is used. by @bbernhar in #771
- Fix dump test option writing out garbage trace file. by @bbernhar in #774
- Apply HEAP_FLAG_ALWAYS_IN_RESIDENCY by default. by @bbernhar in #785
- Decouple HEAP_FLAG_ALWAYS_IN_BUDGET from D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT. by @bbernhar in #786
- Fix dedicated allocations from using resource alignments for heaps. by @bbernhar in #792
Other Changes
- Add error logging for E_POINTER. by @bbernhar in #754
- Refactor message definitions into cpp. by @bbernhar in #755
- Rewrite libfuzzer buildfile for GN. by @bbernhar in #756
- Plumb message id to logs. by @bbernhar in #757
- Roll third_party DEPS by @bbernhar in #762
- Suppress zero-change budget or usage message logs. by @bbernhar in #767
- Handle device errors for API calls. by @bbernhar in #772
- Roll third_party DEPS by @bbernhar in #778
- Prefer current fence for async make resident. by @bbernhar in #777
- Move leak E2E tests at end. by @bbernhar in #781
- Add 10min timeout to E2E tests. by @bbernhar in #782
- Make all public DX objects inherit DebugObject. by @bbernhar in #780
- Add ALLOCATOR_FLAG_ALLOW_OVER_BUDGET flag. by @bbernhar in #783
- Roll third_party DEPS by @bbernhar in #784
Full Changelog: v0.0.9...v0.1.0
v0.0.9
What's Changed
Breaking Changes 🛠
- Remove WRL from gpgmm_d3d12 header. by @bbernhar in #739
- Replace RESIDENCY_DESC::IsUMA with RESIDENCY_FLAG_DISABLE_UNIFIED_MEMORY. by @bbernhar in #750
New Features 🎉
- Propagate backend error codes to front-end. by @bbernhar in #736
- Allow manual heap status tracking. by @bbernhar in #737
Bug fixes 🐛
- Fix log messages during CreateResourceAllocator. by @bbernhar in #740
- Fix EnqueueMakeResident from never being enabled. by @bbernhar in #743
- Exit early when importing a resource without allocation. by @bbernhar in #745
Other Changes
- Roll third_party DEPS by @bbernhar in #732
- Move revisions used by cmake fetchcontent into depfile. by @bbernhar in #735
- Disable thread write tests for 32-bit builds. by @bbernhar in #733
- Enable x86 32-bit builders. by @bbernhar in #719
- Re-do manual heap tracking by moving into ResidencyManager. by @bbernhar in #738
- Add device leak checks to missing workflows. by @bbernhar in #746
- Move CRT leak checks into gtest flag. by @bbernhar in #747
- Roll third_party DEPS by @bbernhar in #751
- Remove Mac/iOS Support from DEPS. by @bbernhar in #752
Full Changelog: v0.0.8...v0.0.9
v0.0.8
What's Changed
Breaking Changes 🛠
- Rename ALLOCATOR_FLAG_ALWAYS_COMMITED to ALLOCATOR_FLAG_ALWAYS_COMMITTED. by @bbernhar in #726
- Disable custom heaps when UMA is not supported. by @bbernhar in #729
New Features 🎉
- Add flag HEAP_FLAG_ALWAYS_IN_RESIDENCY. by @bbernhar in #727
- Improve error log messages. by @bbernhar in #730
Bug fixes 🐛
- Fix D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT from being never supported. by @bbernhar in #718
- Fix bug when creating resource allocator with residency but no adapter. by @bbernhar in #720
- Fix use-after-free with CreateCommittedResourceCallbackContext. by @bbernhar in #723
- Fix possible leak when committing a null allocation. by @bbernhar in #724
Other Changes
- Roll third_party DEPS by @bbernhar in #721
- Rename IUnknownImpl to Unknown. by @bbernhar in #722
- Handle nullptr checks for API calls consistently. by @bbernhar in #725
- Rename LogMessage* to Log. by @bbernhar in #728
- Raise severity of ReturnIfFailed error logs. by @bbernhar in #731
Full Changelog: v0.0.7...v0.0.8
v0.0.7
What's Changed
Breaking Changes 🛠
- Enable residency for imported resources. by @bbernhar in #709
- Move common interfaces to ::gpgmm by @bbernhar in #711
- Make ALLOCATOR_DESC::Adapter optional. by @bbernhar in #714
New Features 🎉
- Log to console on D3D failures. by @bbernhar in #697
- Process tasks using a same thread pool by @bbernhar in #693
- Report object to event-console output. by @bbernhar in #705
Bug fixes 🐛
- Fix leak when importing resources without allocation. by @bbernhar in #694
- Release leaked D3D allocations during testing. by @bbernhar in #696
- Suppress memory leak error on CreateImage failure. by @bbernhar in #698
- Fix log level mismatch for gtests. by @bbernhar in #704
- Make ResidencyManager::GetStats thread safe. by @bbernhar in #712
- Reland "Enable residency for imported resources. (#709)" by @bbernhar in #717
Other Changes
- Remove unused MemoryAllocation members. by @bbernhar in #680
- Document MVI MemoryAllocation Lifetime by @bjjones in #681
- Roll third_party DEPS by @bbernhar in #682
- Roll third_party DEPS by @bbernhar in #684
- Roll third_party DEPS by @bbernhar in #685
- Make ALLOCATOR_DESC::ResourceHeapTier optional. by @bbernhar in #688
- Add cmake build export targets. by @bbernhar in #689
- Roll third_party DEPS by @bbernhar in #690
- Roll third_party DEPS by @bbernhar in #691
- Roll third_party DEPS by @bbernhar in #692
- Roll third_party DEPS by @bbernhar in #695
- Roll third_party DEPS by @bbernhar in #699
- Roll third_party DEPS by @bbernhar in #700
- Roll third_party DEPS by @bbernhar in #701
- Reland "Process tasks using a same thread pool. (#693)" by @bbernhar in #703
- Add mutex when acquiring allocation. by @bbernhar in #706
- Roll third_party DEPS by @bbernhar in #707
- Refactor log event handling. by @bbernhar in #708
- Require arch type for cmake builders. by @bbernhar in #710
- Replace memcpy with more secure variant. by @bbernhar in #713
- Do not continue failing tests in workflow. by @bbernhar in #715
- Minor refactor to prepare for release. by @bbernhar in #716
Full Changelog: v0.0.6...v0.0.7
v0.0.6
What's Changed
Breaking Changes 🛠
- Use native wide character type for debug name. by @bbernhar in #652
- Clarify improve docs for RESIDENCY_STATUS. by @bbernhar in #656
- Rename CreateAllocator to CreateResourceAllocator. by @bbernhar in #661
- Decouple GPGMM interfaces from backend implementation. by @bbernhar in #662
- Rename RESIDENCY_INFO to RESIDENCY_STATS and RESOURCE_ALLOCATOR_INFO to RESOURCE_ALLOCATOR_STATS. by @bbernhar in #664
- Move min. record level into descs. by @bbernhar in #673
- Remove usage of std::function in MVI by @bjjones in #670
Other Changes
- Move memory alignment checks to build flag. by @bbernhar in #650
- Allow a custom refcount types. by @bbernhar in #651
- Use native character type for trace name. by @bbernhar in #653
- Use test name for trace file when using --dump. by @bbernhar in #654
- Add test to execute command lists over budget. by @bbernhar in #655
- Improve the D3D12 test harness for playback. by @bbernhar in #657
- Rename playback CLI options. by @bbernhar in #658
- Roll third_party DEPS by @bbernhar in #659
- Change enum to enum class. by @bbernhar in #660
- Remove src folder from public config. by @bbernhar in #663
- Do not export impl or src\gpgmm types. by @bbernhar in #665
- Move src/include to include. by @bbernhar in #666
- Roll third_party DEPS by @bbernhar in #667
- Roll third_party DEPS by @bbernhar in #668
- Define public classes as interfaces in gpgmm_d3d12.h by @bbernhar in #672
- Roll third_party DEPS by @bbernhar in #674
- Remove third_party/webnn from build. by @bbernhar in #675
- Revert "Remove third_party/webnn from build." by @bbernhar in #676
- Reland "Remove third_party/webnn from build." by @bbernhar in #677
- Roll third_party DEPS by @bbernhar in #678
Full Changelog: v0.0.5...v0.0.6
v0.0.5
What's Changed
Breaking Changes 🛠
- Remove Usage of std::set in ResidencySet by @bjjones in #547
- Make ResidencyManager::GetMemorySegmentGroup private. by @bbernhar in #585
- Make ResidencyManager::UpdateMemorySegment private. by @bbernhar in #588
- Rename RESIDENCY_DESC::EvictBatchSize to RESIDENCY_DESC::EvictSizeInBytes. by @bbernhar in #589
- Specify heap properties instead of heap type by @bbernhar in #591
- Rename RESIDENCY_DESC::VideoMemoryBudget to RESIDENCY_DESC::MaxPctOfVideoMemoryToBudget and RESIDENCY_DESC::Budget to RESIDENCY_DESC::MaxBudgetInBytes by @bbernhar in #597
- Rename allocator feature enums. by @bbernhar in #605
- Move Heap parameters into HEAP_DESC. by @bbernhar in #617
- Move ResourceAllocation::IsResident to Heap::IsResident and make it testing-only. by @bbernhar in #640
New Features 🎉
- Allow segment to be specified in CreateHeap. by @bbernhar in #510
- Move min. reservation to RESIDENCY_DESC. by @bbernhar in #596
- Support minimal viable GPGMM implementation (MVI). by @bbernhar in #592
- Report budget change amounts to debug log. by @bbernhar in #610
- Expose ALLOCATOR_ALGORITHM_DEDICATED to ResourceAllocator. by @bbernhar in #615
- Allow sub-allocated buffers within to use any allocation method. by @bbernhar in #620
- Automatically align ALLOCATOR_DESC::PreferredResourceHeapSize. by @bbernhar in #621
- Add ALLOCATION_FLAG_NEVER_FALLBACK for to ensure allocation method is being tested. by @bbernhar in #624
- Move residency options to RESIDENCY_FLAGS. by @bbernhar in #625
Bug fixes 🐛
- Detect UMA for unconfigured residency manager. by @bbernhar in #511
- Fix MaxResourceHeapSize value from being incorrectly specified. by @bbernhar in #534
- Fix overflow of slabs during sub-allocation. by @bbernhar in #537
- Explicity check if created heaps are within budget when required. by @bbernhar in #545
- Fix enable-assert causing GN gen failure. by @bbernhar in #568
- Disallow sub-allocation within for default heaps. by @bbernhar in #608
- Fix max resource heap tier from being incorrectly reported. by @bbernhar in #609
- Prevent backend leak detection from not reporting leaks. by @bbernhar in #611
- Fix event-based budget test when using real non-UMA adapter. by @bbernhar in #627
- Move re-capture from unit-test into workflow. by @bbernhar in #633
- Enable allocation for any heap type on tier 1 hardware. by @bbernhar in #635
- Do not track created non-resource heaps in residency cache by default. by @bbernhar in #649
Other Changes
- Remove isUMA from ResourceAllocator. by @bbernhar in #509
- Update Dawn API test integration. by @bbernhar in #513
- Supress TrySubAllocateMemory events when never allocate is enabled. by @bbernhar in #515
- Allow Heap to be COM-wrapped. by @bbernhar in #516
- Use unsigned integral type for RefCounted. by @bbernhar in #517
- Enable log level for all gtests. by @bbernhar in #518
- Attribute locked heaps toward residency usage. by @bbernhar in #519
- Fix OverBudget tests from never terminating. by @bbernhar in #512
- Roll WebNN. by @bbernhar in #520
- Depreciate ResidencyManager::InsertHeap and ResidencyManager::Evict. by @bbernhar in #521
- Make Heap::Heap private. by @bbernhar in #522
- Hookup RESIDENCY_DESC::IsUMA to D3D12EventTraceReplay. by @bbernhar in #523
- Roll third_party DEPS by @bbernhar in #524
- Depreciate Heap::As with ComPtr::As. by @bbernhar in #525
- Move FetchContent revisions into variables. by @bbernhar in #526
- Enable pool-allocation for VK backend. by @bbernhar in #527
- Enable sub-allocation with VK backend. by @bbernhar in #529
- Remove CMAKE_*_OUTPUT_DIRECTORY from being specified as PROJECT_SOURCE_DIR. by @bbernhar in #530
- Remove LinkedList from SlabCacheAllocator. by @bbernhar in #533
- Remove ALLOCATOR_DESC::IsUMA. by @bbernhar in #532
- Do not require versioned Vulkan dependency. by @bbernhar in #535
- Roll third_party DEPS by @bbernhar in #536
- Add residency manager fuzzing. by @bbernhar in #539
- Add API documentation to MemoryAllocationEvent. by @bbernhar in #543
- Use GetDeviceRemovedReason upon device lost error. by @bbernhar in #544
- Add retries when testing with residency fuzzer. by @bbernhar in #546
- Roll third_party DEPS by @bbernhar in #548
- Add owners file. by @bbernhar in #549
- Do not require Vulkan loader when building without tests. by @bbernhar in #551
- Add support for a reference stable vector. by @bbernhar in #542
- Add gpCreateImage support. by @bbernhar in #552
- Add option to pad resource heaps. by @bbernhar in #555
- Update Dawn integration by @bbernhar in #556
- Eliminate LinkedList from slab allocation. by @bbernhar in #554
- Clean-up CheckFeatureSupport. by @bbernhar in #557
- Enable VK budget extension. by @bbernhar in #558
- Remove extra exported include. by @bbernhar in #560
- Move end2end CRT leak tests into seperate workflow step. by @bbernhar in #561
- Reland "Replace LinkedList with StableList for GPU slab allocation. (#554)" by @bbernhar in #563
- Simplify MemoryPool interface. by @bbernhar in #559
- Remove depreciated APIs. by @bbernhar in #564
- Reland "Remove depreciated APIs. (#564)" by @bbernhar in #565
- Roll third_party DEPS by @bbernhar in #566
- Rename Standalone => Dedicated allocator. by @bbernhar in #569
- Fix ASSERT generation from not evaluating the condition during release builds. by @bbernhar in #570
- Roll third_party DEPS by @bbernhar in #571
- Remove unused MemoryPool dependency from d3d12::Heap. by @bbernhar in #572
- Make RefCounted in IUnknown-based objects private. by @bbernhar in #573
- Refactor ResidencyManager query info API. by @bbernhar in #574
- Fix MSVC assert code generation on for release builds. by @bbernhar in #575
- Move ResidencyList::Begin/End into private section. by @bbernhar in #576
- Remove enum flags dependency. by @bbernhar in #578
- Remove default-initialization from D3D descriptor structures. by @bbernhar in #579
- Make AllocationMethod::kUndefined default value. by @bbernhar in #580
- Roll third_party DEPS by @bbernhar in #581
- Remove ResourceAllocation::CreateResourceAllocation. by @bbernhar in #582
- Update auto roller by @bbernhar in #583
- Roll third_party DEPS by @bbernhar in #584
- Rename RESOURCE_ALLOCATION_DESC::RequestSizeInBytes to RESOURCE_ALLOCATION_DESC::SizeInBytes. by @bbernhar in #586
- Make ALLOCATION_DESC::HeapType optional. by @bbernhar in #587
- Consolidate adapter detection into CapsD3D12. by @bbernhar in #590
- Refactor ResidencyManager::UpdateMemorySegments. by @bbernhar in #593
- Use ResidencyManager for segment group lookup. by @bbernhar in https://github.com/...
v0.0.4
What's Changed
Breaking Changes 🛠
New Features 🎉
- Enable heap playback. by @bbernhar in #494
- Track allocated slab blocks using non-atomic increment. by @bbernhar in #500
- Emit warning when over budget. by @bbernhar in #501
Bug fixes 🐛
Other Changes
- Eliminate block malloc/free from slab allocator. by @bbernhar in #485
- Remove path triggers from required workflows. by @bbernhar in #488
- Fix casting warnings on 32-bit builds. by @bbernhar in #487
- Specify CMake install path by artifact kind. by @bbernhar in #486
- Improve debug name error handling. by @bbernhar in #489
- Fix re-capture when using residency manager. by @bbernhar in #490
- Fix ResourceAllocation offset type mismatch for MSVC. by @bbernhar in #491
- Make ScopedTraceBufferInTLS thread safe. by @bbernhar in #493
- Move creation of heaps in-budget into CreateHeap. by @bbernhar in #495
- Fix MSVC conversion warnings. by @bbernhar in #496
- Rename leak detection build options. by @bbernhar in #497
- Always snapshot objects for event tracing. by @bbernhar in #499
- Fix trace index path for CTest builds. by @bbernhar in #502
- Roll third_party DEPS by @bbernhar in #503
Full Changelog: v0.0.3...v0.0.4
v0.0.3
What's Changed
Breaking Changes 🛠
- Rename ResourceFragmentationLimit => MemoryFragmentationLimit. by @bbernhar in #244
- Remove ALLOCATOR_CHECK_DEVICE_LEAKS. by @bbernhar in #282
- Replace ALLOCATOR_MESSAGE_SEVERITY with D3D12_MESSAGE_SEVERITY. by @bbernhar in #308
- Rename ALLOCATOR_DESC::TotalResourceBudgetLimit to ALLOCATOR_DESC::Budget and ALLOCATOR_DESC::EvictLimit to ALLOCATOR_DESC::EvictBatchSize. by @bbernhar in #311
- Handle NULL resource allocator in CreateAllocator. by @bbernhar in #323
- Cache resource sizes in multiples of alignment. by @bbernhar in #423
- Remove MaxVideoMemoryBudget and Budget from ALLOCATOR_DESC. by @bbernhar in #482
- Enable event tracing for residency. by @bbernhar in #481
New Features 🎉
- Fuzz D3D12 resource allocations. by @bbernhar in #230
- Remove redudant residency set data. by @bbernhar in #250
- Add type name information to memory allocators. by @bbernhar in #253
- Enable async MakeResident. by @bbernhar in #263
- Reland "Display video memory budget metric per segment. (#261)" by @bbernhar in #264
- Flush event trace by scope. by @bbernhar in #267
- Enable CRT based leak detection in GTests. by @bbernhar in #270
- Initial Vulkan support. by @bbernhar in #273
- Grow slabs by factor. by @bbernhar in #271
- Add residency manager leak test. by @bbernhar in #284
- Enable GPGMM_ENABLE_ASSERT_ON_WARNING for non-event logs. by @bbernhar in #289
- Add support to skip counter events. by @bbernhar in #291
- Keep video memory budget up-to-date when tracing. by @bbernhar in #295
- Add external property to Heap. by @bbernhar in #296
- Specify slab block size based on request. by @bbernhar in #304
- Allow MSAA vs non-MSAA aligned heaps. by @bbernhar in #317
- Enable D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT. by @bbernhar in #316
- Disable slab growth when over budget. by @bbernhar in #312
- Restrict pre-fetching to smaller heaps. by @bbernhar in #345
- Align UBOs within resources when unspecified. by @bbernhar in #361
- Add --dump option to write all events to disk. by @bbernhar in #387
- Filter out zero counts from metrics. by @bbernhar in #402
- Support explicitly creating ResidencyManager. by @bbernhar in #454
- Update budget by OS budget change events. by @bbernhar in #471
Bug fixes 🐛
- Make BufferAllocator thread safe. by @bbernhar in #235
- Fix resource allocator fuzzer from incorrectly initializing. by @bbernhar in #237
- Fix SlabMemoryAllocator failures. by @bbernhar in #246
- Always re-use free slabs instead of creating new ones. by @bbernhar in #249
- Fix leak in memory cache. by @bbernhar in #266
- Fix crash when flushing events to disk at exit. by @bbernhar in #268
- Disable recording unless tracing is configured. by @bbernhar in #269
- Rename D3D12 backend types. by @bbernhar in #280
- Add and use SafeDivison on input. by @bbernhar in #281
- Fix bug calculating sub-allocated memory size in test. by @bbernhar in #293
- Fix up MemoryPool and ResourceHeapAllocator typenames. by @bbernhar in #292
- Fix JSONSerializer::Serialize of D3D12_HEAP_PROPERTIES. by @bbernhar in #298
- Return S_FALSE when re-inserting into a residency set. by @bbernhar in #297
- Fix crash in ~Log when using GPGMM_ENABLE_ASSERT_ON_WARNING. by @bbernhar in #299
- Re-enable pre-fetching for grown slabs. by @bbernhar in #301
- Fix level from being correctly set in D3D12EventTraceReplay. by @bbernhar in #313
- Restrict D3D12EventTraceReplay.AllocationPerf to a single iteration. by @bbernhar in #315
- Update residency budget after UpdateVideoMemorySegments. by @bbernhar in #326
- Fix ASSERT in CreateBufferOversized. by @bbernhar in #328
- Apply CLI params in capture_replay_tests. by @bbernhar in #340
- Fix leak from ResourceAllocator::Trim(). by @bbernhar in #343
- Add MSAA allocator types to GetInfo(). by @bbernhar in #344
- Move ASSERT handler into GPGMM namespace. by @bbernhar in #367
- Fix ALLOCATION_FLAG_ALWAYS_CACHE_SIZE from disabling sub-allocation. by @bbernhar in #399
- Align within resource to power-of-two by default when none specified in resource descriptor. by @bbernhar in #400
- Fix non-standalone Windows CMake build. by @bbernhar in #408
- Fix bug during trace shutdown. by @bbernhar in #425
- Fix MSVC cast warning in SlabMemoryAllocator::ComputeSlabSize. by @bbernhar in #427
- Fix uint64_t to double cast with SafeDivide. by @bbernhar in #426
- Fix ASSERT when using slab + fixed pool. by @bbernhar in #432
- Rounding error fix for SafeDivide. by @bbernhar in #442
- Fix AV after moving a LinkedList. by @bbernhar in #447
- Fix disabling pre-fetch when under coverage threshold. by @bbernhar in #448
- Fix SlabMemoryAllocator crash when near OOM. by @bbernhar in #449
- Fix AV upon merging events from exited thread. by @bbernhar in #456
- Fix overflow in SetMaxResource* related functions. by @bbernhar in #460
- Allocation metrics were not updated upon ReleaseMemory(). by @bbernhar in #472
- Move size-aware LinkedList into seperate type. by @bbernhar in #475
Other Changes
- Enable gpgmm_enable_assert_on_warning on debug builds. by @bbernhar in #231
- Remove ResourceAllocator::GetResidencyManager. by @bbernhar in #233
- Remove unused GPGMM_NO_DISCARD macro. by @bbernhar in #234
- Roll third_party/dawn/ 8d9d132f7..a8b651a7c (3412 commits; 5 trivial …rolls) by @bbernhar in #232
- Make CreateResource thread safe. by @bbernhar in #236
- Make EventTrace access thread safe. by @bbernhar in #238
- Move trace event phase definitions into header. by @bbernhar in #239
- Report correct fragmentation when directly committing resources. by @bbernhar in #240
- Roll third_party/webnn_native/ 9add656df..e0bc84d74 (50 commits; 2 trivial rolls) by @bbernhar in #243
- Remove gpgmm_enable_recording_until_termination. by @bbernhar in #242
- Fix trace regeneration. by @bbernhar in #241
- Depreciate MaxResourceSizeForPooling and GetResidencyManager(). by @bbernhar in #245
- Expose GetMemory directly to ResourceAllocation. by @bbernhar in #248
- Rename VideoMemoryEvictSize => EvictLimit and budget, internally. by @bbernhar in #247
- Split residency tests out and do not re-use allocators between tests. by @bbernhar in #251
- Remove Heap::UpdateResidency in favor of ResourceAllocation::UpdateResidency. by @bbernhar in #252
- Fix GetErrorMessage output. by @bbernhar in #254
- Build doxygen documentation. by @bbernhar in #255
- Log resource heap misalignments. by @bbernhar in #257
- Log sub-allocation failures. by @bbernhar in #258
- Display video memory budget metric per segment. by @bbernhar in #261
- Verify memory allocators cannot leak, ever. by @bbernhar in #259
- Elim...