Russian Qt Forum

Qt => Общие вопросы => Тема начата: 8Observer8 от Август 07, 2014, 21:39



Название: Как выставить видео карту поумолчанию?
Отправлено: 8Observer8 от Август 07, 2014, 21:39
Привет!

Оказывается у ноутбуков Asus X53S две видеокарты. Одна слабая поумолчанию, а другая помощнее.

Вторую можно активировать, если кликнуть по exe файлу правой кнопкой и выбрать: "Запустить с графическим процессором" -> "Высокопроизводительный процессор NVIDIA"

Так вот. Если следующую программку запустить из консоли с картой поумолчанию, то получаю вывод:
Цитировать
Vendor: Intel
Renderer: Intel(R) HD Graphics Family
Version: 3.0.0 - Build 8.15.10.2291
GLSL: 1.30  - Intel Build 8.15.10.2291

Программа:
Код
C++ (Qt)
#include <QGLFormat>
#include <QGLWidget>
#include <QString>
#include <iostream>
#include <QApplication>
 
int main( int argc, char *argv[] )
{
   QApplication app( argc, argv );
 
   QGLFormat format;
   format.setVersion( 4, 3 );
   QGLFormat::setDefaultFormat( format );
 
   QGLWidget w;
   w.makeCurrent();
 
   QString vendor( QLatin1String( reinterpret_cast<const char*>( glGetString( GL_VENDOR ) ) ) );
   std::cout << "Vendor: " << vendor.toStdString() << std::endl;
 
   QString renderer( QLatin1String( reinterpret_cast<const char*>( glGetString( GL_RENDERER ) ) ) );
   std::cout << "Renderer: " << renderer.toStdString() << std::endl;
 
   QString versionOfGL( QLatin1String( reinterpret_cast<const char*>( glGetString( GL_VERSION ) ) ) );
   std::cout << "Version: " << versionOfGL.toStdString() << std::endl;
 
   QString versionGLSL( QLatin1String( reinterpret_cast<const char*>( glGetString( GL_SHADING_LANGUAGE_VERSION ) ) ) );
   std::cout << "GLSL: "<< versionGLSL.toStdString() << std::endl;
 
   return app.exec();
}
 

Если же запускаю со второй картой, то такой вывод:
Цитировать
Vendor: NVIDIA Corporation
Renderer: GeForce GT 540M/PCI/SSE2
Version: 4.1.0
GLSL: 4.10 NVIDIA via Cg compiler

Как видите, в первом случае версия OpenGL - 3.0.0, а во втором - 4.1.0. Как сделать так, чтобы Qt запускал приложения со вторым вариантов?

Заранее спасибо за ответ!


Название: Re: Как выставить видео карту поумолчанию?
Отправлено: mitrich от Август 07, 2014, 23:39
Средствами Qt - никак. Переключение видеоадаптеров - функциональность, специфическая для системы.
P.S. Наверняка на этом ноуте есть конфигурационная утилита, в которой можно включить НВидиевскую видеокарту на постоянной основе. Ну, или в биосе на худой конец.


Название: Re: Как выставить видео карту поумолчанию?
Отправлено: 8Observer8 от Август 08, 2014, 07:33
Опишу шаги. Кликнул по exe правой кнопкой и выбрал: "Run with graphics processor" -> "Change default graphics processor"

(http://i7.pixs.ru/storage/6/5/1/263png_2847023_13320651.png)

Появилось диалоговое окно, в котором я нажал "Add" и выбрал "qtcreator.exe". В выпадающем списке ниже я выбрал: High-performence NVIDIA processor. Нажал "Apply"

(http://i6.pixs.ru/storage/6/6/7/265png_3282669_13320667.png)

Запускаю приложение из Qt Creator из первого сообщения. Всё равно выдаётся описание первой карты:
Цитировать
Vendor: Intel
Renderer: Intel(R) HD Graphics Family
Version: 3.0.0 - Build 8.15.10.2291
GLSL: 1.30  - Intel Build 8.15.10.2291


Название: Re: Как выставить видео карту поумолчанию?
Отправлено: navrocky от Август 08, 2014, 10:17
Почему вместо своего приложения ты выбираешь qtcreator? Где логика


Название: Re: Как выставить видео карту поумолчанию?
Отправлено: 8Observer8 от Август 08, 2014, 10:18
Я хочу, чтобы при нажатии кнопки "Run" моё приложение запускалось со второй картой


Название: Re: Как выставить видео карту поумолчанию?
Отправлено: 8Observer8 от Август 08, 2014, 10:40
Спасибо! Всё, разобрался. Выбрал вместо qtcreator.exe exe'шник программы. Запускается из под Qt Creator и выдаёт то, что надо:

Цитировать
Vendor: NVIDIA Corporation
Renderer: GeForce GT 540M/PCI/SSE2
Version: 4.1.0
GLSL: 4.10 NVIDIA via Cg compiler


Название: Re: Как выставить видео карту поумолчанию?
Отправлено: 8Observer8 от Август 08, 2014, 13:13
Обновил дравера для своего Asus X53S отсюда: http://www.nvidia.ru/download/driverResults.aspx/77333/ru

Теперь выдаёт:
Цитировать
Vendor: NVIDIA Corporation
Renderer: GeForce GT 540M/PCIe/SSE2
Version: 4.3.0
GLSL: 4.30 NVIDIA via Cg compiler