Nvidia Optimus / GetAdapterCount erkennt Graka nicht
-
Hallo zusammen,
Mit folgendem Code versuche ich, die verfügbaren Adapter auf meinem System aufzulisten:
PDIRECT3D9 pD3D; pD3D = Direct3DCreate9(D3D_SDK_VERSION); int i = pD3D->GetAdapterCount(); for(int n=0;n<i;n++) { D3DADAPTER_IDENTIFIER9 Identifier; pD3D->GetAdapterIdentifier(n,0,&Identifier); Log(Identifier.Description); }
Ich hab nen Laptop, in dem neben einem onboard Grafikchip auch eine GeForce GT 540M verbaut ist, allerdings steht in meiner Logdatei hinterher nur "Intel(R) HD Graphics Family". Anscheinend meint Optimus, dass für mein Programm der Onboardchip reicht
Hab ein bisschen gegoogled, wenn ich mein Programm jetzt z.B. nach einem populären Spiel in "bf3.exe" umbenenne, wird tatsächlich die GT 540 verwendet.
Allerdings ist das für mich keine zufriedenstellende Lösung, ich will mein Programm ja nennen, wie ich das möchte
Kennt jemand irgendeinen Trick, mit dem man Optimus dazu bringen kann, die Grafikkarte zu verwenden?
MfG
Jochen
-
Schon versucht deine Anwendung in der Nvidia-Systemsteuerung einzutragen?
-
Ja das geht auch, allerdings ist das auch nicht wirklich zufriedenstellend, da ich das Programm/Spiel eventuell auch an andere Leute weitergebe und das wär eben schön, wenn das dort auch direkt die Graka erkennen würde und man nicht erst noch in den Systemeinstellungen herumpfuschen müsste
-
dann sollen sich deine Freunde keine Laptops mit nVidia Optimus holen.
Dein Programm wird normaler Weise alle Grafikkarten erkennen.
Das Problem bei dem Optimus-Zeug ist, dass es nach außen hin nur 1 Grafikkarte ist (eben eine Hybrid-Grafikkarte).
Wenn du dein Programm nicht in die NVidia-Einstellungen eintragen möchtest, so besteht immer noch die Möglichkeit auf das Programm rechts-zu-klicken und im Menü den Punkt zu wählen "Mit Grafikadapter ausführen" (oder so ähnlich, hab gerade meinen laptop nicht da).
Dann wird das Programm einmalig mit dem anderen Adapter ausgeführt und es erscheint in deiner Liste die NVidia Karte anstatt der Intel.
-
lass etwas aufwendiges mit DirectX laufen, sollte theoretisch doch automatisch auf die NV gpu umschalten, oder? dann kannst du nach 1s oder deine abfragen machen.
ich hab kein optimus und weiss nicht genau wie das funzt, jedoch wuerde ich denken dass es so ist
ansonsten mal im developer forum von nvidia suchen oder bei deren samples/sdk. bist sicher nicht der erste der das problem hat und die werden eine qualifizierte loesung haben.