В то время как трассировка лучей уже давно работает в Linux с NVIDIA, ситуация с Mesa+AMD все еще находится в стадии решения, но хорошая новость заключается в том, что все наконец-то сходится.
Разработчик Bas Nieuwenhuizen написал в блоге о текущей ситуации, отметив, что после более чем 9 месяцев работы, они теперь видят работающие игры. Control – это один из показанных заголовков, которая работала “с первой попытки”, как только необходимые биты были подключены в драйвере radv Mesa.
Nieuwenhuizen упомянул о тестировании следующих игр:
- Quake 2 RTX (Vulkan): работает.
- Control (D3D): работает. Практически только работает. Работает, возможно, на 30-50% от производительности RT на Windows.
- Metro Exodus (Vulkan): работает. Требуется одно обходное решение, и он очень привередлив в WSI, но в остальном работает отлично. Работает на 20-25% от производительности RT на Windows.
- Ghostrunner (D3D): Не работает. Здесь действительно нужна компиляция каждой шейдерной группы, а не просто объединение всех шейдеров вместе, так как сейчас я получаю шейдеры с 1 миллионом NIR-инструкций, что доставляет неудобства при отладке.
- Doom Eternal (Vulkan): Не работает. Опция трассировки лучей в меню остается серой, и на данный момент я не понимаю, что нужно сделать, чтобы игра позволила включить RT.
Еще не все готово, предстоит еще много работы. Nieuwenhuizen все еще должен перенести код в официальные репозитории Mesa, необходимо улучшить “модель компиляции конвейера, чтобы надеяться заставить ghostrunner работать”, поработать над производительностью с улучшенным “построением BVH”, улучшить обход и затем также перейти к битам, необходимым для DXR 1.1, включая VK_KHR_ray_query.
Так что все идет своим чередом. Надеюсь, к концу года мы сможем увидеть нормально работающую трассировку лучей AMD в Linux.