Should pointers be 64-bit?
まだ誰も着手していません。
- 主要言語
- Rust
- スター
- 3.4k
- フォーク
- 126
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
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.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
リンクされている PR #237 と、32 ビットポインタ、物理アドレス指定、シェーダーの整数幅、Rust の usize API についての issue の議論を確認することから始めます。論理演算のパフォーマンスを損なわずに 64 ビットターゲットをサポートできるかを判断し、実行可能な方向性、またはそれが現実的でない理由を文書化してください。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- rust
- 領域
- compilers, computer-graphics
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 20/100