LINUX.ORG.RU

Ray Tracing (Vulkan) на AMD Vega(Mesa)

 , ,


2

3

Поддержка Ray Tracing (далее RT) у AMD заявлена лишь для поколения RDNA2 графики, в то время как более ранняя Vega, используемая в т.ч. во всех выпущенных на сегодняшний день APU Ryzen, её официально лишена.

В мае 2021 Joshua Ashton показал возможность поддержки RT на Vega (статья в броузере в центре --- там детали). В сентябре был подготовлен патч для Mesa, к концу года принят в dev-ветку, но войдёт лишь в грядущую Mesa 22.0.

Cлева показан пример RayTracing reflection(Sascha Willems'a), запущенный на встроенном видео AMD Ryzen 3 2200G(устройство - RADV RAVEN). Справа же Vulkan Hw Capability Viewer --- расширения VK_KHR_acceleration_structure и VK_KHR_ray_tracing_pipeline присутствуют.

Замечу, что производительность на встроенном видео удручающая, расширения VK_KHR_ray_query, VK_KHR_pipeline_library, VK_KHR_deferred_host_operations отсутсвуют, но для знакомства с RT может подойти.

>>> Просмотр (2536x1080, 510 Kb)

★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 2)

Поддержка Ray Tracing (далее RT) у AMD заявлена лишь для поколения RDNA2 графики

Аппаратная поддержка - да.

производительность на встроенном видео удручающая

Она и на дискретном видео такая же.

devl547 ★★★★★
()

Это всё круто конечно, но быстрее и надёжнее динамические кубмапы пока что + SSRL. Разве что для пакетов моделирования/рендеринга там вполне себе пойдёт. Даже топовые железки полудохнут на трассировке. Так, включить глянуть как оно и выключить ))))) К тому же сама трассировка геморная её нельзя просто взять и включить нужно очень избирательно пердолится и на выходе пришли к тому от чего уходили, а именно уходили от пердолинга с кубмапами, от хаков в виде экранной трассировке от буфера глубины пришли к тем же самым тормозам при наивном использовании лучей. Да, где то от этого реальный очень весомый плюс, где-то но не везде. Станем дедами старыми будет рядом с GPU стоять соразмерный кристалл TRPU который только и будет что считать отражения/затенения и всё, ведь для полноценного рейтрейсинга нужно > 142% всей вычислительной мощи чипа в простейших сценках. Опять же Ъ рейтрейсинг говно априори как сущность просто потому что выкидывает в помойку все механизмы отсечения геометрии и на замену им привносит прибитые гвоздями неуправляемые механизмы.

Либо топовое железо на ближайшие 10 лет, либо лучше просто забыть о существовании железного RT. Лучше бы блоки шейдерные нарастили управляемые, а люди уж додумают сами куда пустить свободные вычислительные мощности в том числе и для отражений/затенений.

LINUX-ORG-RU ★★★★★
()

хм, а на RX560 интересно это работает? не вижу никаких явных причин чтобы не работало, но надо будет потыкать посмотреть.

Unixson
()
Ответ на: комментарий от LINUX-ORG-RU

рейтрейсинг говно априори как сущность просто потому что выкидывает в помойку все механизмы отсечения геометрии

А его только для отражений можно использовать? Нельзя на него вынести с CPU обсчет коллизий?

SR_team ★★★★★
()
Ответ на: комментарий от SR_team

Тот что железный думаю нельзя, ну разве что какое то извращение придумать. А обсчёт коллизий именно сами вычисления можно вынести в обычный шейдер даже не вычислительный, но выигрыш будет только при реально большом числе объектов, на малом только проигрыш.

Опять же смотря какие тебе коллизии нужны если использовать лучи как трекеры положения объектов, ну хз можно наверное, опять же это будет что-то специфическое.

Рейтрейсинг сейчас есть в принципе в 99.9 процентах игорей где есть шейдерное освещение, так как это и есть трассировка от буфера глубины с перемешку с нормалями (текстур/геометрии). Представить что луч это позиция объекта можно, только ненужно ))

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

выигрыш будет только при реально большом числе объектов

Да, как раз о большом количестве и думал, типа как крыс в «A Plague Tale: Innocence», только там они не сталкиваются между собой и некоторыми объектами на полу

SR_team ★★★★★
()
Ответ на: комментарий от Unixson

а на RX560 интересно это работает

Eсли я правильно понимаю, на вашей карте (он же Polaris?) тестировалось и работает - «support for RADV has been tested going back to the likes of Polaris GPUs»

Да, Quake II RTX не идёт - т.к. нет поддержки VK_KHR_ray_query

azazello ★★★★
() автор топика
Ответ на: комментарий от SR_team

Там и обычный проц справится с нужными оптимизациями и выкинутыми лишними вычислениями. Там больше проблема как эту гору анимировать, а уж как их гонять туда сюда это дело десятое. С точки зрения физики там не сложнее наверное моей поделки https://www.youtube.com/watch?v=PR1ygScIAdg https://github.com/orangeduck/Corange/tree/master/demos/physics и это на 1 ядре, а с pragma omp parallel (которого в демке нету, я убрал) в несколько раз больше.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от SR_team

можно рейкасты сделать, я так делал. рейтрейсинг можно в компут шадерах пускать, так что можно все, на что хватит фантазии и умений.

Keltir
()

Игрался еще осенью в q2rtx. 30 фпс только если в окне 320x240.

xDShot ★★★★★
()
Ответ на: комментарий от Unixson

Ни о каком удовольствии речи нет, как в плане графической достоверности, так и в производительности.

xDShot ★★★★★
()

Мне кроме этой демки на radv ничего так и не удалось запустить с поддержкой рейтрейсинга. Что на rdna2 что на polaris

mittorn ★★★★★
()
Ответ на: комментарий от Andrew-R

khr_ray_query может быть тут

О! Спасибо за ссылочку!

azazello ★★★★
() автор топика
Ответ на: комментарий от NonameKiriLL

7870 имеет 20 фпс на этом тесте. Интересно сколько встройка топовая будет с rdna2

Сложно сказать, т.к. не совсем понятно, каково соотношение производительности будет у:
- RDNA2 у интегрированного видео (т.к. AMD надо отвечать на GPU в 12м интеловском поколении, но технически RDNA2 может быть сильно быстрое - PS5/XBox демонстрируют)
- этой эмулируемой в Vega инструкции bvh_intersect_ray с её аппаратной версией в RDNA2

Но даже если будет 10-20 раз по сравнению с представленном на этом скрине Ryzen 3 2200G - для игр в сколько-нибудь нормальном разрешении использовать его будет не очень приятно. Лет 10 надо подождать;)

azazello ★★★★
() автор топика
Ответ на: комментарий от xDShot

работает в последней версии q2rtx из гит репы

Спасибо за наводку - действительно из репы запустился (убрали(сделали опциональной) khr_ray_query, только внедрённую в 1.5.0 ;) ). Может потребоваться увеличения обьёма памяти для интегрированного видео до 2GB.

Ну напомнило игру в Q2(вернее попытку) в момент выхода - те же 10 fps в столь же маленьком окне(на ПК без hw gpu в тот момент).

azazello ★★★★
() автор топика
Ответ на: комментарий от Unixson

Жалко, а то бы с удовольствием поиграл

Как заметил xDShot, заводится из репозитория (или надо брать более раннюю версию, чем 1.5.0) - ну и смотреть, чтобы хватало памяти (если интегрированное видео - ошибка в терминал выпадает).

С удовольствием поиграть вряд-ли получится - т.к. по скорости(fps) оно близко к оригинальному Q2 в момент выхода на типичном компе тех времён без видео с акселерацией ;) Но понастальгировать вполне возможно ;)

azazello ★★★★
() автор топика

А обычный RDNA (не RDNA2) оно не поддерживает? Собрал месу из git, в списке расширений VK_KHR_ray_tracing_pipeline нет.
Disregard that, забыл проставить RADV_PERFTEST=rt. Впрочем, все демки, кроме raytracingbasic, всё равно падают с IOT Instruction.

dvrpd
()
Последнее исправление: dvrpd (всего исправлений: 3)
Ответ на: комментарий от dvrpd

Впрочем, все демки, кроме raytracingbasic, всё равно падают с IOT Instruction.

Если что - использовалась сборка под убунту от Oibaf - 2.0~git2201180600.e4c582~oibaf~f - т.е. срезка от 18 числа. Не работает rayquary(расширение в очереди на мерж) и raytracingshadow - остальные три - rt: basic, callable, reflection(на скрине) работают корректно. Сейчас обновлюсь на сегодняшнюю сборку - перепроверю.

upd/2: С сегодняшней(на 6 утра) срезкой гита тоже всё ок. Но уже были правки в radv_accelerated_structure - она тут используется - может там поломали. Или это RDNA специфичное что-то:(

azazello ★★★★
() автор топика
Последнее исправление: azazello (всего исправлений: 2)
Ответ на: комментарий от NonameKiriLL

Это и есть «мобильные» 6000-ки, Ryzen 6000 series

7000ые APU уже в начале следующего года выйдут, как обычно у АМД.

One ★★★★★
()
Ответ на: комментарий от One

Для hand устройства пойдёт, упор в гпу( лучше чем в ноутбуках (там 6 cu в самых слабых), в деке 8 cu.

NonameKiriLL
()
Ответ на: комментарий от One

Там цена славная за базовую версию, в которую можно вставить M2 SSD дополнительно. по духу - так вообще thinkPad - т.е. конструктор;)

azazello ★★★★
() автор топика
Ответ на: комментарий от dvrpd

Проверил снова, в этот раз с месой 22.0.0-rc2. IOT Instruction не было связано с самим драйвером, и решилось комментированием одной строчки в коде.
https://github.com/SaschaWillems/Vulkan/issues/551
После этого всё заработало. На RX 5500XT 8GB raytracingshadows выдаёт максимум 6 fps, raytracingreflections - ~45-55.

dvrpd
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.