Fragment shader can be silently compiled out
Dieses Issue hat noch niemand übernommen.
- 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
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, 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