staging.inyokaproject.org

Wo sind die neuen/freien/tollen Treiber für ATI-Grafikkarten?

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

nille

Anmeldungsdatum:
16. August 2007

Beiträge: 792

Boerkel schrieb:

Hmmm... ich kann seit neuestem den Treiber nicht mehr aus git zusammenbauen. Ich bekomm beim make die Fehlerausgabe:

radeon_dri2.c: In Funktion »radeon_dri2_create_buffer«:
radeon_dri2.c:173: Fehler: »struct <anonymous>« hat kein Element namens »format«
radeon_dri2.c: In Funktion »radeon_dri2_screen_init«:
radeon_dri2.c:323: Warnung: Zuweisung von inkompatiblem Zeigertyp
radeon_dri2.c:324: Warnung: Zuweisung von inkompatiblem Zeigertyp
make[2]: *** [radeon_dri2.lo] Fehler 1
make[1]: *** [all-recursive] Fehler 1
make: *** [all] Fehler 2

Sehr komisch, da es vor einiger Zeit noch ohne Probleme ging...

Welche Mesa Version, drm und radeon Version nutzt du ?


Inzwischen ist der Treiber auch schnell. Bei GLXgears habe ich schon ~770FPS verglichen mit den 20-25fps die ich noch früher hatte. Compiz ist auch schon sehr gut nutzbar aber es gibt ab und an noch ein par Grafik Fehler aber ich bin sicher das das bald auch gelöst wird.

Nachtrag: Mit dem neuen DRM Modul soll noch mal ein Performance Schub kommen. Ich werde mir das gleich mal anschauen.

Nachtrag: Es hat sich auf jeden Fall gelohnt nun bin ich bei 2000-2200 fps.

ChemicalBrother Team-Icon

Ehemaliger

Anmeldungsdatum:
17. Mai 2007

Beiträge: 3136

Ich hoffe, du siehst glxgears nicht als Maßstab für die allgemeine Performance des Treibers an.

Boerkel

Avatar von Boerkel

Anmeldungsdatum:
20. Dezember 2007

Beiträge: 392

Aber es zeigt, dass sich was getan hat. 😉 Abgesehen davon ist glxgears so ziemlich das einzige was derzeit keine größeren Darstellungsfehler produziert. 😀 GoogleEarth friert bei mir übrigens das System ein, wenn ich es starte. Andere OpenGL-Anwendungen starten aber ohne Probleme. (bis auf die Darstellungsfehler)

Zum meinem git-Problem: Mittlerweile benutze ich das xorg-edgers Repo, weil es damit einfacher ist die ganzen Sachen wie Mesa aktuell zu halten. Dazu hab ich natürlich auch noch die neueste git-Version von drm, damit 3D überhaupt funktioniert. Aber auch schon als ich das normale Mesa von Jaunty hatte, ging es auf einmal nicht mehr den Treiber über git zu bauen. Vor zwei Wochen oder so ging es noch. Ich find das halt schon ziemlich komisch und es bringt auch nichts, wenn ich den Ordner lösche und einfach einen komplett neuen checkout mache.

Andarkan

Anmeldungsdatum:
12. Februar 2008

Beiträge: 110

Was mich aber am allermeisten interessieren würde, ist nicht irgendwelcher 3D-Kram, sondern ob die neuen freien Treiber die Energiesparmodi beherrschen.

nille

Anmeldungsdatum:
16. August 2007

Beiträge: 792

Andarkan schrieb:

Was mich aber am allermeisten interessieren würde, ist nicht irgendwelcher 3D-Kram, sondern ob die neuen freien Treiber die Energiesparmodi beherrschen.

Schon seit längerem kannst du die GPU runtertacken und in eine Art Strom Star Modus versetzen. Was aber noch nicht klappt ist das es Dynamisch Arbeitet. Dynamisch den Takt ändern ist möglich aber eine etwas heikle Angelegenheit.

Andarkan

Anmeldungsdatum:
12. Februar 2008

Beiträge: 110

@nille

Und mit welchem Treiber genau, und wie? Ich kannte das bis jetzt eben nur vom proprietären Treiber.

nille

Anmeldungsdatum:
16. August 2007

Beiträge: 792

Andarkan schrieb:

@nille

Und mit welchem Treiber genau, und wie? Ich kannte das bis jetzt eben nur vom proprietären Treiber.

Der "radeon" Treiber kann das. einfach mal in die man Pages schauen

"man radeon"

Andarkan

Anmeldungsdatum:
12. Februar 2008

Beiträge: 110

@nille

In der man finde ich nichts von Energiesparmodi.

nille

Anmeldungsdatum:
16. August 2007

Beiträge: 792

Andarkan schrieb:

@nille

In der man finde ich nichts von Energiesparmodi.

Dann ist deine radeon Version noch zu alt.

Andarkan

Anmeldungsdatum:
12. Februar 2008

Beiträge: 110

@nille

Ich hab Jaunty.^^

nille

Anmeldungsdatum:
16. August 2007

Beiträge: 792

Andarkan schrieb:

@nille

Ich hab Jaunty.^^

Ist ja auch schon fast nen halbes Jahr alt(Featue Freeze).

Boerkel

Avatar von Boerkel

Anmeldungsdatum:
20. Dezember 2007

Beiträge: 392

Jup. Die Energiesparmodi sind erst in neueren Versionen verfügbar. Der in Jaunty enthaltene Treiber hat's quasi knapp verpasst. Die Modi sind sicher nicht so gut wie im fglrx, aber besser als gar nichts. ☺

birnenschnitzel

Anmeldungsdatum:
25. August 2009

Beiträge: 1

Hoppla,

diesmal scheint es mit meinem jährlichen Ubuntu Test länger als nur zwei Tage zu dauern und auf einmal passt alles zusammen. Nachdem mir die normalen Jaunty Treiber für meine X1600 nicht ausreichend waren, habe ich ebenfalls die aktuellen aus dem GIT gezogen. Beim Compilieren der selbe Fehler wie oben. Also flux mal folgenden Patch in die /usr/include/xorg/dri2.h eingebaut:

/* Version 1 structure (for ABI compatibility) */
typedef struct {
    unsigned int attachment;
    unsigned int name;
    unsigned int pitch;
    unsigned int cpp;
    unsigned int flags;
    unsigned int format; <-- das muss hier rein
    void *driverPrivate;
} DRI2BufferRec, *DRI2BufferPtr;

Damit klappt das schon besser und man kann den neuen Treiber aus src/.libs/radeon_drv.so anstatt des ausgelieferten /usr/lib/xorg/modules/drivers/radeon_drv verwenden. Damit kann man die folgenden Parameter in der xorg.conf setzen:

        Option          "ClockGating" "on"
        Option          "DynamicPM" "on"
        Option          "ForceLowPowerMode"  "on"

Ein erster Tests ergab einen Akkuentladestrom von 1900mA im Leerlauf. Das ist noch Meilen von Powerplay unter Windows entfernt, aber besser als vorher. Eine Inspektion der Sourcen ergab aber, dass bisher nur PCIe Lanes deaktiviert und die CPU heruntergetaktet werden. Die Speichertaktung scheint noch nicht implementiert. Da meine Karte ein AtomBios hat und dafür die Anpassung schon teilweise in den Treibern drin zu sein scheinen, kann man auf eigene Gefahr folgende Verbesserungen einbauen:

radeon_pm.c - static void RADEONSetStaticPowerMode(ScrnInfoPtr pScrn, RADEONPMType type)
    ...
    if (i == info->pm.current_mode)
        return;

    RADEONWaitForIdleMMIO(pScrn);

    if (info->IsAtomBios) {
        atombios_set_engine_clock(pScrn, info->pm.mode[i].sclk);
        atombios_set_memory_clock(pScrn, info->pm.mode[i].mclk); <- hier einfügen UIUI! Könnte auch sein, dass das noch einen WaitIdleMMIO braucht!
    }
    else
    ...
radeon_pm.c - void RADEONPMInit(ScrnInfoPtr pScrn)
    ...
    if (xf86ReturnOptValBool(info->Options, OPTION_FORCE_LOW_POWER, FALSE)) {
        xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Force Low Power Mode Enabled\n");
        info->pm.force_low_power_enabled = TRUE;
        if (info->pm.dynamic_mode_enabled) {
            info->pm.mode[2].type = POWER_HIGH;
            info->pm.mode[2].sclk = info->pm.mode[0].sclk / 4; <- 1/4 Leistung (statt 1/2 vorher)
            info->pm.mode[2].mclk = info->pm.mode[0].mclk / 2; 
            info->pm.mode[2].pcie_lanes = 4;
        } else {
    ...

Damit sollte die Karte mit 1/4 Chiptakt, halbem Speichertakt und nur 4 PCIe Lanes laufen. Sollte ich mich bei den abschließenden Tests nicht vermessen habe, braucht das System nochmal 120mA weniger.

Würde mich freuen, wenn andere Ihre Erfahrungen hier anschließen könnten.

Antworten |