You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 add u32 indexing
On the other hand, physical pointers in shaders are somewhat niche, especially with more progress towards better bindless extension.
The text was updated successfully, but these errors were encountered:
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
usize
->u32
for logical opsusize
that somehow gets inferred latecore
to addu32
indexingOn the other hand, physical pointers in shaders are somewhat niche, especially with more progress towards better bindless extension.
The text was updated successfully, but these errors were encountered: