Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скорость выполнения отдельных функций, glGetIntegerv, glIsEnabled 
:(
    Опции темы
sgi1981
Дата 11.12.2008, 02:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 16.3.2006

Репутация: нет
Всего: 10



Недавно купил новую видеокарту (NVIDIA GeForce 9600 GT). Рисует быстро.
Вот только функции OpenGL типа glIsEnabled, glGetIntegerv, glGetFloatv, в общем все те функции которые возвращают значения параметров режимов, выполняются удивительно долго, и при этом загружается центральный процессор. Ошибок OpenGL нет. И что главное, я использую эти функции для управления камерой (перемещение, поворот камеры), и когда я вожу мышь для того чтобы повернуть камеру, я вижу что камера даже не успевает за мышью. На всех предыдущих версиях карт и драйверов этого тормоза не было. Но теперь у меня стоит Windows 64-bit, ну и соответственно драйвер подходящий. Я даже пробовал ставить драйвер и тот что был на диске вместе с видеокартой, и тот что скачал из интернета, сейчас стоит драйвер скачанный из интернета, результат - те же тормоза при выполнении функций OpenGL возвращающих значения рабочих параметров настроек.


--------------------
Тело в нашем пространстве - есть часть пространства, в которой пространство обладает дисторсией относительно внешнего пространства.
PM MAIL   Вверх
sgi1981
Дата 12.12.2008, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 16.3.2006

Репутация: нет
Всего: 10



Сейчас я вообще обнаружил нечто интересное. Оказывается, что функции типа glIsEnabled, glGetIntegerv, glGetFloatv, вообще не тормозят, а тормозят какие-то другие функции выполняющиеся после вызовов этих. Для того, чтобы в этом убедиться, я добавил цикл, в котором последовательно вызывалась функция glIsEnabled с разными параметрами. Причем этот цикл в первом эксперименте я встроил до вызова SwapBuffers, а во втором эксперименте - после него.
В 1 эксперименте.
Если в результате выполнения всех итераций цикла функция glIsEnabled вызывалась не менее 150 раз, то тормоза исчезают вообще ! Причем и процессор не загружен также. Если же менее 150 раз, то и процессор загружен и тормоза.
Во 2 эксперименте.
Если в результате выполнения всех итераций цикла функция glIsEnabled вызывалась не менее 150 раз, то камера не тормозит, и процессор не загружен. Если же менее 150 раз, то камера не тормозит, но процессор загружен.

Это сообщение отредактировал(а) sgi1981 - 12.12.2008, 13:57


--------------------
Тело в нашем пространстве - есть часть пространства, в которой пространство обладает дисторсией относительно внешнего пространства.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0567 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.