Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Add initial Vulkan support, master branch goes UNSTABLE #36098
To go full steam ahead towards Godot 4.0, it's now time to merge the WIP Vulkan port in the
We encourage contributors to refrain from doing extensive feature work during the transition period where @reduz will rework many of the engine's internals, and the rest of us will port the whole codebase to C++14. Trying to get features merged in this turmoil will likely result in rebase hell and frustration :)
After this merge and subsequent refactoring work, most unmerged PRs will also get merge conflicts which will not be trivial to solve. Once the initial refactoring pass has been done, we plan to address this by closing all older PRs (minus a few 3.2-focused exceptions), and asking their authors to re-do them if relevant, rebased on the current
-Added VulkanContext -Added an X11 implementation -Added a rendering device abstraction -added a Vulkan rendering device abstraction -Engine does not work, only shows Godot logo (run it from bin/)
* Implements a growing chunked allocator * Removed redudant methods get and getptr, only getornull is supported now.
-Texture renamed to Texture2D -TextureLayered as base now inherits 2Darray, cubemap and cubemap array -Removed all references to flags in textures (they will go in the shader) -Texture3D gone for now (will come back later done properly) -Create base rasterizer for RenderDevice, RasterizerRD
They should now allocate memory in blocks and reuse the same memory every time the item is cleared and redrawn. This should improve performance considerably.
- `vk_enum_string_helper.h` is a generated file taken from the SDK (Vulkan-ValidationLayers). - `vk_mem_alloc.h` is a library from GPUOpen: https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator