Moin,
ich schaue gerade, ob es nicht einen API-Call gibt, der mir Information meiner Grafikhardware wie Temperatur, VRAM-Größe etc. ausgibt und zwar unabhängig von Hersteller und Modell. Das Ganze soll in OpenGL bzw. Win-API als Teil des Windows-Treibers für unsere Engine geschehen, DX ist also absolut garkeine Option.
Ich würde mal in die Richtung WMI suchen.
Habs grad ausprobiert, mit
wmic path win32_videocontroller get AdapterRam
kriegt man zumindest den verfügbaren Speicher (aber auch weiteren Infos drüber, in welcher Form der Speicher verfügbar ist). Die Temperatur kriegt man auf die Weise nicht raus, wenn ich das richtig sehe. Also wirst du wohl über nvapi für Nvidia und das entsprechende Gegenpart bei AMD gehen müssen. Sind ja zum Glück nur zwei wichtige Hersteller 😉
was ist mit Intel?
Hallo,
mit den offiziellen OpenGL und OpenCL Befehlen kannst du sehr viele Informationen auslesen. Lediglich die Temperatur und ein paar weitere nicht wichtige Informationen lassen sich nicht auslesen.
Auszug aus der OpenCL-Manpage: http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/*clGetPlatformInfo *clGetDeviceInfo *clGetContextInfo
Gruß, Thomas
Klar, OpenCl haben wir natürlich implementiert, das Problem ist nur, wenn die Grafikhardware kein OpenCl unterstützt, weil einfach zu alt, gibts natürlich auch keine Informationen dazu. Auf meinem System wird beispielsweise die HD 2400 XT nicht unterstützt und ich erhalte lediglich einen CPU Context.
Hallo,
was genau willst du auslesen und für was brauchst du diese Informationen?
Coder007 hat bereits erwähnt, dass der Weg über einen C++/CLI-Wrapper immer möglich ist. Die API zu Nvidia findest du unter http://developer.nvidia.com/nvapi
Kurz gesagt, alles was dem Anwender/Entwickler der Engine interessiert. Dazu zählt sicherlich die Menge des VRam zu entwicklungs/initialisierungs Zeiten für die größe der Modelle und die Detailtiefe von Texturen/Texturlevels, oder eben die Temperatur oder der Akkustatus (gehört jetzt nicht zur GH) im Spiel oder in der Anwendung, dass die Anwendung Crashes bereits vorhersagen und entsprechend reagieren kann.
Bisweilen beschränkt auf den Windows-Treiber, Linux und Mac kommt später.