Rust-GPU / Rust-GPU/rust-gpu

[Migrated] Allow keeping linkage annotation

Offen
#88 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

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

Beschreibung

Issue automatically imported from old repo: https://github.com/EmbarkStudios/rust-gpu/issues/1042
Old labels: t: enhancement
Originally creatd by SiebenCorgie on 2023-04-21T16:42:49Z


SpirV allows defining import and export [0] for linking separate Shader modules [1] post compilation.

Apparently SpirV linking is already used within rust-gpu, but not exposed. Therefore we can't use extern "C" as we usually would.

This functionality would be useful, for instance when building shader permutation systems.

The enhancement would basically be allowing extern C, #[no_mangle] etc. to map to (possibly named) import/export decorated values whenever the Linkage capability on spirv-builder is enabled.

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 bei der Linkage-Fähigkeit von spirv-builder und prüfe die verknüpfte SPIR-V-Linkage-Spezifikation. Verfolge, wie rust-gpu derzeit mit extern "C" und #[no_mangle"-Werten umgeht, und bestimme dann die erforderliche Zuordnung zu benannten Import-/Export-Dekorationen. Als erledigt gilt die Aufgabe, wenn Linkage-Annotationen erhalten bleiben, sobald Linkage aktiviert ist, und separate Shader-Module sie verwenden können.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
rust
Bereich
compilers
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
30/100

Neue Issues direkt in Ihr Postfach

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