static_cast
Возьми месу и не мучайся. Или двиг от кваки. Короче, потрать время на что-то полезное:)
А есть где-нибудь сравнение месы с другими софтрендерами? Меса вроде как это референс - интересно насколько старались его оптимизировать
На https://msdn.microsoft.com/en-us/library/gg615082.aspx#architecture есть тесты WARP для Direct3D 10 Crysis running at 800x600 .
Вот, кстати, по самой Mesa где-то бенчмарки есть?
Ghost2
Я собирал под винду, не скажу что шибко быстрый. Правда я шейдеры там мучал :))
Blew_zc
> Или двиг от кваки
Он будет работать только с картами от кваки. И кому оно туда надо?
снова вернулся к работе. Какая-то ересь происходит, не хочу ради такого тему создавать. Такой код (схематически):
void mm(( ...) , type* in, int s, int n, vec4* out, ( ...) ) { for ( int i = s; i < s + n; i += 3) { ( ...) for ( int j = 0; j < 3; j++) { out[ i + j ] = some_fun( in[ i + j ] ); ( ...) in[ i + j ].some_vec4 = out[ i + j ]; } ( ...) } } ( ...) vec4 some_fun( type& in ) { mat4 mt( 1.f); vec4 res = mt * vec4( in.some_vec4, 1 ); return res; }
первые мгновения вроде работает, но затем начинает постепенно тормозить, и так до практически полной остановки.
static_cast
Тут тормозить нечему. Ну разве что n увеличивается каждый раз.
тогда вообще не понимаю. Программа не вылетает, не крашится, память не жрёт, тупо виснет. Причём не намертво. Она просто начинает работать всё медленнее. Пффф.
static_cast
Профайлер?
static_cast
> vec4* out
> out[ i + j ] =
> vec4 some_fun( type& in )
что-то тут не так с типами :) все так %)
ЗЫ. Вообще, код, выдранный из контекста. Ванги в отпуске.
static_cast
Пауза в главном цикле стоит?
с типами действительно несогласованность. Коряво перенёс. Теперь исправил.
Причем эта дрянь появляется, когда in.some_vec4 присваиваю out.
static_cast
Ты при этом что-то рисуешь? А то может у тебя там NaN'ы да Inf'ы вылазят...
убираю строчку - всё нормально.
А что, NaN и Inf могут такое спровоцировать? Просто и правда похоже, что проблема где-то рядом с этим.
static_cast
> А что, NaN и Inf могут такое спровоцировать?
Ну, если проверок нет - может быть все что угодно. Когда начнет тормозить - посмотри в дебаггере на свои массивы.
static_cast
> Причем эта дрянь появляется, когда in.some_vec4 присваиваю out.
Вместо
in.some_vec4[ i + j ] = out[ i + j ];
должно быть
in[ i + j ].some_vec4 = out[ i + j ];
не?
Тема в архиве.