Unity 6 Preview - тест GPU Resident Drawer

Давно наблюдаю хайп вокруг новой фичи в Unity 6, которая в теории должна сильно бустануть производительность проектов на движке. Захотел сегодня провести простенький тест на HDRP примере и результаты скорее удивили.

Unity 6 Preview - тест GPU Resident Drawer

О чем речь

The GPU Resident Drawer automatically uses the BatchRendererGroup API to draw GameObjects with GPU instancing, which reduces the number of draw calls and frees CPU processing time.

docs.unity3d

Подготовка

Значит беру версию движка 6000.0.019f1, а так же версию 2022.3.15f1. В каждом создаю с нуля проект со стандартным примером под HDRP, благо он и под новую версию есть уже. Настройки в Unity 6 меняю по их мануалу. Выключаю вертикальную синхронизацию, снимаю ограничение по фпс и еще накидываю простой скрипт с Time.frameCount / Time.time (впрочем Nvidia мне и так фпс показывала).

В редакторе смотрим

Не самый надежный способ смотреть на производительность в редакторе, но в нем можно заметить прочие изменения.

Проект под 2022.3, довольно много батчей
Проект под 2022.3, довольно много батчей
Проект под 6, есть какие то минимальные изменения, возможно когда они делали пример под эту версию чуть меняли, но минимально. Только вот где фпс? Может редактор тяжелее стал.
Проект под 6, есть какие то минимальные изменения, возможно когда они делали пример под эту версию чуть меняли, но минимально. Только вот где фпс? Может редактор тяжелее стал.

Итак, потирая ручки я применил настройки и предвкушал буст

И draw calls реально сильно уменьшились, а так же касты теней в два раза. Но чет фпс не многообещающий.
И draw calls реально сильно уменьшились, а так же касты теней в два раза. Но чет фпс не многообещающий.

Билд

Как разработчики и обещают, время билда сильно увеличилось, если в 2022 это заняло около 20 минут, то в 6 чуть меньше часа.

Билд в 2022 выдает 174 фпс, весит 341 мб
Билд в 2022 выдает 174 фпс, весит 341 мб
Билд в 6 с RD выдает 186 фпс и весит 408 мб
Билд в 6 с RD выдает 186 фпс и весит 408 мб

В другом месте сравнение еще менее заметно

Ну типа в среднем на 10 фпс выше и все, если сцена не насыщена инстансами.
Ну типа в среднем на 10 фпс выше и все, если сцена не насыщена инстансами.

Итог

Ну честно я ожидал большего, особенно когда увидел как заметно уменьшились draw calls. С другой стороны от меня потребовалось поставить одну галочку и просто ждать долго билда. А еще вероятно редактор стал тяжелее, это прям не очень хорошо если так, 2022 с каким-нибудь Odin задыхается и так.

Я понимаю, что прям серьезный буст можно получить собрав тяжелую сцену, например с травой, деревьями, множеством инстансов статичных обьектов. Но тогда этот тест может занять много больше времени, чтобы этот проект работал одинаково в двух разных версиях Unity. Попробую позже повторить эксперимент задушив инстансами в кадре и так же расскажу что получилось, должно стать заметнее.

А пока можете поддержать меня и поиграть в CyberCorp :) У нас кстати сегодня будет обновление с новым игровым режимом и множеством улучшений.

1212
11
46 комментариев

Ну разница кстати еще в тенях заметно, где-то он отсутствуют в 6, а где-то они мягче

2
Ответить

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

1
Ответить

Это больше актуально либо для тяжелых сцен, либо для слабых или старых GPU. На современных GPU и графических API дроколы не создают такой оверхед как раньше.

2
Ответить

Тут в принципе дроуколы в resident drawer-e отличаются от стоковых, за счет того как BRG работает, они ультра легковесные и не шлют постоянный дроу стейт материалов и мешей в дроуколе, а изначально регистирует проперти мешей и материалов и хранят на гпу, оставляя в дроуколе минимально - пер инстанс проперти измененные, плюс ltw матрицу в brg юзают 4х3 вместо 4х4 в итоге значительно сокращая нагрузку на шину.

Ответить

>Ну честно я ожидал большего, особенно когда увидел как заметно уменьшились draw callsСмотреть надо на количество SetPass Calls. И оно изменилось не сильно. Количество батчей в urp/hdrp абсолютно бесполезный показатель.

1
1
Ответить

вообще я просто забайтился на видосы и комменты о том что с RD резко возрастет производительность и там обычно точно так же кидают проект, смотят фпс без, включают RD и говорят сразу что намного больше фпс станет одним кликом. Но на деле не все так просто, узкая направленность у конкретно этой фичи.
Лучше бы из коробки были решения по простой оптимизации Skinned Mesh :)

Ответить

Ну честно я ожидал большего, особенно когда увидел как заметно уменьшились draw calls.

Ну как и наниты в УЕ, получается. Вроде все круто на презентациях, а на деле скорее пук-среньк и минус 10 фпс

Но такие штуки скорее больше на сценах с кучей ассетов будут давать буст. А на небольших сценах наоборот - медленнее работать (ну у нанитов оно примерно так)

1
Ответить