Продолжается работа над плагином визуального редактора оверлея в RTSS.
За пару выходных Алексей Николайчук добавил в него несколько базовых улучшений, на основе которых теперь можно создавать как пассивные, так и комплексные динамические анимации. В видео ниже демонстрируются 3 базовых «кирпичика», лежащих в основе создания анимаций в оверлее:
Источники данных на основе таймеров.
Асинхронно обновляемые слои.
Улучшенный лексический анализатор и транслятор формул, позволяющий использовать в формулах коррекции перекрёстные ссылки на другие источники данных.
На основе этого в видео показан процесс создания пассивной анимации вращающегося кулера, а затем процесс создания динамической анимации с привязкой скорости вращения к реальному сенсору скорости кулера GPU.
Традиционно выдержав необходимую для внутреннего тестирования задержку в несколько дней, Алексей Николайчук публично объявил о выходе очередной версии и сделал её видимой серверам обновления.
Ключевые изменения новинки мы уже описывали ранее: во-первых, это внутренний HAL и встроенное мини-ядро мониторинга на его основе (только встроенные сенсоры драйвера видеоадаптера с минимальным риском конфликта со сторонними ядрами мониторинга). Во-вторых, это встроенная возможность подключения счётчиков производительности операционной системы (загрузка/скорость чтения/записи накопителей, скорости скачивания/закачки сетевых интерефейсов и так далее) — полный функциональный клон плагина PerfCounter из SDKMSI AB но для тех, кто хочет использовать RivaTuner Statistics Server отдельно от него.
Также добавился альтернативный интерфейс для стриминга абсолютных меток времени кадров в стороннее ПО через именованный пайп. Специально для этого проекта: RTSS_time_reader.
За выходные Алексей добавил ещё немного полезностей в редактор гипертекста оверлея.
В редакторе появился ещё один встроенный провайдер данных — счётчики производительности Windows. Для мониторингового ПО из этого источника традиционно берутся показания загрузки физических накопителей, их текущие скорости чтения/записи а также текущие скорости скачивания/закачки сетевых интерфейсов. Но, помимо этого, доступны и сотни других видимых операционной системе счётчиков, включая инструментальные дополнительные счётчики от стороннего ПО. В MSI AB всё это давно представлено плагином PerfCounter. Неудивительно, что в редактор гипертекста ядро провайдера счётчиков перекочевало именно оттуда.
В нём появился встроенный HAL (уровень абстракции оборудования) и собственное минималистичное ядро мониторинга с открытым кодом на его основе, предоставляющее плагину встроенную поддержку мониторинга современных GPU.
Как говорит автор, этих собственных мониторинговых возможностей HAL хватит большей части тех, кто пользуется оверлеем — температуры, загрузка функциональных блоков GPU, его частоты, энергопотребление и загрузка видеопамяти любых современных GPU в наличии. Словом, доступны любые счётчики производительности GPU, официально и нативно поддерживаемые API обоих вендоров (NVAPI/AMDADL). Соответственно, можно использовать RTSS как полностью самостоятельное мониторинговое решение, не подключая к нему дополнительные приложения-провайдеры данных мониторинга.
При этом принцип разделения низкоуровневого ядра мониторинга и ядра оверлея не нарушается — в отличие от HWiNFO/AIDA/MSIAB, встроенный HAL плагина не использует собственного драйвера для низкоуровневого доступа к железу и считывает показания только через официальные мониторинговые механизмы драйверов видеоадаптеров. Поэтому риск конфликта с другим мониторинговым ПО сведён практически к нулю. Ну а тем, кому нужны и дополнительные сенсоры, использующие низкоуровневый доступ к железу (например температуры CPU), никто по-прежнему не мешает подключить к оверлею любой внешний источник данных из любого внешнего мониторингового ядра.
Исходный код HAL будет открыт, как и код всего плагина — за что Алексею отдельное спасибо!
Крупных ключевых изменений два. Во-первых, это плагин с открытым исходным кодом, предоставляющий функционал визуального редактирования гипертекста оверлея. О нём мы уже мы неоднократно писали (1, 2, 3) и выкладывали видео в процессе разработки с обзором ключевых возможностей.
Во-вторых — это альтернативная асинхронная реализация рендерера оверлея для Vulkan приложений, выводящих кадры прямо из вычислительной очереди (т.е. для игр на движке id Tech 6 и старше, например Doom 2016 и Doom Eternal). Далее — слово разработчику:
То, что асинхронная архитектура этого игрового движка не дружит с оверляеми традиционной архитектуры, — факт известный. Собственно, именно поэтому оверлей RTSS и отключается принудительно по умолчанию в таких приложениях, чтобы горе-ревьюеры-ютуберы не искажали результатов замеров производительности «мониторя FPS». Но до выхода Doom Eternal асинхронный codepath id использовали только при обнаружении GPU от «красных». Поэтому все создатели сторонних оверлеев не особо спешили заниматься разработкой отдельной асинхронной реализации оверлея только ради одной игры и для одного производителя GPU — это принципиально другая архитектура рендерера и достаточно трудоёмкая вещь, делать её только ради части пользователей не сильно разумно.
Но с выходом на рынок Doom Eternal в графическом движке убрали привязку реализации асинхронности только к GPU AMD. Теперь асинхронный вывод кадров из вычислительной очереди используется и на графических процессорах NV. Соответственно, количество пользователей, жалующихся на снижение производительности от оверлеев Steam, RTSS или FPS Monitor выросло на порядок. Поэтому для разработчиков оверлеев час X настал, и пришлось делать альтернативную реализацию оверлея и для этой игры. Оверлей RTSS обновился, FPS monitor тоже, обновлённый оверлей стима на подходе.
Теперь в RTSS в этих играх теперь используется концепция асинхронного рендеринга оверлея, предложенная AMD. При этом наложение оверлея на буфер кадра выполняется прямо из вычислительной очереди с помощью compute шейдера, без необходимости синхронизации графической и вычислительной очередей для отрисовки (именно это и кушало производительность в традиционных «не асинхронных» оверлеях).
RTSS 7.3.0 с новым редактором гипертекста, о котором мы уже писали, продолжает набирать обороты и в скором времени увидит свет:
Ещё немного улучшенный браузер спрайтов.
Нативный источник данных для отображения пинга.
Встраиваемые в гипертекст таблицы. Форматированные таблицы — родная и нативная форма представления оверлея, хорошо знакомая всем пользователям MSI AB. Теперь GUI для формирования таких таблиц доступно и в плагине.
В видео демонстируются принципы наполнения таких таблиц данными и принципы их модификации:
Короткий обзор наиболее полезного из того, что было добавлено в плагин для RivaTuner Statistics Server за последнюю неделю.
Итак, всё ближе и ближе к публичному релизу RTSS 7.3.0 с новым редактором гипертекста, о котором мы писали на днях, и который за последнюю неделю обзавелся следующими функциями:
Добавление и вставка слоёв из буфера обмена в зону выделения.
Визуальный браузер спрайтов, предварительный просмотр анимации.
Поддержка кликов на уровне разной глубины Z-order'а.
Новые внутренние источники данных.
Макросы со спецификациями железа, аналогичные таковым в MSI AB.
Контекстная подсветка макросов и их контекстное меню.
Настройки создателя оверлея.
Пользовательские таймеры в оверлее.
Масштабирование зоны редактирования и режим альтернативного рендеринга фона.
Версия на стадии предрелизной вычистки/комментирования кода редактора для SDK. Релиз — вопрос пары недель, так что следите за новостями!