Erstmal zur Erklärung: Ich bin vor kurzem von meiner NVidia karte auf ATI umgestiegen. Ich hatte auf der NVidia Karte als auch jetzt der ATI Karte nicht den Originallüfter drauf, sondern eine Drittherstellerlösung. Den Lüfter habe ich dabei jeweils über eine Softwareregelbare USB Lüftersteuerung (T-Balancer) angeschlossen. Die Temperaturen der NVidia karte konnte ich immer problemlos über SpeedFan auslesen und an die Software der Lüftersteuerung weiterreichen um den Lüfter dieser so zu regeln. Da SpeedFan ATI Karten nicht unterstützt, blieb mir mehr oder weniger nichts anderes übrig, als selbst ein kleines Tool zu schreiben, um das zu erledigen. Die Möglichkeit diese Temperaturwerte auszulesen gibt es nur über die AMD Display Library (oder kurz ADL) welche (wie so oft) nur für C zur Verfügung gestellt wird. Da ich jetzt nicht nur einen Fetzen des SDKs übersetzen wollte, habe ich mir die Mühe gemacht, das Komplette
SDK in Pascal zu übertragen, damit eventuell andere dieses weiterverwenden können für ihre eigenen Projekte.
Bei ADL handelt es sich um eine Library die es ermöglicht, allerlei Informationen von ATI Karten auszulesen bzw zu setzen. Das beschränkt sich nicht nur auf das auslesen der Temperaturen, sondern auch Dinge wie Bildschirmauflösungen, Taktraten (Übertakten), Lüftergeschwindkeiten, Angeschlossene Monitore und und und… . Das ADL wird z.B von Tools wie GPU-Z verwendet.
Um etwas mit dem ADL unter Delphi anzufangen zu können, sollte man sich auf jeden Fall das aktuelle C
SDK von AMD direkt laden und einen Blick in das Handbuch werfen. Informationen und den Download des SDKs findet man hier:
http://developer.amd.com/gpu/adlsdk/Pages/default.aspx
Den Source Code des Pascal-ADLs habe ich angefügt. Jeder darf es verwenden wie er möchte.
Ich übernehme keine Garantie für etwaige Fehler in der Übersetzung und deren Folgen - es handelt sich immerhin um ein ziemlich mächtiges Werkzeug um unter anderem auch die Taktraten der Grafikkarte zu verändern.
Zusätzlich zum Source des
SDK habe ich ein kleines Demo Programm beigefügt, welches die aktuelle Temperatur der Grafikkarte in der Konsole ausgibt und man etwas Einsicht bekommt, wie man das
SDK benutzt. Dieses habe ich auch nochmal als Binary angefügt zum gegentesten. Das Umfangreichere Demo Programm, welches dem Original
SDK beiliegt, habe ich nicht übersetzt.
Geschrieben und getestet habe ich die Übersetzung mit Delphi 2007 unter Windows 7 mit einer HD5870 und den gerade aktuellen Catalyst 10.4 Treibern.
Funktionieren sollte das ADL wohl mit allen einigermaßen aktuellen ATI Grafikkarten.
Viel Spaß damit
Ich freue mich über Feedback und Verbesserungsvorschläge.