diff --git a/deps/Wisp-LFS b/deps/Wisp-LFS index c368f409..dd7d0680 160000 --- a/deps/Wisp-LFS +++ b/deps/Wisp-LFS @@ -1 +1 @@ -Subproject commit c368f409242801c54b387e39be8bc107bdf7ce7f +Subproject commit dd7d068098cb3a66bda1bf9043bce6fca508ae71 diff --git a/deps/fmt b/deps/fmt index 9d7b64a2..7ad3015f 160000 --- a/deps/fmt +++ b/deps/fmt @@ -1 +1 @@ -Subproject commit 9d7b64a2597a9adcdb79978e09f1042711163a4c +Subproject commit 7ad3015f5bc77eda28d52f820e6d89955bf0784a diff --git a/src/d3d12/d3d12_material_pool.cpp b/src/d3d12/d3d12_material_pool.cpp index 6eff74e8..65b62f2d 100644 --- a/src/d3d12/d3d12_material_pool.cpp +++ b/src/d3d12/d3d12_material_pool.cpp @@ -17,10 +17,10 @@ namespace wr { - D3D12MaterialPool::D3D12MaterialPool(D3D12RenderSystem & render_system) : + D3D12MaterialPool::D3D12MaterialPool(D3D12RenderSystem & render_system, size_t num_materials) : m_render_system(render_system) { - m_constant_buffer_pool = m_render_system.CreateConstantBufferPool(1_mb); + m_constant_buffer_pool = m_render_system.CreateConstantBufferPool(num_materials * sizeof(Material::MaterialData) * d3d12::settings::num_back_buffers); } D3D12MaterialPool::~D3D12MaterialPool() diff --git a/src/d3d12/d3d12_material_pool.hpp b/src/d3d12/d3d12_material_pool.hpp index f3ef87fd..2c3dbe24 100644 --- a/src/d3d12/d3d12_material_pool.hpp +++ b/src/d3d12/d3d12_material_pool.hpp @@ -25,7 +25,7 @@ namespace wr class D3D12MaterialPool : public MaterialPool { public: - explicit D3D12MaterialPool(D3D12RenderSystem& render_system); + explicit D3D12MaterialPool(D3D12RenderSystem& render_system, size_t material_count); ~D3D12MaterialPool() final; void Evict() final; diff --git a/src/d3d12/d3d12_renderer.cpp b/src/d3d12/d3d12_renderer.cpp index 9a4415b1..7b15d1e8 100644 --- a/src/d3d12/d3d12_renderer.cpp +++ b/src/d3d12/d3d12_renderer.cpp @@ -317,9 +317,9 @@ namespace wr return pool; } - std::shared_ptr D3D12RenderSystem::CreateMaterialPool(std::size_t size_in_bytes) + std::shared_ptr D3D12RenderSystem::CreateMaterialPool(std::size_t material_count) { - return std::make_shared(*this); + return std::make_shared(*this, material_count); } std::shared_ptr D3D12RenderSystem::CreateModelPool(std::size_t vertex_buffer_pool_size_in_bytes, std::size_t index_buffer_pool_size_in_bytes) diff --git a/src/d3d12/d3d12_renderer.hpp b/src/d3d12/d3d12_renderer.hpp index 97d8eddc..54cd3ae2 100644 --- a/src/d3d12/d3d12_renderer.hpp +++ b/src/d3d12/d3d12_renderer.hpp @@ -184,7 +184,7 @@ namespace wr void Resize(std::uint32_t width, std::uint32_t height); std::shared_ptr CreateTexturePool(); - std::shared_ptr CreateMaterialPool(std::size_t size_in_bytes); + std::shared_ptr CreateMaterialPool(std::size_t material_count); std::shared_ptr CreateModelPool(std::size_t vertex_buffer_pool_size_in_bytes, std::size_t index_buffer_pool_size_in_bytes); std::shared_ptr CreateConstantBufferPool(std::size_t size_in_bytes); std::shared_ptr CreateStructuredBufferPool(std::size_t size_in_bytes);