lwjglgamedev / vulkanbook

Online book which introduces the main concepts required to write graphics games or any other applications using Vulkan in Java by using the LWJGL library.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Using the upgraded variants of many Vulkan methods

Mjrlun opened this issue · comments

commented

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.