vulkan icon indicating copy to clipboard operation
vulkan copied to clipboard

Vulkan 1.2

Open losinggeneration opened this issue 5 years ago • 9 comments

Originally posted by @cers000 in https://github.com/vulkan-go/vulkan/issues/33#issuecomment-601501892

The Vulkan 1.2 specification was launched on January 15th, 2020

As such, a new issue is probably a better place to track that than the issue for the missing 1.1 functions. Here's what's changed since 1.1:

Vulkan Version 1.2 promoted a number of key extensions into the core API:

  • [ ] VK_KHR_8bit_storage
  • [ ] VK_KHR_buffer_device_address
  • [ ] VK_KHR_create_renderpass2
  • [ ] VK_KHR_depth_stencil_resolve
  • [ ] VK_KHR_draw_indirect_count
  • [ ] VK_KHR_driver_properties
  • [ ] VK_KHR_image_format_list
  • [ ] VK_KHR_imageless_framebuffer
  • [ ] VK_KHR_sampler_mirror_clamp_to_edge
  • [ ] VK_KHR_separate_depth_stencil_layouts
  • [ ] VK_KHR_shader_atomic_int64
  • [ ] VK_KHR_shader_float16_int8
  • [ ] VK_KHR_shader_float_controls
  • [ ] VK_KHR_shader_subgroup_extended_types
  • [ ] VK_KHR_spirv_1_4
  • [ ] VK_KHR_timeline_semaphore
  • [ ] VK_KHR_uniform_buffer_standard_layout
  • [ ] VK_KHR_vulkan_memory_model
  • [ ] VK_EXT_descriptor_indexing
  • [ ] VK_EXT_host_query_reset
  • [ ] VK_EXT_sampler_filter_minmax
  • [ ] VK_EXT_scalar_block_layout
  • [ ] VK_EXT_separate_stencil_usage
  • [ ] VK_EXT_shader_viewport_index_layer

New Defines

  • [ ] VK_API_VERSION_1_2

New Enum Constants

None

New Enums

None

New Structures

  • [ ] VkPhysicalDeviceVulkan11Features
  • [ ] VkPhysicalDeviceVulkan11Properties
  • [ ] VkPhysicalDeviceVulkan12Features
  • [ ] VkPhysicalDeviceVulkan12Properties
  • [ ] VkPhysicalDevice8BitStorageFeatures
  • [ ] VkPhysicalDeviceBufferDeviceAddressFeatures
  • [ ] VkBufferDeviceAddressInfo
  • [ ] VkBufferOpaqueCaptureAddressCreateInfo
  • [ ] VkMemoryOpaqueCaptureAddressAllocateInfo
  • [ ] VkDeviceMemoryOpaqueCaptureAddressInfo
  • [ ] VkAttachmentDescription2
  • [ ] VkAttachmentReference2
  • [ ] VkSubpassDescription2
  • [ ] VkSubpassDependency2
  • [ ] VkRenderPassCreateInfo2
  • [ ] VkSubpassBeginInfo
  • [ ] VkSubpassEndInfo
  • [ ] VkPhysicalDeviceDepthStencilResolveProperties
  • [ ] VkSubpassDescriptionDepthStencilResolve
  • [ ] VkConformanceVersion
  • [ ] VkPhysicalDeviceDriverProperties
  • [ ] VkImageFormatListCreateInfo
  • [ ] VkPhysicalDeviceImagelessFramebufferFeatures
  • [ ] VkFramebufferAttachmentsCreateInfo
  • [ ] VkFramebufferAttachmentImageInfo
  • [ ] VkRenderPassAttachmentBeginInfo
  • [ ] VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures
  • [ ] VkAttachmentReferenceStencilLayout
  • [ ] VkAttachmentDescriptionStencilLayout
  • [ ] VkPhysicalDeviceShaderAtomicInt64Features
  • [ ] VkPhysicalDeviceShaderFloat16Int8Features
  • [ ] VkPhysicalDeviceFloatControlsProperties
  • [ ] VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures
  • [ ] VkPhysicalDeviceTimelineSemaphoreFeatures
  • [ ] VkPhysicalDeviceTimelineSemaphoreProperties
  • [ ] VkSemaphoreTypeCreateInfo
  • [ ] VkTimelineSemaphoreSubmitInfo
  • [ ] VkSemaphoreWaitInfo
  • [ ] VkSemaphoreSignalInfo
  • [ ] VkPhysicalDeviceUniformBufferStandardLayoutFeatures
  • [ ] VkPhysicalDeviceVulkanMemoryModelFeatures
  • [ ] VkDescriptorSetLayoutBindingFlagsCreateInfo
  • [ ] VkPhysicalDeviceDescriptorIndexingFeatures
  • [ ] VkPhysicalDeviceDescriptorIndexingProperties
  • [ ] VkDescriptorSetVariableDescriptorCountAllocateInfo
  • [ ] VkDescriptorSetVariableDescriptorCountLayoutSupport
  • [ ] VkPhysicalDeviceHostQueryResetFeatures
  • [ ] VkSamplerReductionModeCreateInfo
  • [ ] VkPhysicalDeviceSamplerFilterMinmaxProperties
  • [ ] VkPhysicalDeviceScalarBlockLayoutFeatures
  • [ ] VkImageStencilUsageCreateInfo

New Functions

  • [ ] vkGetBufferDeviceAddress
  • [ ] vkGetBufferOpaqueCaptureAddress
  • [ ] vkGetDeviceMemoryOpaqueCaptureAddress
  • [ ] vkCreateRenderPass2
  • [ ] vkCmdBeginRenderPass2
  • [ ] vkCmdNextSubpass2
  • [ ] vkCmdEndRenderPass2
  • [ ] vkCmdDrawIndirectCount
  • [ ] vkCmdDrawIndexedIndirectCount
  • [ ] vkGetSemaphoreCounterValue
  • [ ] vkWaitSemaphores
  • [ ] vkSignalSemaphore
  • [ ] vkResetQueryPool

losinggeneration avatar Apr 11 '20 07:04 losinggeneration

@losinggeneration @xlab @jclc Do you all want to work on this? Any incentive to do so? Discord?

nickswang avatar Sep 21 '20 19:09 nickswang

I would like to work on this. I'd like to see a regen (or whatever else is necessary) happen to get this to the most recent version of Vulkan

wilkesreid avatar Feb 20 '21 20:02 wilkesreid

Has there been ANY forward progress on this issue? This package is now horribly and unfortunately out of date.

octalide avatar Aug 16 '21 22:08 octalide

@octalide Sorry mate. Fully busy on the main job, there can be a chance I’ll take a look at this, during next few months.

xlab avatar Aug 17 '21 05:08 xlab

it might be helpful if someone who knows can produce a guide on updating the bindings from the latest upstream, then anyone in the community who has time could work on getting it sorted out. I've been hoping for a while now that this would get updated, but it seems like everyone's real busy.

nergdron avatar Feb 18 '22 02:02 nergdron

See #62 -- maybe someone can try it out on linux or windows? I will try it later myself at some point..

rcoreilly avatar May 12 '22 08:05 rcoreilly

Actually, I just did make in the current vulkan-go repository without updating the vulkan/*.h headers and it crashed in exactly the same way. So I reverted to the Oct 14, 2018 c-for-go (d57f9ec2a5f5456377e535ad9d81bb9b9b2797d9) and now it works in this 1.3.211.0 version of Vulkan in PR #62. See the UPDATING.md file in this PR for full details.

rcoreilly avatar May 12 '22 10:05 rcoreilly

I was actually just trying to update this myself yesterday, ended up filing some bugs with c-for-go upstream. for some reason the current version replaces all [u]int64 refs with [u]int32, which is the source of the crashes. in the mean time this workaround seems very helpful, would love to see this get merged so we have 1.3 support in Go. thanks @rcoreilly!

see: https://github.com/xlab/c-for-go/issues/120

nergdron avatar May 12 '22 11:05 nergdron

upstream just merged a ccv4 change and this seems to have solved a lot of the issues I was having updating this codebase. there's some outstanding errors with duplicate declarations that hopefully we can get resolved with upstream's help, but it looks like we may be able to move some of this forward again:

make && go build .
c-for-go -ccdefs -out .. vulkan.yml
  processing vulkan.yml done.
# github.com/vulkan-go/vulkan
./const.go:2055:6: PeerMemoryFeatureFlagBits redeclared in this block
	./const.go:1834:6: other declaration of PeerMemoryFeatureFlagBits
./const.go:2061:6: MemoryAllocateFlagBits redeclared in this block
	./const.go:1846:6: other declaration of MemoryAllocateFlagBits
./const.go:2067:6: ExternalMemoryHandleTypeFlagBits redeclared in this block
	./const.go:1855:6: other declaration of ExternalMemoryHandleTypeFlagBits
./const.go:2073:6: ExternalMemoryFeatureFlagBits redeclared in this block
	./const.go:1874:6: other declaration of ExternalMemoryFeatureFlagBits
./const.go:2079:6: ExternalSemaphoreHandleTypeFlagBits redeclared in this block
	./const.go:1925:6: other declaration of ExternalSemaphoreHandleTypeFlagBits
./const.go:2085:6: ExternalSemaphoreFeatureFlagBits redeclared in this block
	./const.go:1938:6: other declaration of ExternalSemaphoreFeatureFlagBits
./const.go:2091:6: SemaphoreImportFlagBits redeclared in this block
	./const.go:1916:6: other declaration of SemaphoreImportFlagBits
./const.go:2097:6: DescriptorUpdateTemplateType redeclared in this block
	./const.go:1804:6: other declaration of DescriptorUpdateTemplateType
./const.go:2103:6: ExternalFenceHandleTypeFlagBits redeclared in this block
	./const.go:1885:6: other declaration of ExternalFenceHandleTypeFlagBits
./const.go:2109:6: ExternalFenceFeatureFlagBits redeclared in this block
	./const.go:1897:6: other declaration of ExternalFenceFeatureFlagBits
./const.go:2109:6: too many errors

nergdron avatar Sep 01 '22 22:09 nergdron