vulkanizer
VulkanMemoryAllocator
vulkanizer | VulkanMemoryAllocator | |
---|---|---|
6 | 11 | |
545 | 2,383 | |
- | 1.1% | |
0.0 | 8.2 | |
23 days ago | 2 days ago | |
C++ | C | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
vulkanizer
-
Two-Pass Occlusion Culling - Blog Post
You can find its implementation on my GitHub page and you can follow me on Twitter for more graphics related stuff.
-
[Part 7] Update of my Vulkan renderer: LODs, Multiple different meshes, Memory Allocator, Render architecture and more
You can follow my progress on Twitter and Git. You can find more screenshots and videos over there.
- [Part 4] Update of my Vulkan toy renderer: Mesh Shader Pipeline, Reversed-Z Depth Buffer, SPIRV-Reflect and many more
-
Part 3 update of my new Vulkan toy renderer. More info in comments.
You can follow my journey on Twitter and GitHub.
-
Part 2 update of my new toy Vulkan renderer
Part 2 update of my new toy Vulkan renderer: Implemented Programmable Vertex Fetching, Vertex size is significantly smaller now (12 Bytes), Normals use only two 8 bit vector components where the third component gets reconstructed in the shader, Vertex positions and UVs are 2 Bytes in size, started using VK_KHR_push_descriptor which is much nicer to work with compared to traditional descriptor sets. Sebastian Aaltonen gave a very good explanation for Programmable Vertex Fetching. Normals use only two 8 bit vector components where the third component is reconstructed in the shader. You can follow my journey on Twitter and Git.
-
I started implementing modern Vulkan renderer
I recently started working on my toy Vulkan renderer. The plan is to implement many modern graphics and Vulkan features along the way. As a starting point I made a single mesh renderer and basic CPU/GPU profiler. You can follow my journey on Twitter and Git.
VulkanMemoryAllocator
-
Why do I need to load VMA vulkan functions dynamically?
Hello - working on a Vulkan renderer and I ran into a topic I don't understand. I use the Vulkan Memory Allocator and upon updating my local targeted Vulkan SDK to 1.3.250 from 1.3.204, I receive exactly the same error as this user: https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/issues/280 Error: The procedure entry point vkGetDeviceBufferMemoryRequirements could not be located in the DLL.
-
Managing Vertex Buffers
For problem 1 I would recommend looking into Vulkan Memory Allocator: https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator The general idea is to allocate large chunks of memory, then sub-allocate out of those when buffers are required. This is nice for several reasons: - Memory allocation can be slow and involve system calls. Sub-allocating does not require system calls - Your memory will be more cache-friendly as all your buffers will be relatively adjacent - There is a finite number of unique allocations you can have. Performing larger allocations keeps your usage lower
-
[Part 7] Update of my Vulkan renderer: LODs, Multiple different meshes, Memory Allocator, Render architecture and more
Integrated Vulkan Memory Allocator, making all GPU memory allocations much easier to work with.
-
Is it a good idea to use VMA for memory management for production?
Seems like it was initially added more than 2 years ago, they really should release more often :P
-
Vulkan 1.3 released
Use VMA, originally created by AMD, never worry about device memory and device memory alignment again.
-
Low bandwidth using memcpy
I am using VMA for memory allocation with the VMA_MEMORY_USAGE_GPU_TO_CPU usage flag. That means that the flags VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT and VK_MEMORY_PROPERTY_HOST_CACHED_BIT are already set.
-
Need advices over OpenGL/Vulkan abstraction
Repo for Vulkan Memory mangement (AMD): https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator
-
Deleting staging buffer after copying to image causes weird artifacts in texture mapping
Since it's a header-only lib, you could always try cloning the latest from [GitHub](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator) and see if the problem continues with that version.
-
Allocating multi-layered images with a huge amount of layers
Alternatively, you could just use an existing allocator library, a popular choice is VMA: https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator
-
Memory management doubts
Personally, I'd recommend (VMA)[https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator] if you don't want to deal with all of this yourself.
What are some alternatives?
SoftwareRenderer - Software rendering engine with PBR. Built from scratch on C++.
volk - Meta loader for Vulkan API
tinyrenderer - A brief computer graphics / rendering course
buddy_alloc - A single header buddy memory allocator for C & C++
drmingw - Postmortem debugging tools for MinGW.
doon-vk - Personal exploration of the Vulkan API
meshoptimizer - Mesh optimization library that makes meshes smaller and faster to render
bdwgc - The Boehm-Demers-Weiser conservative C/C++ Garbage Collector (bdwgc, also known as bdw-gc, boehm-gc, libgc)
HybridRenderingEngine - Clustered Forward/Deferred renderer with Physically Based Shading, Image Based Lighting and a whole lot of OpenGL.
vulkan-guide - Introductory guide to vulkan.
GamePlay - Open-source, cross-platform, C++ game engine for creating 2D/3D games.
SPP