summaryrefslogtreecommitdiffstats
path: root/Common/interface
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2018-06-22 16:14:43 +0000
committerEgor Yusov <egor.yusov@gmail.com>2018-06-22 16:14:43 +0000
commitf0c5879b396a9d04d98f3e68dcbeeb4b05e0f430 (patch)
tree0534e03e92cdc4155953d0347db008beb70f88e1 /Common/interface
parentImproved shader resource binding memory allocation in D3D12 backend: replaced... (diff)
downloadDiligentCore-f0c5879b396a9d04d98f3e68dcbeeb4b05e0f430.tar.gz
DiligentCore-f0c5879b396a9d04d98f3e68dcbeeb4b05e0f430.zip
Improved SRB data allocation in D3D11 backend; removed AdaptiveFixedBlockAllocator
Diffstat (limited to 'Common/interface')
-rw-r--r--Common/interface/AdaptiveFixedBlockAllocator.h87
1 files changed, 0 insertions, 87 deletions
diff --git a/Common/interface/AdaptiveFixedBlockAllocator.h b/Common/interface/AdaptiveFixedBlockAllocator.h
deleted file mode 100644
index 8ca035c4..00000000
--- a/Common/interface/AdaptiveFixedBlockAllocator.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright 2015-2018 Egor Yusov
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS.
- *
- * In no event and under no legal theory, whether in tort (including negligence),
- * contract, or otherwise, unless required by applicable law (such as deliberate
- * and grossly negligent acts) or agreed to in writing, shall any Contributor be
- * liable for any damages, including any direct, indirect, special, incidental,
- * or consequential damages of any character arising as a result of this License or
- * out of the use or inability to use the software (including but not limited to damages
- * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
- * all other commercial damages or losses), even if such Contributor has been advised
- * of the possibility of such damages.
- */
-
-#pragma once
-
-#include "../../Primitives/interface/MemoryAllocator.h"
-#include "../../Platforms/Basic/interface/DebugUtilities.h"
-#include "FixedBlockMemoryAllocator.h"
-
-namespace Diligent
-{
- // Adaptive allocator that can function as a raw memory allocator or as
- // fixed block memory allocator. In the fixed block memory allocator mode,
- // the block size is determined by the size of the first allocation
- class AdaptiveFixedBlockAllocator : public IMemoryAllocator
- {
- public:
- AdaptiveFixedBlockAllocator(IMemoryAllocator &RawMemAllocator, Uint32 NumBlocksPerAllocation) :
- m_RawMemAllocator(RawMemAllocator),
- m_pFixedBlockAllocator(nullptr, STDDeleterRawMem<FixedBlockMemoryAllocator>(RawMemAllocator)),
- m_NumBlocksPerAllocation(NumBlocksPerAllocation)
- {
- // Initialize allocator when we get the fist allocation request and know allocation size
- }
-
- // Allocates block of memory
- virtual void* Allocate(size_t Size, const Char* dbgDescription, const char* dbgFileName, const Int32 dbgLineNumber)override final
- {
- if (m_NumBlocksPerAllocation > 1)
- {
- if( !m_pFixedBlockAllocator )
- {
- // Create fixed block allocator
- auto *pRawMem = m_RawMemAllocator.Allocate(sizeof(FixedBlockMemoryAllocator), "Memory for FixedBlockMemoryAllocator", __FILE__, __LINE__);
- m_pFixedBlockAllocator.reset( new(pRawMem) FixedBlockMemoryAllocator(m_RawMemAllocator, Size, m_NumBlocksPerAllocation) );
- }
-
- return m_pFixedBlockAllocator->Allocate(Size, dbgDescription, dbgFileName, dbgLineNumber);
- }
- else
- {
- // Use default raw allocator
- return m_RawMemAllocator.Allocate(Size, dbgDescription, dbgFileName, dbgLineNumber);
- }
- }
-
- // Releases memory
- virtual void Free(void *Ptr)override final
- {
- if (m_NumBlocksPerAllocation > 1)
- {
- VERIFY_EXPR(m_pFixedBlockAllocator);
- m_pFixedBlockAllocator->Free(Ptr);
- }
- else
- {
- VERIFY_EXPR(!m_pFixedBlockAllocator);
- m_RawMemAllocator.Free(Ptr);
- }
- }
-
- private:
- IMemoryAllocator &m_RawMemAllocator;
- Uint32 m_NumBlocksPerAllocation = 0;
- std::unique_ptr<FixedBlockMemoryAllocator, STDDeleterRawMem<FixedBlockMemoryAllocator> > m_pFixedBlockAllocator;
- };
-}