ФлеймФорумПрограммирование

Software rendering (17 стр)

Страницы: 116 17 18 1925 Следующая »
#240
19:49, 10 дек 2021

  Для "камня" из #233 картина следующая:

+ Показать

  Как уже кто-то тут ранее подметил, на 64-битных системах быстрее примерно в 2 раза, чем на 32-битных, но только для FPU, для SSE2 результат мало отличается по скорости(всего в 1.2 раза).

#241
20:21, 10 дек 2021

ArtProg
> Как уже кто-то тут ранее подметил, на 64-битных системах быстрее примерно в 2 раза, чем на 32-битных, но только для FPU, для SSE2 результат мало отличается по скорости(всего в 1.2 раза).
Ага, на x64 "FPU" - это тоже SSE2, но скалярный, а не SIMD.

Вообще, идея демки была взять несколько традиционно GPU-шных приёмов (шейдеров), скосплеить их на CPU, и посмотреть, что получится.
Получается... по-разному. У кого-то 10 FPS, у кого-то 100.
Распараллеливается, вроде, довольно ок.

Все 3 версии делают вид, что там внутри 256-битный SIMD, т. е. вектор simd8f - это либо float[8], либо __m128[2], либо __m256[1]. А код "шейдеров" идентичный. Если бы специально оптимизировать FPU/SSE2 под них - может можно бы несколько повысить производительность.
А AVX2 версия у народа и не запускается.

Билинейки нет, совсем. Все выборки - с nearest.

#242
20:31, 10 дек 2021

ArtProg
> для SSE2 результат мало отличается по скорости(всего в 1.2 раза)
А на XP у меня x32 версия даже чуть вперёд вышла.

#243
23:34, 17 фев 2022

А подкиньте какой-нибудь челлендж?
Что бы такое интересное реализовать софтово? Deferred shading? OIT? Мех?
Или что-то, что плохо ложится на GPU?

#244
0:30, 18 фев 2022

Рендеринг дуг окружностей со сглаживанием

#245
2:24, 18 фев 2022

1 frag / 2 deaths
Чисто 2D?

#246
3:05, 18 фев 2022

FordPerfect
реализуй UD в каком-нибудь виде, в котором неудобно делать на GPU.

#247
4:17, 18 фев 2022

FordPerfect
> А подкиньте какой-нибудь челлендж?
> Что бы такое интересное реализовать софтово? Deferred shading? OIT? Мех?
> Или что-то, что плохо ложится на GPU?
  vectorforth - SIMD vectorized Forth compiler with CPU based shader application

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры


Ну или посоревноватся в выводе графики уроков HeHe реализованных на 64-бит ассемблере для Windows.
Уроки от NeHe на masm64
ИзображениеИзображение


P.S. Проверил ради интереса как запускается один из примеров HeHe в Linux на gForth (через биндинг к SDL2)
"деревянный" ящик вращается. . 

Раньше эти адаптации части уроков запускал на Windows в рамках Win32Forth (не стал переносить под SPF4)
- могу добавить исходники их на форум или созданный исполняемый файл  их запуска  и Win32Forth для его сборки или отладки .
(под Wine Win32Forth тоже отлично работает)

Такой примерно отобразился ящик во вращении.
Изображение
 
P.P.S. В рамках фантазийного (софтового ретро-компьютера Retro-40 с языком его программирования  Форт - Ficl)  запустили помимо родного примера рейтрейсинга-3Dлабиринта и сторонний вариант

#248
11:30, 18 фев 2022

FordPerfect
Ну да, 2д.
Я б еще добавил возможность унтверсально принимвть круги, отрезки, дуги и фрагменты ооочень больших кругов, радиусом больше 10 в 7

#249
11:59, 18 фев 2022

Пришла тут в голову такая идея:
Все знают, что честное перспективно-корректное текстурирование в софтрендере штука весьма медленная, ибо требует деления на каждый пиксель (вычисления 1 / (1/z)).
Обычно от деления избавляются кусочно-линейной аппроксимацией, вычисляя 1 / (1/z) для краёв отрезков (скан-линий), а далее просто линейно интерполируют это значение.

Так вот, а почему бы не использовать аппроксимацию квадратичным многочленом? Насколько я понимаю, она может быть гораздо точнее на большем диапазоне. Есть ли реальные примеры, чтобы кто-то реализовывал перспективную коррекцию таким способом?

К примеру:
Изображение
Функция считается точно для краёв малого синего интервала и имеет точность в 1% в пределах большого синего интервала.

#250
12:02, 18 фев 2022

Panzerschrek[CN]
Ну лишняя переменная и лишнее сложение во внутреннем цикле

#251
12:11, 18 фев 2022

1 frag / 2 deaths
> Ну лишняя переменная и лишнее сложение во внутреннем цикле
Это понятно.
Но зато уйдёт больше делений/больше разбиений скан-линий. В идеале вообще, можно деления только в вершинах треугольников делать.

#252
12:50, 18 фев 2022

Panzerschrek[CN]
> В идеале вообще, можно деления только в вершинах треугольников делать.
Да вот нифига...
Panzerschrek[CN]
> Но зато уйдёт больше делений/больше разбиений скан-линий.
Да, но эти операции каждый 8й пиксель дешевле, чем лишние регистры во внутреннем цикле

#253
13:38, 18 фев 2022

Panzerschrek[CN]
> честное перспективно-корректное текстурирование в софтрендере штука весьма медленная
Есть подозрения, что на современном x86 не особо.
vdivps - 8 делений за ~15 тактов (latency).
vrcpps - 8 (аппроксимированных) делений за ~3 такта (latency).
Хотя vgatherps тоже пошустрее стал.

#254
13:54, 18 фев 2022

Vlad2001_MFS
> 32-битная версия: (после закрытия повесила мне комп со 100% загрузкой
> проца....)

у меня она комп повесила при попытке развернуть окно на full screen (до этого успел на SSE2 переключиться)

Vlad2001_MFS
> 64-битная версия:
на фулл скрине работает нормально на FPU/SSE2

> FPU - 44 fps
> SSE2 - 90 fps
у тебя наверное райзен 1600 ? :D

на моём старичке в 4 потока :
11-15 fps
27-30 fps

Vlad2001_MFS
> Посмотрел у себя последний билд из этого поста
> https://gamedev.ru/flame/forum/?id=242498&page=15&m=5488179#m219

красивая демка - по виду смотрится прям как трассировка лучей источников света в лужах (в некоторых современных играх) .. :D

Страницы: 116 17 18 1925 Следующая »
ФлеймФорумПрограммирование