Rust-GPU / Rust-GPU/rust-gpu

Fragment shader can be silently compiled out

Offen
#284 2 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug
Vorherrschende Sprache
Rust
Sterne
3.4k
Forks
126
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

This works fine:

#[spirv(fragment)]
pub fn main_fs(
    in_color: Vec3,
    out_frag_color: &mut Vec4,
) {
    *out_frag_color = vec4(in_color.x, in_color.y, in_color.z, 1.0);
}

This silently does not output a fragment shader:

#[spirv(fragment)]
pub fn main_fs(
    in_color: Vec3,
    out_frag_color: &mut Vec4,
) {
    out_frag_color.x = in_color.x;
    out_frag_color.y = in_color.y;
    out_frag_color.z = in_color.z;
}

Rather than failing silently, it should probably be an error when an entire shader is dead code / compiled out and does not produce an artifact.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die beiden Rust-Fragment-Shader-Beispiele aus dem Issue zu kompilieren und ihre Ausgaben zu vergleichen. Verfolge den Compilerpfad für einen Shader, der kein Artefakt erzeugt, und bestimme dann, wo ein Fehler gemeldet werden sollte. Als erledigt gilt, wenn das zweite Beispiel explizit fehlschlägt, anstatt stillschweigend herauskompiliert zu werden, während das erste weiterhin einen Fragment-Shader 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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.