google / google/clspv

Experimental: Support SPV_KHR_untyped_pointers

Open
#1,383 0 comments 3 reactions 0 assignees View on GitHub
enhancement
Dominant language
LLVM
Stars
729
Forks
110
Avg merge
17h 51m
Merged PRs (30d)
23

Description

[SPV_KHR_untyped_pointers](https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/main/extensions/KHR/SPV_KHR_untyped_pointers.html) 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?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.