Я тестировал одну и ту же игру в нескольких форках Yuzu (Eden, Citron и Sudachi) на одинаковом оборудовании, с теми же драйверами и операционной системой. Все они используют Vulkan, однако время кадра и уровень микрофризов заметно различаются даже после полного создания шейдерного кэша.
Поскольку эти проекты основаны на одной кодовой базе Yuzu, я ожидал практически одинакового поведения Vulkan. Однако результаты показывают обратное. Для сравнения я также изучил различия между Yuzu и Ryujinx:
playwithyuzu.com/yuzu-vs-ryujinx/, но это не объясняет расхождения между самими форками Yuzu.
Вопросы
Могут ли различия быть связаны с реализацией асинхронной компиляции шейдеров в каждом форке?
Насколько сильно на производительность влияет разный подход к синхронизации CPU и GPU (fences, semaphores и т.д.)?
Какие методы бенчмаркинга позволяют определить, связана ли разница с Vulkan-бэкендом эмулятора или с драйвером GPU?
Буду признателен за мнение людей, знакомых с разработкой или анализом Vulkan-бэкендов в эмуляторах.