Malformed SPIRV after assignment to mutable reference
Offen
Dieses Issue hat noch niemand übernommen.
bug
rustlantis
- Vorherrschende Sprache
- Rust
- Sterne
- 3.4k
- Forks
- 125
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Issue originally found by rustlantis.
This reduced example:
#![no_std]
use spirv_std::spirv;
#[spirv(compute(threads(1)))]
pub fn fn1(#[spirv(storage_buffer, descriptor_set = 0, binding = 0)] mut addr: &mut f32) {
addr = addr;
(*addr) = 0.0;
}
Results in invalid SPIR-V:
error: malformed SPIR-V (in OpStore: undefined ID %33)
|
= note: while lowering SPIR-V module to SPIR-T (spirt::spv::lower)
= note: input SPIR-V module was saved to /home/michal/rust-gpu/target/spirv-builder/spirv-unknown-vulkan1.1/release/deps/sky_shader.spirt-lower-from-spv-input.spv
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 damit, das reduzierte Rust-Beispiel mit rust-gpu zu kompilieren und den generierten SPIR-V-Code zu untersuchen, der mit der Zuweisung an die veränderbare Referenz verbunden ist. Bestätige das fehlerhafte Modul und die nicht definierte ID, die beim SPIR-T-Lowering gemeldet werden; abgeschlossen ist die Aufgabe, wenn das Beispiel gültiges SPIR-V ohne den OpStore-Fehler erzeugt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- rust
- Bereich
- compilers, computer-graphics
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100