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

Experimental: Support SPV_KHR_untyped_pointers #1383

Open
alan-baker opened this issue Jul 18, 2024 · 0 comments
Open

Experimental: Support SPV_KHR_untyped_pointers #1383

alan-baker opened this issue Jul 18, 2024 · 0 comments

Comments

@alan-baker
Copy link
Collaborator

SPV_KHR_untyped_pointers provides similar functionality in SPIR-V to opaque pointers in LLVM. There is currently no corresponding Vulkan extension, but work in clspv can begin in the interim.

Necessary changes:

  • Supported SPIR-V storage classes:
    • StorageBuffer/PhysicalStorageBuffer
    • Uniform
    • Workgroup
  • Implicit pointer casts in affected storage classes can be left in place
  • SPIRVProducer needs to layout Workgroup/local data types
    • Support SPV_KHR_workgroup_memory_explicit_layout
    • Add workgroup to 8- and 16-bit storage options
    • Add workgroup scalar layout option
  • SPIRVProducer needs to generate new instructions
  • Allocate descriptors can disregard types in most cases to share more descriptors
    • Probably the untyped variable should just use a placeholder data type (I expect Vulkan to require some type on the variable)
    • Maybe use uint4 for simplicity to work with every storage class
  • Direct resource access might be less necessary
  • Others?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant