E
eruanno
Gast
Tyler654 schrieb:Zunächst ja.
Ob die quelloffene Version von AMDGPU fehlerfreier sein wird, muss sich aber noch zeigen.
Nein.
amdgpu ist amdgpu, egal welcher Stack verwendet wird. Es gibt keinen "proprietären amdgpu".*
Der Überblick ist am Anfang womöglich schwer, weil man es unter Windows gewohnt ist, das CCC oder jetzt eben die Radeon Software mit einem Installer zu installieren und gut ist. Der "Treiber" setzt sich aber aus mehreren Komponenten zusammen, die miteinander arbeiten. Und das ist in den Linux stacks auch klar ersichtlich
1) amdgpu ist das Kernel Modul, auch Kernel- oder DRM(direct rendering manager)-Treiber genannt. Es läuft im kernel-space (kurz gesagt mit mehr Rechten) und spricht direkt mit der Hardware.
2) Über Interface-Bibliotheken, in dem Fall libdrm_amdgpu, die selbst im user-space laufen, werden Funktionen der HW "nach außen gereicht" und sie kann so vom user-space aus angesprochen werden. libdrm kommuniziert also mit amdgpu, um die Schnittstelle zwischen kernel und user-space zu schaffen.
3) libdrm wird dann von mehreren Modulen verwendet, etwa dem X-Treiber DDX (für 2D) und Gallium/Mesa Modulen für 3D, OpenCL und Videode- und encodierung.
Nun hat AMD mit amdgpu zwei Stacks, wobei aktuell erst einer öffentlich verfügbar ist, nämlich der freie. Der Hybrid-Stack (freie und proprietäre Komponenten) soll Mitte des Jahres kommen.
Der Hybrid Stack ersetzt mesa/gallium durch ein proprietären Treiber für OpenGL, also 3D und bringt einen eigenen OpenCL sowie Vulkan Treiber. Für die Videofunktionen wird weiterhin gallium verwendet.
Die hier verwendeten, zunächst proprietären OpenCL und Vulkan Treiber werden jedoch nach einer Übergangsphase ebenso in den freien Stack übernommen, also als freie Software veröffentlicht. Das braucht aber noch etwas Zeit, daher hat man die Funktionen im Hybrid-Stack eben eher.
amdgpu selbst, libdrm_amdgpu, der ddx Treiber und die gallium Komponenten sind also in beiden Stacks identisch*. Eine Aussage wie "der freie amdgpu ist stabiler" ist daher Quatsch. Was jedoch natürlich passieren kann, ist dass der freie Stack regelmäßiger aktualisiert, in die Paketquellen übernommen wird. Dann hätte man bugfixes oder neue Funktionen natürlich eher. Das ist aber nicht sicher und ob die Änderungen immer sofort öffentlich gemacht werden auch nicht. Es kann auch sein, dass die Änderungen jeweils erst mit einer neuen Version des hybriden Stacks öffentlich gemacht werden.
Tatsächlich sind im hybriden Stack noch Erweiterungen im Kernel Modul (amdgpu), drm interface (libdrm_amdgpu) und DDX möglich. Diese sind aber nur für FirePROs interessant/nötig. Und es sind wie gesagt Erweiterungen, der bestehende Code wird also nicht maßgeblich geändert.
Die ursprüngliche Aussage, der hybride Stack sei "immer ein wenig fortgeschrittener" stimmt also nicht.
Das gilt nur für die Übergangsphase, danach nur noch für OpenGL, wobei das auch nicht in Stein gemeißelt ist.
imho gibt es auf lange Sicht für Consumer keine Notwendigkeit für den hybriden Stack. Wenn die Übergangsphase abgeschlossen ist und ordentliche freie OpenCL und Vulkan Implementierungen vorhanden sind, wäre das ein super Zustand, von dem man vor ein paar Jahren nur Träumen konnte. Die OpenGL Implementierung im mesa-Projekt macht parallel dazu weiterhin gute Fortschritte. Wenn man nicht spielt oder Software einsetzt, die jetzt OpenGL 4.5 voraussetzt, wird man auch den proprietären OpenGL Treiber nicht mehr brauchen.
Und selbst wenn man den braucht ist die Hemmschwelle durch den hybriden statt wie bisher durch den komplett proprietären Stack deutlich niedriger