Задать вопрос
@lizadaniel

Почему производительность Vulkan отличается между форками Yuzu, даже при одинаковом оборудовании и драйверах GPU?

Я тестировал одну и ту же игру в нескольких форках Yuzu (Eden, Citron и Sudachi) на одинаковом оборудовании, с теми же драйверами и операционной системой. Все они используют Vulkan, однако время кадра и уровень микрофризов заметно различаются даже после полного создания шейдерного кэша.

Поскольку эти проекты основаны на одной кодовой базе Yuzu, я ожидал практически одинакового поведения Vulkan. Однако результаты показывают обратное. Для сравнения я также изучил различия между Yuzu и Ryujinx: playwithyuzu.com/yuzu-vs-ryujinx/, но это не объясняет расхождения между самими форками Yuzu.

Вопросы
Могут ли различия быть связаны с реализацией асинхронной компиляции шейдеров в каждом форке?
Насколько сильно на производительность влияет разный подход к синхронизации CPU и GPU (fences, semaphores и т.д.)?
Какие методы бенчмаркинга позволяют определить, связана ли разница с Vulkan-бэкендом эмулятора или с драйвером GPU?

Буду признателен за мнение людей, знакомых с разработкой или анализом Vulkan-бэкендов в эмуляторах.
  • Вопрос задан
  • 141 просмотр
Подписаться 1 Сложный Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик игр на Unity
    13 месяцев
    Далее
  • Skillbox
    Профессия Разработчик игр
    12 месяцев
    Далее
  • Академия Эдюсон
    Разработчик игр на Unreal Engine: тариф PRO
    9 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
TrueBers
@TrueBers
Гуглю за еду
Различия могут быть абсолютно во всём.
Даже если изначально был взят хороший движок, много ума не надо, чтобы поломать его одной строкой кода.

"уровень микрофризов" это не обязательно про рендеринг. Фризы может давать любая блокировка потока. Это может быть I/O, примитив синхронизации, spinloop, — ещё миллион вариантов. Любой недетерминированный код, который вызывается дольше 16 миллисекунд может дать фриз.

Все они используют Vulkan
Мерседес, Автоваз, Порше, ГАЗ, БМВ — все они используют станки, молотки, литьё, ковку, рабочих, конвеееры. Как эти инструменты должны сказаться на качестве готовой продукции? Вот точно так же можно использовать Вулкан и сделать конфетку, а можно навайбкодить кусок говна, в котором даже специалист с 20-летним стажем не разберётся без пол-литры.

Могут ли различия быть связаны с реализацией асинхронной компиляции шейдеров в каждом форке?
Могут быть связаны с любой строкой кода компилятора, эмулятора, игры, ОС и драйверов.

Насколько сильно на производительность влияет разный подход к синхронизации CPU и GPU (fences, semaphores и т.д.)?
Как небо и земля. Как Мерседес и Автоваз. Как на 0%, так и на 100%.

Какие методы бенчмаркинга позволяют определить, связана ли разница с Vulkan-бэкендом эмулятора или с драйвером GPU?
Профилировщик, исходники эмулятора, исходники игры, 10 лет опыта, и пара сотен часов свободного времени.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы