vulkan
vulkan copied to clipboard
Vulkan 1.2
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 @xlab @jclc Do you all want to work on this? Any incentive to do so? Discord?
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
Has there been ANY forward progress on this issue? This package is now horribly and unfortunately out of date.
@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.
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.
See #62 -- maybe someone can try it out on linux or windows? I will try it later myself at some point..
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.
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
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