Разница в производительности OpenGL в Linux и WindowsXP - PullRequest
1 голос
/ 27 января 2009

Я заметил, что приложение OpenGL, над которым я работал, имеет существенную разницу в производительности при запуске в Linux против WindowsXP.

Конечно, есть много текстур и теневых буферов, но я предполагаю, что приложение работает примерно в 10 раз медленнее в Windows XP.

Есть идеи?

Есть предложения по переносу кода в DirectX? Можно ли это сделать легко или потребуется переписать?

Запуск различного оборудования. У меня нет спецификаций для Linux-бокса, но мой xp-бокс - Intel Duo Core 2 с Nvidia Quadro FX 1500. Линейная видеокарта Linux была своего рода Nvidia Geforece (это был университетский компьютер).

Некоторый код инициации:

FlyWindow::FlyWindow() :
GlowWindow("fly", 300, 100, // GlowWindow::autoPosition, GlowWindow::autoPosition,
       700, 500,
       Glow::rgbBuffer | Glow::doubleBuffer |
       Glow::depthBuffer | Glow::multisampleBuffer,
       Glow::keyboardEvents | Glow::mouseEvents | Glow::dragEvents |
       /*Glow::menuEvents | */ Glow::motionEvents | Glow::visibilityEvents |
       Glow::focusEvents /* set ::glutEntryFunc */ ),

W(700), H(500),
flock(10),
lastSeconds(myclock.getSecondsSinceStart())
{
    myfps = FPScounter();

    GLdraw<float>::initGL(W,H);

    // Add a bouncing checkerboard
    MovingCB = Point3d<double>(50, 2, 50);

    Glow::RegisterIdle(this);
    bDebug = false;
    m_bLookAtCentroid = true;
    m_bLookAtGoal = false;
}

Спасибо

Ответы [ 3 ]

3 голосов
/ 27 января 2009

Сравнение Quadro с GeForce - большая ошибка. Обе они могут быть «графическими» картами, но на этом сходство заканчивается.

Quadro предназначен для рендеринга высокого класса, а не для игр. Из статьи в Википедии о Quadro:

Их дизайнеры стремились ускорить CAD (автоматизированное проектирование) и DCC (создание цифрового контента), и карты обычно используются на рабочих станциях. (По сравнению с линейкой продуктов NVIDIA GeForce, которая специально предназначена для компьютерных игр).

Quadro собирается преформовать совсем иначе, чем GeForce, независимо от операционной системы.

3 голосов
/ 27 января 2009

Как упоминал DrJokepu в комментариях, возможно, что XP использует рендеринг программного обеспечения, что подразумевает проблему с установкой драйвера. Вы можете проверить это, запросив GL_VENDOR и GL_RENDERER:

printf( "%s\n", (const char*)glGetString( GL_VENDOR ) );
printf( "%s\n", (const char*)glGetString( GL_RENDERER ) );

Поставщиком должна быть NVidia, а не Microsoft, а средством визуализации должен быть хотя бы OpenGL 2.0.

0 голосов
/ 27 января 2009

QuadroFX 1500 не совсем новая карта. Узнайте, что есть в Linux, и сравните спецификации оборудования. В моих проектах (отображение данных с плотным сигналом) я обнаружил, что производительность OpenGL практически одинакова для Linux / Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...