GPU FPS limit

spensnp

Существует ли в современных GPU _принудительное_ ограничение на частоту обновления видеобуфера 3D сцены? Вопрос навеян тем обстоятельством, что относительно современная GF GT 240 видеокарта показывает меньшую частоту кадров (около 100 чем старая бюджетная GF 6200 (130 кадров в секунду).

margadon

интересно как ты себе это представляешь
вдруг сцена вообще не рисуется на экран? вдруг она просто на оффскрин-плейн и нужна для отрисовки например динамических текстур?
максимум что может быть, имхо - синхронизация vsync
а вообще может быть ситуация, что старая карта заставляет игрушку (или что там) использовать directx младших версий, а новая позволяет себя драть в хвост и в гриву, потому по факту фпс ниже

spensnp

> интересно как ты себе это представляешь
я понимаю, что это странное предположение, но оно напрашивается из экспериментальных результатов. FPS вроде больше, чем частота вертикальной синхронизации. Кстати, как в Xorg проверить, включена ли вертикальная синхронизация?
> старая карта заставляет игрушку (или что там) использовать directx младших версий
Собственно замеры FPS производятся в программе PyMol (http://www.pymol.org/): pymol несколько раз рендерит некоторую фиксированную сцену. Это программа для визуализации молекулярных систем и врядли они там особо заморачивались переключениями между различными версиями OpenGL.

juliuzz

вполне возможно, что хромает реализация opengl новой карты
а ещё, что пимол пиздит :)

vitaly-pk56

Как-то ради интереса смотрел, сколько фпс сможет показать моя gtx280 в ns, после отметки в 750 мне надоело играться с настройками :)

spensnp

пимол пиздит
ну pymol вроде вообще не умеет показывать FPS, поэтому я запускаю в нем такой скриптег который обновляет экран раз сто и замеряет затраченное время, так что все должно быть ровно

from pymol import cmd
from time import time

def fps(_n=100):
"Print FPS count. Use fps.pse for comparative tests."
n=int(_n)
for i in xrange(n):
if i==0: t=time
cmd.refresh
if i+1==n: t=time-t
print "%.2f FPS"%(n/t)

cmd.extend("fps", fps)

elenangel

почему не сделать вот так и не считать в цикле еще время на 2 дополнительных ветвления? я понимаю, что оно достаточно мало по сравнению с рендерингом, но всё же

from pymol import cmd
from time import time

def fps(_n=100):
"Print FPS count. Use fps.pse for comparative tests."
n=int(_n)
t=time
for i in xrange(n):
cmd.refresh
t=time-t
print "%.2f FPS"%(n/t)

cmd.extend("fps", fps)

hoha32

который обновляет экран раз сто

При каждом обновлении не происходит ли "инициализации" 3D-режима? Старые карты от нВидиа из-за особенности реализации драйверов каждую последующую такую "инициализацию" (корректного программерского названия боюсь не вспомню) просто игнорировали и не проседали по фпс. Новые мб менее толерантны.

spensnp

не считать в цикле еще время на 2 дополнительных ветвления
я когда писал, подумал о времени на инициализацию цикла и создание объекта xrange, а два ветвления как-то проигнорировал.
Оставить комментарий
Имя или ник:
Комментарий: