[Migrated] Large array variable initialization (`let arr = [0; 32 * 1024];`) compiles very slowly.
Nessuno ha ancora preso questa issue.
- Lingua principale
- Rust
- Stelle
- 3.4k
- Fork
- 125
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Issue automatically imported from old repo: https://github.com/EmbarkStudios/rust-gpu/issues/1132
Old labels: t: bug
Originally creatd by pyranota on 2024-02-11T13:28:58Z
EDIT(@eddyb): while there are reasons to avoid such arrays, the slowdown is the immediate Rust-GPU bug - I've left unchanged the original text, but used strikethrough for parts that don't apply, IMO.
User should not be able to create large sized arrays in rust-gpu shaders.
Stack is limited, and large sized data-structures should be moved in buffers.
Plus it makes compilation incredibly slow (I assume this syntax [0; SIZE] translates to spirv's [0, 0, 0, 0, 0, ... SIZE])
Expected Behaviour
spirv-builder should throw an error, when user creates large array in stack
Example & Steps To Reproduce
- Setup basic rust-gpu shader
let arr = [0; 32 * 1024];cargo build
System Info
- Rust: rustc 1.75.0 (82e1608df 2023-12-21)
- OS: Pop!_OS
- GPU: nvidia 1060
- SPIR-V: SPIRV-Tools v2022.2-dev unknown hash, 2022-02-16T16:37:15
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
L’issue non indica alcun file sorgente né alcun test; inizia con il riproduttore minimo dello shader rust-gpu usando let arr = [0; 32 * 1024];, poi esegui cargo build e traccia il percorso di compilazione responsabile del rallentamento. Il lavoro è completato quando questo inizializzatore di array di grandi dimensioni non rende più la compilazione incredibilmente lenta, con un test di regressione se è possibile identificare la posizione del test pertinente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rust
- Ambito
- compilers
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100