vulkan-go / vulkan

Vulkan API bindings for Go programming language
MIT License
742 stars 55 forks source link

Vulkan 1.2 #43

Open losinggeneration opened 4 years ago

losinggeneration commented 4 years ago

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:

New Defines

New Enum Constants

None

New Enums

None

New Structures

New Functions

nickswang commented 3 years ago

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

wilkesreid commented 3 years ago

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 commented 3 years ago

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

xlab commented 3 years ago

@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 commented 2 years ago

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 commented 2 years ago

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

rcoreilly commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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