Ein 9000-Zeilen-Monster: Wie ein Grafikentwickler seinen Spaghetti-Dämon endgültig erlöste

Killing what can't be handled – putting a spaghetti demon to eternal rest

Ein 9000-Zeilen-Monster: Wie ein Grafikentwickler seinen Spaghetti-Dämon endgültig erlöste

Der Control-Flow-Structurizer in dxil-spirv war jahrelang ein Albtraum: ein 9000-Zeilen-Ungetüm, dessen Bus-Faktor praktisch bei null lag und das bei jedem Spiel-Update zu zerbrechen drohte. Nach einem Shader, den selbst Graphviz nicht mehr rendern konnte, gab der Autor die Lesbarkeit des generierten Codes auf und übernahm Mesas goto_if-Implementierung. Mit Fuzzing, CPU-Simulation und einem erweiterten structurizer-test fand er dabei zahlreiche Mesa-Bugs, die inzwischen behoben werden.

Es ist ein komisches Wunder, dass ich noch nicht völlig ausgerastet bin.
  1. cowlevel

    Ich habe nie darüber nachgedacht, wie ein SIMD-Compiler intern funktionieren muss. Aua!

  2. e1ghtSpace

    Etwas Feedback zur Seite, nicht dass ich wirklich wüsste, wovon du hier überhaupt sprichst, aber ich benutze Mittelklick-und-Ziehen, um die Seite zu scrollen, und habe festgestellt, dass das über einem Bild dieses in einem neuen Tab öffnet, ohne zu scrollen. Ich bin mir nicht sicher, ob das behoben werden sollte, aber ich melde es hier einfach mal für den Fall. :)

  3. FrustratedMonky

    Schön.

    Danke dafür. Werde ich mir mal ansehen und ausprobieren.

Mehr von diesem Tag

2026-11-03