Rust-GPU / Rust-GPU/rust-gpu

Try to map `spirv-val` output to Rust code

Aperta
#323 19 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

enhancement
Lingua principale
Rust
Stelle
3.4k
Fork
125
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

I just got an error that looks like this:

error: error:0:0 - OpInBoundsAccessChain result type (OpTypeStruct) does not match the type that results from indexing into the base <id> (OpTypeArray).
         %2764 = OpInBoundsAccessChain %_ptr_Function__struct_33 %2763 %uint_0
  |
  = note: spirv-val failed
  = note: module `.../spirv-unknown-vulkan1.2/debug/deps/....spv`

Unfortunately, the output isn't all that helpful, don't know how to debug it except commenting-out pieces of code until the error goes away. However, I do have a suspicion that _ptr_Function__struct_33 might be something that codegen controls, which in turn might mean ability to translate it back to something like the name of the data structure or file and line of code.

Also maybe debug builds could use something more descriptive than struct_33 to help with debugging, like a mangling scheme.

I'm compiling with these options:

let backend = cargo_gpu::Install::from_shader_crate(shader_crate.clone()).run()?;

let spirv_builder = backend
    .to_spirv_builder(shader_crate, "spirv-unknown-vulkan1.2")
    .print_metadata(MetadataPrintout::DependencyOnly)
    .spirv_metadata(SpirvMetadata::NameVariables)
    .release(false);

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Esamina il flusso cargo_gpu::Install e la configurazione to_spirv_builder(...).spirv_metadata(SpirvMetadata::NameVariables), quindi ispeziona come le diagnosi emesse da spirv-val espongono _ptr_Function__struct_33. Definisci un comportamento concreto di mapping o denominazione e verificalo rispetto al fallimento OpInBoundsAccessChain mostrato; l’issue è completata quando le diagnosi generate identificano il contesto rilevante del codice sorgente Rust o forniscono nomi di debug più descrittivi.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
rust
Ambito
compilers, devtools
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
30/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.