Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vulkan 1.2 #43

Open
89 tasks
losinggeneration opened this issue Apr 11, 2020 · 9 comments
Open
89 tasks

Vulkan 1.2 #43

losinggeneration opened this issue Apr 11, 2020 · 9 comments

Comments

@losinggeneration
Copy link

Originally posted by @cers000 in #33 (comment)

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
@nickswang
Copy link

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

@wilkesreid
Copy link

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

@octalide
Copy link

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

@xlab
Copy link
Member

xlab commented Aug 17, 2021

@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.

@nergdron
Copy link

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.

@rcoreilly
Copy link

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

@rcoreilly
Copy link

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.

@nergdron
Copy link

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: xlab/c-for-go#120

@nergdron
Copy link

nergdron commented Sep 1, 2022

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants