# ADR-0004: Nativer Renderkern – Rust auf dem GStreamer-D3D11-Elementpfad - **Status:** Vorläufig angenommen (Bestätigung oder Revision im Windows-Durchlauf) - **Datum:** 2026-09-11 - **Phase:** ursprünglich Phase 0; wegen ADR-0008 vorgezogen - **Bauplan:** §6.1C, §7.1, §12.6 ## Entscheidung 1. Sprache des nativen Moduls: **Rust**. 2. Einbindung: **GStreamer-Plugin-Ansatz** – der Rendergraph nutzt die erprobten D3D11-Elemente (d3d11h264dec → d3d11convert → d3d11compositor → d3d11videosink) und eigene Rust-GStreamer-Elemente für Effekt-/Shader-Pässe, statt sofort eine komplett eigenständige Render-Bridge mit eigener Swapchain zu bauen. ## Begründung (ohne Messdaten, deshalb vorläufig) - D3D11Memory-Residenz ist Eigenschaft der GStreamer-Elemente; das Risiko eigengebauten Swapchain-Compositings entfällt. - gstreamer-rs bietet stabile Bindings; Rust liefert Gedächtnissicherheit im nativen Pfad. - Die Effektkette skaliert als Elementkette; der Plugin-Vertrag (§14) bleibt vollständig gewahrt. - Eine spätere wgpu-/eigenständige Bridge bleibt über dasselbe IPC- und Capability-Protokoll anschließbar (§6.1C). ## Alternativen - C++: kein Vorteil, höheres Fehlerrisiko im Speichermanagement. - Sofortige eigenständige Bridge: mehr Kontrolle, aber hohes Risiko ohne Hardware-Feedback (ADR-0008). ## Folgen - Der Renderer-Prozess orchestriert Pipelines; Rust-Elemente übernehmen die Shader-Pässe (HLSL aus dem Plugin-Vertrag). - Rust-Kompilierung erfolgt im Windows-Durchlauf (Container ohne cargo). ## Messwerte / Nachweise - Ausstehend. Gate-0-Messungen bestätigen das Elementpfad-Budget oder lösen eine Revision (eigenständige D3D11-Bridge) aus – ohne API-Änderung (§12.6). ## Freigabe Vorläufig gemäß ADR-0008; endgültig nach Windows-Messung.