У вас нет своего блога? Можете легко его завести и начать писать свои великолепные статьи!
NewsBot
Новостной Бот запостил в IT, софт 1 месяц назад
17

Последние новости о прогрессе лучшего эмулятора Nintendo Switch — Ryujinx

Начать, я думаю, стоит с того, что в прошлом месяце команда разработчиков Ryujinx начала вести работы по поддержки API Vulkan. Его поддержка все еще находится на начальной стадии разработки, но первые результаты уже выглядят многообещающими.

Команда Ryujinx планирует добавление полноценной поддержки Vulkan апреле, хотя первые версии с поддержкой данного API могут выйти уже совсем скоро, в конце марта, так что следите за обновлениями! Ниже вы можете увидеть несколько снимков экрана, которые показывают качество эмуляции при использовании API Vulkan:






Также команда ответила на несколько самых популярных вопросов о добавлении API Vulkan в свой эмулятор — их перевод я приведу ниже:


Будет ли Vulkan поддерживать кеш шейдеров?

Сейчас главная цель — заставить Vulkan работать к обозначенной дате. Если это будет сделано до предполагаемой даты, а для реализации кэша шейдеров еще достаточно времени, то мы сможем добавить кеш шейдеров. В противном случае он останется в качестве дополнительной задачи и будет реализован после того, как мы добавим Vulkan в основные сборки.

Будет ли Vulkan включать компиляцию асинхронных шейдеров?

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

Будет ли Vulkan поддерживать масштабирование разрешения?

Да. Цель состоит в том, чтобы обеспечить равенство функций с OpenGL после выпуска.

Каких еще улучшений стоит ожидать от реализации Vulkan?

Пользователи графических процессоров AMD и Intel должны ожидать значительного улучшения совместимости, производительности и, особенно для пользователей графических процессоров Intel, резкого сокращения графических сбоев. Пользователи NVIDIA могут ожидать небольшого улучшения производительности в некоторых играх. Все графические процессоры должны получить выгоду от более быстрой компиляции шейдеров и меньших задержек на Vulkan.

Чего сейчас не хватает?

Основными функциями, которые пока отсутствуют на Vulkan, но уже есть на OpenGL являются: масштабирование разрешения, мультисэмплинг, текстурный буфер, альфа-тест и условный рендеринг. Есть еще несколько ошибок, которые необходимо исправить, и после этого нам нужно будет изучить проблемы выявленные в закрытом тесте и начать уже открытое тестирование. Реализация SPIR-V (родной язык шейдеров Vulkan) завершена примерно на 65%.


Отчет о проделанной работе:


Реализован отсутствующий формат текстур ETC2.

Отсутствующие форматы текстур могут проявляться по-разному, обычно на конкретных объектах или областях игры. В случае Vegas Party затронут не только конкретный объект, но и почти вся графика (см скриншот ниже). Реализация ETC2 решает эти проблемы.


Улучшения ядра и процессора

Еще в декабре были внесены некоторые изменения в кеш JIT, чтобы исправить утечку памяти и устранить ошибки. К сожалению, побочным эффектом этого стало более длительное время загрузки игр, которые интенсивно используют Map / UnmapPhysicalMemory, в том числе некоторые игры, использующие Unreal Engine 4.

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

Исправление межпроцессорного копирования данных

После последних изменений в рефакторинге IPC в декабре некоторые игры, в которых используются несмежные области физической памяти, начали давать сбой при загрузке из-за повреждения памяти. Среди них были Bravely Default II и Balan Wonderworld Demo и ряд других. Изменение подхода к межпроцессному копированию данных устранило проблему, позволив играм снова грузиться.

Разделение нагрузки — включение многопоточного декодирование VP9

Многие эксклюзивные игры Switch используют особый кодек для видео, который называется VP9. Этот кодек был разработан Google и впервые широко использовался YouTube. До сих пор Ryujinx использовал только один поток ЦП для декодирования этих видео NVDEC. Хотя иногда этого было достаточно, во многих случаях мощности просто не хватало для выполнения работы. Это приводило к прерывистому воспроизведению видео, прерывистому звуку и, в некоторых случаях, длительным паузам. Это изменение позволяет использовать для декодирования до 4 ядер.


PPTC и улучшения пула

По мере развития PPTC (Profiled Persistent Translation Cache) команда все больше убеждается в его преимуществах. Хотя введение разработчиком LDj3SNuD простого ограничителя пулов в январе привело к значительному сокращению использования памяти эмулятором и дальнейшему сокращению времени загрузки, оно сопровождалось уникальной проблемой, наблюдаемой во многих играх (включая Monster Hunter Generations Ultimate и Tokyo Mirage Sessions #FE Encore), а именно всплесками памяти через определенные промежутки времени. Эти всплески вызывали заметные микрофризы при рендеринге видео и воспроизведении звука.

Это обновление не только полностью устраняет вышеупомянутые всплески памяти, но также пересматривает обработку файлов кэша PPTC, значительно снижает использование памяти эмулятором, ускоряет загрузку PTC в 10 раз, а также сокращает продолжительность операций reJIT примерно вдвое.

Повторная реализация audout / audin

Оригинальный аудио api Ryujinx был добавлен в 2018 году без его адаптации к audout и audin (службы вывода и ввода звука в ОС Switch, которые позволяют взаимодействовать с оборудованием Switch), и с тех пор практически не затрагивался. Сейчас команда решила уделить аудио API то внимание, которого оно заслуживает.

Результатом этого достижения является то, что audout наконец-то стал точным, и пользователи могут наслаждаться более низкой загрузкой ЦП во время игры в свои любимые игры (снижение загрузки ЦП в среднем на 50% при использовании бэкэнда SoundIO!). Кроме того, в рамках подготовки к следующим шагам по завершению реализации звука (переработка звукового бэкэнда) весь аудиопроект Ryujinx был реорганизован.

Поддержка модификаций — RomFS

RomFS позволит добавлять модификации в игры — заменяя внутриигровые объекты, такие как текстуры, скины персонажей или даже целые карты в Mario Kart, — но до сих пор это было возможно только в исходных файлах игры. С этим обновлением можно изменить и DLC.


Улучшение эвристики для отображения клавиатуры

Реализация программной клавиатуры получила несколько недавних обновлений, улучшающих функциональность и совместимость. Благодаря улучшенной поддержки клавиатуры стали правильно работать Monster Hunter Generations Ultimate, Fate / EXTELLA LINK и Gnosia.

Реализация GetSystemSessionID

В феврале Super Mario 3D World + Bowser’s Fury был доступен на Ryujinx в первый же день после выхода, но игра вылетала, если опция «Игнорировать отсутствующие службы» была выключена! В течение нескольких часов после выпуска игры отсутствующий сервис был переработан и реализован, что позволило игре нормально загружаться с настройками эмулятора по умолчанию.

Возможность включения опции «Игнорировать отсутствующие службы» во время эмуляции

Многие пользователи уже знают о крайне нужной функции — «Игнорировать отсутствующие службы», которая позволяет играм с отсутствующими службами продолжить эмуляцию. Во многих случаях это устраняет вылеты игры и позволяет Ryujinx работать без поддержки нереализованных служб. Но камнем преткновения в отношении этой опции является то, что ее нужно было включить перед загрузкой игры, чтобы отсутствующая служба могла быть «успешно» проигнорирована. Теперь эту опцию можно переключать на лету! Поэтому, если вы уже запустили игру и хотите изменить настройку, она немедленно вступит в силу.

Улучшения в поддержки контроллеров и переработка SystemInfo

Небольшое, но важное изменение касалось улучшения работы контроллеров использующих DirectInput. В частности, решены проблемы с сопоставлением конфигураций кнопок с помощью графического интерфейса.

Также благодаря переработке сбора информации о процессоре и оперативной памяти, из CPUID и анализа файлов procfs в Windows и Linux уменьшено время запуска Ryujinx примерно в два раза.


Улучшение автоматического обновления эмулятора

Когда прошлой осенью было реализовано автоматическое обновление эмулятора — сообщество Ryujinx было очень радо этой функции, так как отпала необходимость в поиске и загрузке новых сборок.

До сих пор процесс автоматического обновления очищал всю папку Ryujinx во время процесса обновления. Для тех пользователей, которые вручную назначили свою папку данных подпапкой в ​​папке программы Ryujinx, это означало, что все их данные сохранений, кешей шейдеров, кешей PPTC и т. д. стирались простым обновлением до последней версии эмулятора. Несмотря на предупреждения в FAQ, некоторые пользователи стали жертвами этой коварной комбинации.

В последних сборках процесс обновления был изменен, теперь во время обновления удаляются только программные файлы Ryujinx, при этом все остальные структуры папок и подпапок программы Ryujinx сохраняются. Это исключает риск удаления нужных файлов средствами автоматического обновления.




Собственно на этом обзор последних изменений Ryujinx закончен. Надеюсь вам понравилось, а я обещаю и дальше выкладывать последние новости по самому перспективному эмулятору Nintendo Switch — Ryujinx.


Источник: https://www.playground.ru/misc/news/poslednie_n...

0 комментариев
Оставлять комментарии имеют право только авторизованные пользователи...
    Комментариев еще нет...
    Последние комментарии
    • Спасибо.

    • Хорошо

    • Было бы круто, если бы фотки загружали в текст статьи, а не ссылки на них ставили. Ведь такая возможность же есть.

    • Надеюсь…

    • интересно, а сериал возобънавят молюсь каждый день