[Migrated] `OpConvertUToPtr` support
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Rust
- Sterne
- 3.4k
- Forks
- 126
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
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?
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 dem asm!-Beispiel im Issue und dem verlinkten glace-Vergleich, um zu verstehen, wie Ressourcen-Handles und OpConvertUToPtr derzeit behandelt werden. Ermittle, ob die generische Unterstützung auf der asm!-Ebene verbleiben kann oder Änderungen am Codegen erfordert; die Arbeit ist abgeschlossen, wenn dieser Umfang festgelegt und die angeforderte Unterstützung implementiert 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
- 25/100