Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Немного софтверного рендеринга (10 стр)

Немного софтверного рендеринга (10 стр)

Страницы: 15 6 7 8 9 10
FordPerfectПостоялецwww12 фев. 201817:15#135
return [](){};
А ты его в живую щупал?
Мне интересно, как он себя ведёт.

Потому что их пример - странный (возможно типичный для их пользователей, но для рядовых графпрограммистов...).
Ну вот они рисуют 3*10^6 треугольников с 10+ FPS. Кабаны.
А какой там fillrate при этом?
А как это меняется с уменьшением количества треугольников (их график начинается от 3M)?
Насколько там сложный шейдинг и как от этого зависит скорость?

eDmkПользовательwww12 фев. 201817:20#136
О! Есть с чем сравнить.
Intel OpenSWR - 1024x1024: 2.9 млн треугольников ~13.5 fps (Intel® Xeon® E5-2699 v3 Processor, 2 x 18 cores, 2.3GHz), инструкции AVX, AVX2
Intel OpenSWR - 1024x1024: 106.2 млн треугольников ~0.65 fps (Intel® Xeon® E5-2699 v3 Processor, 2 x 18 cores, 2.3GHz), инструкции AVX, AVX2

Мой рендер - 1024x1024: 2.3 млн треугольников ~20.5 fps (Core i7 6950 Extreme Broadwell E, 1 x 10 cores, 3.4 GHz), инструкции MMX, SSE-SSE4.2
Мой рендер - 1024x1024: 106.2 млн треугольников ~0.5 fps (Core i7 6950 Extreme Broadwell E, 1 x 10 cores, 3.4 GHz), инструкции MMX, SSE-SSE4.2

Тормоза :) Но для каких то задач вполне.

Правка: 13 фев. 2018 4:36

eDmkПользовательwww12 фев. 201817:22#137
Dampire >И что ты там отладишь?
Вот например шейдер на Delphi:
+ Показать
eDmkПользовательwww12 фев. 201817:24#138
>А какой там fillrate при этом?
Я вот тоже говорю — никакой. Процессор может насчитать больше чем пропускает память.
return [](){};Участникwww12 фев. 201817:28#139
FordPerfect
> А ты его в живую щупал?
Нет, мне лень. А почему ви спгашиваете?
Если есть интересные вопросы, могу попробовать оттранслировать интересным людям.

Правка: 12 фев. 2018 17:42

DjeeZПостоялецwww12 фев. 201818:15#140
Dampire
> И что ты там отладишь? То, что конкретно на этой месе они работают?
Да не. Это уже не про Меса. Это свой рендер используют.

Да мало ли где может использоваться. Можно гуи, графики рисовать. Не всё же в игры упёрлось. И даже реалтайм не везде нужен.

return [](){};Участникwww12 фев. 201818:40#141
FordPerfect
Когда я его смотрел раньше мельком:
Там вариация tiling rendering

FordPerfect
> А какой там fillrate при этом?
Не знаю, но думаю большинство этих треугольников вырождаются в ничто и отбрасываются не генерируя филлрейта (это одна из его фичей, что он умеет эффективно (и многопоточно) их отбрасывать).

FordPerfect
> Насколько там сложный шейдинг и как от этого зависит скорость?
Они в какой-то момент перешли на инфраструктуру mesa (которая основана на llvm) для шейдеров, она типа поддерживают любые шейдеры, но производительность кое-где упала в разы.

/A\Постоялецwww12 фев. 201819:52#142
DjeeZ
> А можно софтрендер для отладки шейдеров использовать.
Я планирую так делать:
- транслировать глсл код в с++ шейдер для софтрендера.
- хоткей + клик мышью запускает софтрендер для маленькой области и по брейкпоинту начинаешь отладку шейдера.
- также можно делать сравнение кадров софтрендера и огл/вулкан/дх на предмет корректности рендера.
nonamezeroxПостоялецwww13 фев. 20188:11#143
DjeeZ

Этот?

https://github.com/mesa3d/mesa/tree/master/src/gallium/drivers/llvmpipe

Кстати, конкретно софтверный драйвер из месы можно собирать и под винду, на выхлопе - opengl32.dll и еще несколько дллок. Для сборки нужны llvm, питон и scons.

Есть уже собранные версии:

https://github.com/pal1000/mesa-dist-win/releases


Что умеет, а что еще нет:

https://mesamatrix.net/

Тест llwmpipe и openswr на сервере с двумя зионами 6138:

https://www.phoronix.com/scan.php?page=article&item=llvmpipe-… eon&num=1

Правка: 13 фев. 2018 8:32

DjeeZПостоялецwww13 фев. 201813:26#144
/A\
Я тоже бы хотел. Только, у меня вряд ли руки до этого дойдут. Поэтому вся надежда на таких как вы с ТС. Может быть выпустите когда нибудь в виде продукта.

nonamezerox
Собирал я под Винду. Только где-то в флагах напутал. Потому-что скачанная длл-ка гораздо шустрее работает. Ну и пускай. Зато каждый может скачать и бросить в каталог длл-ку, загрузиться без драйверов и попробовать.

/A\Постоялецwww13 фев. 201820:39#145
DjeeZ
> Может быть выпустите когда нибудь в виде продукта.
У кроноса есть подобное https://github.com/KhronosGroup/SPIRV-Cross

У меня теоретически поддерживаются сериализаторы для сохранения результата конвертации в любой формат, сейчас только в с++ код с моими типами.
Такой формат:
https://github.com/azhirnov/ModularGraphicsFramework/blob/master/… hared_types.h
https://github.com/azhirnov/ModularGraphicsFramework/blob/master/… glowballs.cpp

Но работы там еще много...

DjeeZПостоялецwww14 фев. 201815:53#146
/A\
> Но работы там еще много...
Посмотрел, спасибо. По мере развития ещё посмотрю.
Половина кода современных программистов, стремящихся к универсальности, состоит из аргументов убеждения компилятора в том, что другая половина кода это и есть C++. Я не такой доверчивый как компилятор, который в этом проекте снова кому-то удалось облапошить. Но пока поверю на слово.
Страницы: 15 6 7 8 9 10

/ Форум / Программирование игр / Графика

2001—2018 © GameDev.ru — Разработка игр