Forcing Machine zur Verwendung einer dedizierten Grafikkarte?

8

Ich bin Teil eines Teams, das eine Anwendung mit C ++ mit SDL und OpenGL entwickelt.

Auf Laptops, wenn die Anwendung ausgeführt wird, wird die dedizierte Grafikkarte nicht verwendet und der GL-Kontext kann nicht erstellt werden, da die integrierte Grafikkarte die gewünschte Version des GL nicht unterstützt.

Ich habe das Gefühl, dass dieses Problem spezifisch für den fraglichen Laptop ist und nicht etwas, was wir durch Code lösen können. Aber wenn jemand weiß, ob es eine Lösung gibt, die großartig wäre.

    
Connor Hollis 29.05.2013, 20:38
quelle

2 Antworten

3

Verwendet es NVidia dedizierte Grafik? AFAIK, der Prozess des automatischen Umschaltens von integriert zu dediziert basiert auf Anwendungsprofilen. Ihre Anwendung befindet sich nicht in der Liste der bekannten 3D-Anwendungen des Treibers. Daher muss der Benutzer manuell zur dedizierten GPU wechseln.

Versuchen Sie, den ausführbaren Namen Ihrer Anwendung in etwas zu ändern, nach dem der Treiber sucht. Zum Beispiel "Doom3.exe". Wenn das funktioniert, hast du dein Problem gefunden.

Wenn das nicht geholfen hat, folgen Sie den Anweisungen in diesem Video, um zu erfahren, wie der Treiber Ihre Anwendung in die Liste der 3D-Apps einfügt:

Ссылка

Aber das Obige dient nur dazu, zu überprüfen, ob das tatsächlich Ihr Problem ist. Für eine tatsächliche Lösung sollten Sie sich bei den Grafiktreibern (AMD und NVidia) erkundigen, wie Sie am besten ein Profil für Ihre Anwendung in ihre Listen einfügen können. NVidia bietet NVAPI und AMD hat ADL und AGS . Sie sind definitiv eine Studie wert.

    
Nikos C. 29.05.2013, 20:46
quelle
10

Der einfachste Weg aus C ++, um sicherzustellen, dass die dedizierte Grafikkarte anstelle der unter Windows umschaltbaren Grafikkarten verwendet wird, ist das Exportieren der folgenden Symbole (MSVC-Beispielcode):

Aktivieren Sie dedizierte Grafiken für NVIDIA :

%Vor%

Aktivieren Sie dedizierte Grafiken für AMD Radeon :

%Vor%

Vorbehalt: Wenn der Benutzer ein Profil für die Anwendung erstellt hat, um den integrierten Chipsatz zu verwenden, funktionieren diese nicht.

Ich bin mir nicht sicher, ob das unter Linux / MacOS (unwahrscheinlich) funktionieren würde.

    
Christopher Oezbek 19.08.2016 20:23
quelle

Tags und Links