Войти
ПроектыФорумУтилиты

Движок 'Сухарь Ванильный' (62 стр)

Страницы: 157 58 59 60 61 62
#915
12:34, 21 сен. 2013

sb3d
> При использовании недокументированных фич вылезут проблемы рано или поздно
Из документации 1.2

void *pixels;                          /* Read-write */

pixels  Pointer to the actual pixel data


Юзай спокойно, они разрешают, именно для этого они оставили голый указатель на данные. Если бы было нельзя, его бы скрыли.
Только перед шаманством не забудь залочить сурфейс


#916
14:02, 21 сен. 2013

sb3d
> Только один вопрос тревожит: а доступ к surface->pixels, это официально
> разрешено? Скажем так, это документированная возможность, или хак, который не
> тестировался на всех осях?
Ну у меня же там везде SDL_LockSurface - это мьютекс, всё как в учебниках. Используйте блокировки и проблем точно не будет. Многопоточно вот как сделать - не знаю. Возможно, если рендерить построчно (сканлайн чересстрочно по одному на ядро) - ничего страшного.

sb3d
> Кстати, я бы так не стал писать цикл доступа к точкам. Выйдет за границы
> памяти, если количество пикселов будет не кратно четырём. У меня ведь
> произвольного размера окно.
Я вручную развернул цикл - прирост 30%, просто поленился поставить проверку границ, надо между рядов повставлять: if(unlikely(i>=length)) break;

sb3d
> И да, генератор случайных чисел у тебя интересный. Быстрый. Интересно, даёт ли
> он достаточно равномерное распределение на тестах?
Генератор писал по одной научной статье, могу поискать ссылку если интересно. Проходит все тесты (тоже не помню какие).

#917
21:58, 21 сен. 2013
RPG
> Генератор писал по одной научной статье, могу поискать ссылку если интересно.
> Проходит все тесты (тоже не помню какие).
На Intel сайте есть fast_rand() в два раза более быстрый чем стандартный и rand_sse() — в 5.5 раза. Не знаю насколько они актуальны для Core.
http://software.intel.com/en-us/articles/fast-random-number-gener… -4-processor/
#918
22:13, 21 сен. 2013

entryway
> На Intel сайте есть fast_rand() в два раза более быстрый чем стандартный и
> rand_sse() — в 5.5 раза. Не знаю насколько они актуальны для Core.
Мой в 10 раз быстрее стандартного. Но да, он не SSE, SSE вариант хорош, когда надо сразу 4 случайных вектора получить. Когда-нибудь тоже попробую. Компилятор gcc очень неплохо справляется с векторизацией, так что не исключаю, что SSE оптимизация вообще ничего не даст.

Прошло более 1 года
#919
1:43, 13 ноя. 2014

Привет!
А ты не думал выложить исходники движка в опен-сорс?

Страницы: 157 58 59 60 61 62
ПроектыФорумУтилиты

Тема в архиве.