Open
Description
With the current 32-bit pointer width, raw physical pointers are unconvenient at best and open up a bunch of pitfalls at worst.
Technically, pointers should be 64-bit, at least when any physical addressing model is enabled.
This is problematic because of the preferred integer width of 32-bit in shaders, while Rust assumes usize
in most APIs.
Is there any way we could switch to a 64-bit target without compromising performance?
For example
- Add optimization passes to convert
usize
->u32
for logical ops - Add a custom SPIR-V type for
usize
that somehow gets inferred late - Customize
core
to addu32
indexing
On the other hand, physical pointers in shaders are somewhat niche, especially with more progress towards better bindless extension.
Metadata
Metadata
Assignees
Labels
No labels