Should pointers be 64-bit?
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Rust
- Sterne
- 3.4k
- Forks
- 125
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
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->u32for logical ops - Add a custom SPIR-V type for
usizethat somehow gets inferred late - Customize
coreto addu32indexing
On the other hand, physical pointers in shaders are somewhat niche, especially with more progress towards better bindless extension.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit der Durchsicht des verknüpften PR #237 und der Diskussion im Issue über 32-Bit-Zeiger, physische Adressierung, Ganzzahlbreiten in Shadern und die usize-APIs von Rust. Ermittle, ob ein 64-Bit-Ziel unterstützt werden kann, ohne die Leistung logischer Operationen zu beeinträchtigen, und dokumentiere eine umsetzbare Richtung oder die Gründe, warum dies nicht praktikabel ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- rust
- Bereich
- compilers, computer-graphics
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 20/100