Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Тормоза Direct3D и OpenGL под Vista и Windows 7 [D5, WinXP]


novarm44 ©   (2009-05-30 01:55:00) 

Программа (CAD) использует для рисования DirectX 8 и OpenGL (по выбору). Почему-то в Vista и Windows 7 графика в обоих режимах работает в 2-3 раза медленее, чем в XP - на больших проектах довольно критично. С драйверами все нормально - стоят родные от NVidia.

Никто с таким не сталкивался? Нужна ли какая-то специальная оптимизация под Vista/Win 7?


novarm44   (2009-06-12 14:58:00) [1]

Вопрос решился. На компе стоит карточка "Engineering Release - Not for production use". В итоге скорость рендеринга приблизительно раз в 10 меньше чем на обычном компе. Поставили семерку на другой комп - там все работает также как в XP.


novarm44   (2009-06-07 21:01:00) [2]

Переделали под DirectX 9. Результат - скорость в Vista/Win 7 не возросла, но стало работать на ноутах с интегрированными видухами (8-ка вылетала с синим экраном или некорректно рисовала), так что оставляем.


Sapersky   (2009-06-04 10:24:00) [3]

Как я понял отсюда:
http://download.microsoft.com/download/5/b/9/5b97017b-e28a-4bae-ba48-174cf47d23cd/PRI034_WH06.ppt
старые версии D3D эмулируются D3D9 ("Map older runtimes onto Direct3D 9 DDIs, E.g., runtimes Direct3D 8, DirectDraw"). Насчёт OGL не вполне понятно, возможно, тоже эмулируется: "Limited inbox support for application compatibility - Using Direct3D 9". Кроме того, в Висте нет как такового Fixed-function pipeline, поэтому "Fixed-function onto shaders, etc.".
Возможно, все эти эмуляции делаются не вполне эффективно, отсюда имеем тормоза.
Ну и Aero сам по себе должен давать (по оптимистичным оценкам :)) 10% замедление:
http://www.opengl.org/pipeline/article/vol003_9/
Т.е. для начала можно попробовать его отключить. Мало ли, кривые драйвера попались и 10% доросли до 50%.

Ещё можно попробовать сделать вариант рендера на D3D9. Это не сложно, для простой 2D-графики 9-ка почти не отличается от 8-ки, см., например, модуль DX89_Core.pas отсюда:
http://sapersky.narod.ru/files/AnyDX2D_v0.6.rar


Наверх

Титульная страница Поиск, карта сайта Написать письмо