Commit Graph

47 Commits

Author SHA1 Message Date
Adam Sawicki
2898fadfb4 Changed default heap size to 64 MB 2021-02-16 17:37:09 +01:00
Adam Sawicki
322bba84d9 Updated copyright headers to year 2021 2021-02-16 17:32:24 +01:00
Adam Sawicki
6a963fbdbb Added Allocator::CreateResource2 2020-11-04 15:23:30 +01:00
Adam Sawicki
ebf4f8de09 Improvement in predefined value of D3D12MA_DXGI_1_4 macro 2020-11-04 14:21:40 +01:00
Adam Sawicki
3fe3ee520d Added Allocator::CreateResource1, AllocateMemory1 2020-11-04 14:16:44 +01:00
Adam Sawicki
3bd061da36 More imrovements and additions in documentation. 2020-11-03 16:55:25 +01:00
Adam Sawicki
06619626d0 Improved documentation. 2020-11-03 15:38:08 +01:00
Adam Sawicki
169895d529 Change logic of Allocator::CreateResource so that an interface other than ID3D12Resource can be requested
Wrote test for it.
2020-08-18 17:44:10 +02:00
Adam Sawicki
8d07472608 Add documentation chapter "Resource aliasing (overlap)" 2020-08-18 17:14:45 +02:00
Adam Sawicki
290272a156 Add documentation chapter "Virtual allocator" 2020-07-16 17:59:18 +02:00
Adam Sawicki
158f78588d Minor fixes in documentation. 2020-07-15 14:02:15 +02:00
Adam Sawicki
87fd45b038 Fixed coding style 2020-06-15 17:58:54 +02:00
Adam Sawicki
8dfdc0e7cd Add virtual allocator - struct VIRTUAL_BLOCK_DESC, VIRTUAL_ALLOCATION_DESC, VIRTUAL_ALLOCATION_INFO, class VirtualBlock, function CreateVirtualBlock.
Also updated Doxyfile to Doxygen 1.8.18.
2020-06-15 17:43:54 +02:00
Adam Sawicki
4fec3e1627 Set higher warning level, check successful CPU allocation with an assert
Also fixes in documentation and other minor
2020-05-25 17:52:53 +02:00
Adam Sawicki
aff54a5d8a Remove configuration macro D3D12MA_ALLOW_SHADER_ATOMICS and automatic usage of D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS 2020-05-05 12:12:20 +02:00
Adam Sawicki
397a9b3973 Fixes for some platforms 2020-04-30 14:44:11 +02:00
Adam Sawicki
79db457378 Add memory reservation feature - functions Allocator::SetDefaultHeapMinBytes, Pool::SetMinBytes 2020-04-07 20:35:26 +02:00
Adam Sawicki
5da8ad2f1f Fixes in documentation
Changed wording so that usage of D3D12_HEAP_FLAG_ALLOW_ONLY_* flags is now recommended as default.
2020-04-02 18:07:53 +02:00
Adam Sawicki
693cc74ee2 Add Pool::GetName, SetName 2020-04-02 17:45:13 +02:00
Adam Sawicki
f2bea63545 Add Pool::CalculateStats 2020-04-02 17:15:19 +02:00
Adam Sawicki
0218a51676 Add missing automatic usage of D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS in custom pools
Also improvements in documentation.
2020-04-02 16:59:13 +02:00
Adam Sawicki
af68fdcdd3 Add custom pools
Added struct POOL_DESC, class Pool, function Allocator::CreatePool, member ALLOCATION_DESC::CustomPool.
2020-04-02 16:12:14 +02:00
Adam Sawicki
11f5b8471e Add Allocation::CreateAliasingResource 2020-03-25 17:41:35 +01:00
Adam Sawicki
329246a969 Minor fixes in documentation 2020-03-24 17:27:45 +01:00
Adam Sawicki
90e561ad59 Merge branch 'master' into WasZeroInitialized 2020-03-24 17:19:38 +01:00
Adam Sawicki
93c2ba283e Add member ALLOCATION_DESC::ExtraHeapFlags, remove parameter Allocator::AllocateMemory heapFlags (compatibility breaking!)
Makes it possible to specify custom HeapFlags when allocating memory or creating resources. These are always created as separate allocations / committed resources.
Also added tests for it.
2020-03-19 11:59:16 +01:00
Adam Sawicki
41325ccbda Fix automatic usage of D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS; allow additional heapFlags in Allocator::AllocateMemory 2020-03-19 11:25:46 +01:00
Adam Sawicki
9e4e8dde51 Renaming after merge - members of struct Budget are now called UsageBytes, BudgetBytes
JSON dump format also changed to reflect that.
2020-03-18 16:54:20 +01:00
Jialong Zhai
ddb000cb19
VS2015 fix 2020-03-18 18:14:20 +08:00
Adam Sawicki
64d78cd8a6 Implement Allocation::WasZeroInitialized 2020-03-16 19:36:15 +01:00
Adam Sawicki
33a596f18f Minor improvement: Additional protection with asserts in Allocation::PackedData setters. 2020-03-16 16:40:29 +01:00
Adam Sawicki
38f53e8e4f Add internal structure Allocation::PackedData with bit fields to optimize memory size of Allocation class. 2020-03-16 16:36:37 +01:00
Adam Sawicki
c7f78c8c08 Add support for small texture alignment
Added configuration macro D3D12MA_USE_SMALL_RESOURCE_PLACEMENT_ALIGNMENT.
2020-03-11 16:48:40 +01:00
Adam Sawicki
f1e1c1b8d2 Update date in copyright header comments to year 2020 2020-02-07 15:38:52 +01:00
Adam Sawicki
1d4143fd50 Refactoring: Use constructor and destructor in Allocation class
PoolAllocator supports that. Needed to only use parameter pack to pass arguments to constructor.
2020-01-31 14:48:41 +01:00
Adam Sawicki
b706d13cb8 Fixes in documentation 2020-01-27 17:34:49 +01:00
Adam Sawicki
2a210dbf13 Fix documentation of Allocator::AllocateMemory function 2020-01-23 13:24:28 +01:00
Adam Sawicki
9cd14c31dc Allocate Allocation objects using PoolAllocator 2020-01-22 16:33:39 +01:00
Adam Sawicki
0db8cd41e4 Add big feature of budget management - struct Budget, Allocator::GetBudget, ALLOCATION_FLAG_WITHIN_BUDGET, ALLOCATOR_DESC::pAdapter.
Added macro D3D12MA_DXGI_1_4, D3D12MA_D3D12_HEADERS_ALREADY_INCLUDED.
Some bug fixes and improvements.
2019-11-20 14:07:21 +01:00
Adam Sawicki
87528d084a Update documentation with a warning about memory containing garbage data not zeros 2019-11-05 16:29:45 +01:00
Adam Sawicki
6deedf96b5 Add ALLOCATOR_FLAG_ALWAYS_COMMITTED, remove debug macro D3D12MA_DEBUG_ALWAYS_COMMITTED
Also fixed nasty bug with uninitialized member of Allocation class.
2019-10-23 15:21:21 +02:00
Adam Sawicki
42693ff059 Improvements in JSON dump - now prints Flags, Layout, CreationFrameIndex, more detailed Type.
Added function Allocator::SetCurrentFrameIndex.
2019-10-11 16:20:45 +02:00
Adam Sawicki
5855a7ffd1 - Added Allocation::GetResource. Allocation now remembers associated ID3D12Resource and keeps reference to it.
- Added Allocator::BuildStatsString, FreeStatsString for generation of a dump of internal library state, including list of all allocations and their parameters, in a JSON format.
- Added Allocator::AllocateMemory to allocate a piece of heap without any associated resource. Useful for aliasing.
2019-10-11 11:11:28 +02:00
Adam Sawicki
8341ef44a4 Add Allocator::CalculateStats, structure Stats, StatInfo 2019-09-30 14:31:13 +02:00
Adam Sawicki
9548aad552 Release v1.0.0. 2019-09-02 13:05:22 +02:00
Adam Sawicki
d9b594b0fb Prepare initial release 2019-07-23 13:21:08 +02:00
Adam Sawicki
eb4b1716aa Prepare initial release 2019-07-23 12:44:28 +02:00