DynamicUploadHeap::DynamicUploadHeap(IMemoryAllocator &Allocator, bool bIsCPUAccessible, class RenderDeviceD3D12Impl* pDevice, size_t InitialSize) : m_Allocator(Allocator), m_pDeviceD3D12(pDevice), m_bIsCPUAccessible(bIsCPUAccessible), m_RingBuffers(STD_ALLOCATOR_RAW_MEM(GPURingBuffer, GetRawAllocator(), "Allocator for vector<GPURingBuffer>")) { m_RingBuffers.emplace_back(InitialSize, Allocator, pDevice->GetD3D12Device(), m_bIsCPUAccessible); }
Texture1D_D3D11 :: Texture1D_D3D11(IReferenceCounters *pRefCounters, FixedBlockMemoryAllocator &TexViewObjAllocator, RenderDeviceD3D11Impl *pRenderDeviceD3D11, const TextureDesc& TexDesc, const TextureData &InitData /*= TextureData()*/) : TextureBaseD3D11(pRefCounters, TexViewObjAllocator, pRenderDeviceD3D11, TexDesc, InitData) { auto D3D11TexFormat = TexFormatToDXGI_Format(m_Desc.Format, m_Desc.BindFlags); auto D3D11BindFlags = BindFlagsToD3D11BindFlags(m_Desc.BindFlags); auto D3D11CPUAccessFlags = CPUAccessFlagsToD3D11CPUAccessFlags(m_Desc.CPUAccessFlags); auto D3D11Usage = UsageToD3D11Usage(m_Desc.Usage); UINT MiscFlags = MiscTextureFlagsToD3D11Flags(m_Desc.MiscFlags); auto *pDeviceD3D11 = pRenderDeviceD3D11->GetD3D11Device(); D3D11_TEXTURE1D_DESC Tex1DDesc = { m_Desc.Width, m_Desc.MipLevels, m_Desc.ArraySize, D3D11TexFormat, D3D11Usage, D3D11BindFlags, D3D11CPUAccessFlags, MiscFlags }; std::vector<D3D11_SUBRESOURCE_DATA, STDAllocatorRawMem<D3D11_SUBRESOURCE_DATA>> D3D11InitData( STD_ALLOCATOR_RAW_MEM(D3D11_SUBRESOURCE_DATA, GetRawAllocator(), "Allocator for vector<D3D11_SUBRESOURCE_DATA>") ); PrepareD3D11InitData(InitData, Tex1DDesc.ArraySize * Tex1DDesc.MipLevels, D3D11InitData); ID3D11Texture1D *ptex1D = nullptr; HRESULT hr = pDeviceD3D11->CreateTexture1D(&Tex1DDesc, D3D11InitData.size() ? D3D11InitData.data() : nullptr, &ptex1D); m_pd3d11Texture.Attach(ptex1D); CHECK_D3D_RESULT_THROW( hr, "Failed to create the Direct3D11 Texture1D" ); }
CommandListManager::CommandListManager(RenderDeviceD3D12Impl *pDeviceD3D12) : m_pDeviceD3D12(pDeviceD3D12), m_DiscardedAllocators(STD_ALLOCATOR_RAW_MEM(DiscardedAllocatorQueueElemType, GetRawAllocator(), "Allocator for deque<DiscardedAllocatorQueueElemType>")) { }