Skip to content

add synchronization for async command buffer submission

So far, i've mostly extended VulkanDevice to have semaphore/fence support for async command buffer submission. While also using non unique synchronization primitives as the unique variants end up being worse for performance. Also I wrapped the vk::to_string function since it is horribly implemented and it is always inlined. Meaning that it being called in multiple functions drastically increases the size of those functions. Since this is vital render pipeline code, inlining such a large function actually makes performance worse as it means that less functions can exist in the cpu's L1-L3 cache. We might also consider making our own implementation since the vulkan.hpp implementation uses repeted string concat or large if blocks. This is also terrible for performance since it is a lot of very small allocations, a better alternative would be using a std::stringstream as a string builder and using std::map instead of if blocks.

Merge request reports

Loading