Using the upgraded variants of many Vulkan methods
Mjrlun opened this issue · comments
Is your feature request related to a problem? Please describe.
Apparently, Vulkan 1.3, 1.2, and 1.1 add lots of "Version 2" methods. Many of them have finer synchronization, and thus are faster. Some just allow finer specification of the object, or the mass-submission of that command. The only possible issue is incompatibility with Vulkan 1.3.
Apparently, the current versions of LWJGL 3 do not have the fullest extent of these newer methods, so keep an ear out for minor versions, and of course LWJGL 4.
Describe the solution you'd like
Update all of the chapters within the book to use these "Version 2" methods with Vulkan 1.3/1.2/1.1 (ouch).
Here's a complete list of them:
(VK11)
- vkBindBufferMemory2
- vkBindImageMemory2
- vkGetImageMemoryRequirements2
- vkGetBufferMemoryRequirements2
- vkGetImageSparseMemoryRequirements2
- vkGetImageSparseMemoryRequirements2 (Array Version)
- vkGetPhysicalDeviceFeatures2
- vkGetPhysicalDeviceProperties2
- vkGetPhysicalDeviceFormatProperties2
- vkGetPhysicalDeviceImageFormatProperties2
- vkGetPhysicalDeviceQueueFamilyProperties2
- vkGetPhysicalDeviceQueueFamilyProperties2 (Array Version)
- vkGetPhysicalDeviceMemoryProperties2
- vkGetPhysicalDeviceSparseImageFormatProperties2
- vkGetPhysicalDeviceSparseImageFormatProperties2 (Array Version)
- vkGetDeviceQueue2
(VK12)
- vkCreateRenderPass2
- vkCmdBeginRenderPass2
- vkCmdNextSubpass2
- vkCmdEndRenderPass2
- vkCreateRenderPass2
(VK13)
- vkCmdSetEvent2
- vkCmdResetEvent2
- vkCmdWaitEvents2
- vkCmdWaitEvents2 (Array Version)
- vkCmdPipelineBarrier2
- vkCmdWriteTimestamp2
- vkQueueSubmit2
- vkCmdCopyBuffer2
- vkCmdCopyImage2
- vkCmdCopyBufferToImage2
- vkCmdCopyImageToBuffer2
- vkCmdBlitImage2
- vkCmdResolveImage2
- vkCmdBindVertexBuffers2
- vkCmdBindVertexBuffers2 (Array Variant)
Additional context
Vulkan Discord made me do it
I will not be able to make such a big change in the book. In case there is a specific need for finer synchronization the best approach (to avoid changing everything) would be to use thos methods in that new chapter.