Screen goes black (with artifacts) upon declaration of large array.
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
I have a fairly complex shader that's doing a lot of numerical analysis on the GPU. One function does this:
pub fn evaluate_function_vector(
&mut self,
x: [S; 3],
degree: usize,
#[cfg(not(feature = "std"))] coefficients: &[S; MAXIMUM_ARRAY_SIZE_NO_STD],
#[cfg(feature = "std")] coefficients: &[S],
) -> S
{
#[cfg(feature = "std")]
let basis_eval = self.eval(x, degree);
#[cfg(not(feature = "std"))]
let basis_eval = {
let mut basis_eval = [S::default(); MAXIMUM_ARRAY_SIZE_NO_STD]; // THIS LINE!!!!!!!!!!!!
self.eval(x, degree, &mut basis_eval);
basis_eval
};
let mut res = S::default();
for i in 0..basis_eval.len()
{
let v = basis_eval[i];
let coeff = coefficients[i];
res += v.clone() * coeff.clone();
}
res
}
I noticed that different sizes of let mut basis_eval = [S::default(); MAXIMUM_ARRAY_SIZE_NO_STD]; // THIS LINE!!!!!!!!!!!! Caused different behaviours. Small sizes would produce the expected image, sizes of about larger than 50 would create a black image with colour noise sprinkled in, as if rendering a corrupted buffer or uninitialized memory.
I am using the latest cargo gpu to compile my shaders afaik.
I am on Garuda Linux, Vulkan version 1.4.321.
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
Parti dalla funzione evaluate_function_vector e dalla dichiarazione dell’array basis_eval mostrate nel report. Riproduci lo shader su Vulkan con valori progressivamente maggiori di MAXIMUM_ARRAY_SIZE_NO_STD, confrontando l’output renderizzato e il comportamento dello shader generato. Il lavoro è completato quando la causa dell’immagine nera e degli artefatti è stata identificata e l’issue dispone di una correzione verificata o di una limitazione documentata.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rust
- Ambito
- computer-graphics
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 30/100