Autor Wątek: Domyślna karta graficzna - dedykowana  (Przeczytany 2814 razy)

Offline Montjet

  • Użytkownik

# Grudzień 30, 2015, 22:16:52
Witam, już kilka godzin szukam przyczyn błędów w obsłudze teselacji w OpenGL.
Przypuszczam, że przyczyną jest korzystanie aplikacji z zintegrowanej karty graficznej, która nie obsługuje Shaderów w wersji 4.0+ .
W jaki sposób zmienić domyślnie używaną kartę graficzną w Visual Studio (Enterprise 2015)?


Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Grudzień 30, 2015, 22:45:17
Rozumiem, że masz na myśli nie tyle której karty używa samo Visual Studio, ile Twój program, który w nim kompilujesz? Zależnie od producenta karty w Twoim laptopie:

Jeśli to NVIDIA, spróbuj czegoś takiego w ustawieniach karty:
http://acer--uk.custhelp.com/app/answers/detail/a_id/9073/~/assigning-a-graphics-card-to-an-application-with-nvidia-optimus
Lub ogólnie zapytanie do Google w rodzaju:
https://www.google.pl/search?q=nvidia+optimus+dedicated+gpu+application&ie=utf-8&oe=utf-8&gws_rd=cr&ei=XECEVvvKPIWNsgHeuZnoDw

Natomiast dla AMD, spróbuj czegoś takiego:
http://acer--uk.custhelp.com/app/answers/detail/a_id/19271/~/assigning-a-graphics-card-to-an-application-with-amd-switchable-graphics
Lub wyszukaj w Google np.:
https://www.google.pl/search?q=amd+select+gpu+application&ie=utf-8&oe=utf-8&gws_rd=cr&ei=tUCEVpP_HoLJsQH2_Z0g

AMD udostępnia też sposób na wymuszenie używania zawsze karty dedykowanej, a nie zintegrowanej w swojej aplikacji poprzez wstawienie do jej kodu symbolu o specjalnej nazwie eksportowanego z pliku EXE, ale nie mogę teraz tego nigdzie znaleźć...

Offline Montjet

  • Użytkownik

# Grudzień 30, 2015, 23:36:12
Większość gier automatycznie uruchamia się z obsługą dedykowanej karty graficznej.
Zależy mi na tym by było tak i z moim programem - początkujący użytkownik komputera nie będzie raczej zmieniał ustawień w panelu sterowania GPU, tak myślę.

Zazwyczaj można to ustawić z panelu przed uruchomieniem samego programu, przykład:


Więc może da się to zrobić nie samym Visual Studio a programem(kodem)?

@Tak, to jest NVIDIA ale może być i AMD u innego użytkownika.

Offline Xion

  • Redaktor
    • xion.log

# Grudzień 31, 2015, 00:46:58
Nie pamiętam dokładnie jak jest w OpenGL, ale w DirectX możesz podać z którym GPU ma być związane urządzenie DX. Podejrzewam, że podobny trik jest możliwy przy tworzeniu render contextu w OGL.

Offline Montjet

  • Użytkownik

# Grudzień 31, 2015, 01:18:16
Zmieniłem ręcznie w panelu sterowania wymuszenie uruchamiania programu z dedykowaną kartą graficzną - teselacja działa prawidłowo :)

Pozostała kwestia wymuszenia z poziomu programu używania wybranej karty graficznej - tyczy się to samego OpenGL, dlatego utworzę nowy temat w odpowiednim dziale.
Link: http://forum.warsztat.gd/index.php?topic=30590.0

Offline Kurak

  • Użytkownik

# Grudzień 31, 2015, 16:15:49
Większość gier automatycznie uruchamia się z obsługą dedykowanej karty graficznej.
W przypadku NVIDIA wybór karty zależy od nazwy exeka (jak gra jest blisko wydania to wchodzi aktualizacja sterowników z dodaną zasadą dla nowej gry), niezależnie od ścieżki czy faktycznej zawartości pliku. Mozna sobie dodać też samemu dowolną nazwę w ustawieniach sterownika.

Offline karol57

  • Użytkownik

  • +2
# Grudzień 31, 2015, 17:07:44
...
AMD udostępnia też sposób na wymuszenie używania zawsze karty dedykowanej, a nie zintegrowanej w swojej aplikacji poprzez wstawienie do jej kodu symbolu o specjalnej nazwie eksportowanego z pliku EXE, ale nie mogę teraz tego nigdzie znaleźć...

Przypadkowo znalazłem

Kod: (AMD) [Zaznacz]
extern "C" {
    __declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1;
}
źródło

Kod: (NVIDIA) [Zaznacz]
extern "C" {
    _declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
}
źródło