[Migrated] `OpConvertUToPtr` support
まだ誰も着手していません。
- 主要言語
- Rust
- スター
- 3.4k
- フォーク
- 126
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
Issue automatically imported from old repo: https://github.com/EmbarkStudios/rust-gpu/issues/767
Old labels: t: enhancement,s: qptr may fix
Originally creatd by expenses on 2021-10-13T09:10:25Z
I started looking into how OpConvertUToPtr can be implemented - initially for RuntimeArrays. Something like this works well, but is not generic:
unsafe fn load_f32_runtime_array_from_handle(handle: u64) -> &'static mut RuntimeArray<f32> {
asm!(
"%f32 = OpTypeFloat 32",
"%runtime_array = OpTypeRuntimeArray %f32",
"%runtime_array_ptr = OpTypePointer Generic %runtime_array",
"%result = OpConvertUToPtr %runtime_array_ptr {handle}",
"OpReturnValue %result",
handle = in(reg) handle,
options(noreturn)
)
}
I know that @msiglreith implemented loading resources from handles in https://github.com/EmbarkStudios/rust-gpu/compare/main...msiglreith:glace, but it looks like that requires a lot of codegen changes - ideally we should keep things at the asm! layer if possible.
Is there a way to make the above function generic over T, or will this require a few codegen changes?
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
Issue の asm! の例とリンクされている glace の比較から始めて、リソースハンドルと OpConvertUToPtr が現在どのように扱われているかを理解します。汎用サポートを asm! 層にとどめられるか、または codegen の変更が必要かを判断します。この範囲が確定し、要求されたサポートが実装された時点で作業は完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- rust
- 領域
- compilers, computer-graphics
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 25/100