Wie mache ich einen Screenshot von dem, was gerade in vram ist?

7

Ich bin ein Künstler, der sich speziell auf Störungen und Fehler konzentriert, und ich versuche derzeit, einen Weg zu finden, um Bilder wie diese zu erstellen , die durch Screenshots von dem erstellt wurden, was sich derzeit in vram befindet. Ist das unter Linux / Ubuntu möglich? Wenn das so ist, wie?

Hellocatfood
quelle
Sie könnten Gimp oder Photoshop verwenden, aber es könnte nicht so gut aussehen wie die zufällige Inspiration
Alexyorke

Antworten:

4

Das Speichern der VRAM-Inhalte sollte nicht vom Benutzerland aus funktionieren. Es würde Unterstützung vom Treiber im Kernel benötigen. Wenn Sie Glück haben, enthält Ihr Treiber möglicherweise Trigger zum Speichern des Speichers. Diese sind jedoch möglicherweise nur verfügbar, wenn Sie bestimmte Debugging-Optionen kompilieren.

johanvdw
quelle
1

Ich habe einen interessanten Fehler auf meinem Computer festgestellt, der zu ästhetisch ansprechenden Glitch-Art-Ergebnissen führt, obwohl er nicht so direkt oder nützlich ist wie eine rohe VRAM-Aufnahme.

Ich verwende gnome-mplayer - obwohl jede von mplayer abgeleitete Software dies tun sollte - mit dem vdpau-Hardware-beschleunigten Videoausgabemodul für (relativ neue) nvidia-Grafikhardware. Ich musste eine vdpau-fähige Version von mplayer von einem PPA mit 10.04 bekommen, aber ich denke, dass es in 10.10 sofort funktioniert.

Der Fehler tritt auf, wenn Sie den Vollbildmodus mit angehaltenem Video betreten oder verlassen. Das Fenster wird voll von wundervollem Müll sein, zufälligen Teilen von allem, was kürzlich im Videospeicher war: Video, Teile der Benutzeroberfläche, 3D-Grafiken, wenn Sie ein Spiel gespielt haben. Es wird in das Fenster geworfen, egal wie groß es ist.

Sobald Sie mit der Wiedergabe des Videos beginnen, wird es ausgeblendet, da der Inhalt des Fensters ständig aktualisiert wird. Aber ich habe einige Screenshots gemacht, wenn es etwas besonders Interessantes macht.

Ich bin kein Experte für Grafikprogrammierung, aber es scheint ziemlich trivial zu sein, ein OpenGL-Programm zu schreiben, das (falsch) Zeiger verwendet, um eine Menge Müll aus dem Video-RAM zu holen und ihn dann auf den Bildschirm oder ein Bild auf der Festplatte zu rendern .

Wenn Sie möchten, kann ich einige Beispiele ausgraben, die ich nach meiner Ankunft aufgenommen habe.

JPL
quelle
Ich bin mir nicht sicher, ob dies mein Problem lösen würde, da ich eine ATI-Grafikkarte (Radeon 4500) verwende. Haben Sie Erfahrung im Schreiben von GL-Programmen? Ich würde immer noch gerne Ihre Arbeit sehen!
Hellocatfood