Closed yeetari closed 3 years ago
Btw I can't seei ImGui. Not on Windows and neither on Ubuntu. I will debug this using RenderDoc.
It works now on Ubuntu 20.04 LTS!
The validation error has indeed been resolved by your recent changes! :+1:
Works both on Linux and Windows for me :+1:
BufferResource::upload_data()
to allow for dynamically changing data at runtimeshared_ptr
andunique_ptr
)This PR adds support to the render graph for dynamic buffers. This allows for changeable octree geometry at runtime, which a small demo has been created for. ImGUI support has also been rewritten to work with the render graph. It now fully uses the render graph for the two buffers and stage, however it still relies on textures being done externally. This brings around a 33% FPS improvement - and that's with the bigger octree. With the original octree, I get an FPS improvement of about 73%.
In terms of the internals of the render graph, the two
std::unordered_map
s used to map resources&stages to physical resources&stages has been removed. ARenderResource
now holds ashared_ptr<PhysicalResource>
and aRenderStage
now holds aunique_ptr<PhysicalStage>
. The reason aRenderResource
holds a shared pointer is because, in the future, multiple render resources will be able to point to the same physical resource. This makes accessing the physical resource much easier, and removes the need for the uglycreate
functions.Also, instead of storing just a
std::vector<std::unique_ptr<RenderResource>>
, each different type of resource (BufferResource
,TextureResource
, etc.) now has its own vector. This makes it faster to iterate each type of resource.