Это не меню кушает, а рендеринг, он сейчас всевремя работает, даже когда эмуляция на паузе - последний кадр перерисовывает.
Хотел добиться чтобы при любых операциях не было задержек, но с поддержкой старых систем это не просто
Смотрел видеоплееры - даже они не могут железно держать синхру и иногда срываются. Хотелось бы конечно попроще сделать, сам эмулятор уже довольно удобно выдает видео/аудио поток. Задача только в том чтобы его вывести с минимальной задержкой. Расчитывал что многопоточность заметно увеличет стабильность. Но оказалось что у directx есть с этим подводные камни... в итоге сложность вывода аудио и видео увеличилась, а эффекта заметного нет
Вернее есть, но на мощных многоядерных машинах. А со старыми одноядерными тяжело добиться хорошей стабильности.
С другой чтороны однопоточный вариант требует постоянно спамить очередь сообщений окна, что сказывается на нагрузке и идет борьба рендерера с ui, что приостанавливает эмуляцию.
Можно было бы как в unreal цикл сделать, тогда шустро и ствбильно будет работать, но тогда потеряются возможности ui.
Вот что интересно, сейчас ожидание кадра производится системой по present. поток рендерера никто не блочит, почему идут пропуски кадров на слабых машинах - неясно. Попробуй выключить debug info. Расчет и отрисовка графика выполняется не очень эффективно и жрет прилично процессорного временис отключенным debug info, будет заметно стабильнее
![]()
Последний раз редактировалось ZXMAK; 16.02.2015 в 23:32.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Сообщениями paint, по которым рендеринг выполняется. Проблема в том что при однопоточном рендерере, present и reset должны выполняться из ui потока. Т.е. рендеринг полностью зависит от обработки оконных сообщений. По другому сделать проблематично - или спамить или в message pump цикл костыли вставлять, других вариантов я пока не встречал![]()
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Как всегда - ведет себя странненько, елси не сказать больше..
Если без картинок сказать, то при переключении Frame Sync Source - внешний вид графиков дебаг-инфо - не меняется. Вообще. Или не переключает, или загрузка всегда одинакова. Но и это еще не все!для позвонивших немедленно – сниженная ценаНа разных мониторах - разный Render FPS -60 и 180 о_О . И?
ничего не делаю, протсо тягаю туда-сюда окно.. Картинки надеюсь не надо, джентльмены верят на слово?
---------- Post added at 23:36 ---------- Previous post was at 23:26 ----------
нее, все в ТРИ! раза ускоряется))
---------- Post added at 23:45 ---------- Previous post was at 23:36 ----------
Скажу больше) на "медленном" мониторе, где 60 фпс - при скрытии окна или сворачивании & синхре от видео - тоже ускоряется в 3 раза, слышу по звуку, а на "быстром", где всегда 180 - так 180 во всех 3х режимах, но ускоряется все же только на видео-синхре.
---------- Post added 18.02.2015 at 00:02 ---------- Previous post was 17.02.2015 at 23:45 ----------
про перемещении окна - не тормозит, а вот при изменении размеров мышью - ужжастно подтормаживает.
и да - с Новым Годом, с очередным Днем Рождения !)))
Последний раз редактировалось zebest; 17.02.2015 в 23:32.
Profi v3.2 -=- Speccy2010,r2
Поставил вместо "коробочных" драйверов Windows 8, драйвера на аудио и видео с сайта производителя, результат странный
Видео теперь почти ровно держит 60 кадров, но эмулятору кушает в среднем 40% двухядерного проца, то есть почти целиком одно ядро. В противовес unreal который почти ничего не ест. С частотой проца ошибся 2.1Ггц а не 1.6ггц. Т.е. как бы много кушает, компьютеры с турбой наверное вообще не потянет.
И еще из моментов, у эмулятора постоянно скачет объем занимаемой памяти, по всей видимости где то что то в хипе выделяется и сборщик собирает и так в цикле, как по мне, поидее такого не должно быть в эмуляторе, как никак источник лагов.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Изучаю возможность переделать рендерер видео. В качестве эталона неплохо выглядит видео-плеер MPC-HC.
Однако он срывает 50 Hz синхронизацию на 75 Hz дисплее. А на 60 Hz дисплее скроллы подергиваются.
Для тестов прикрутил запись видео в эмулятор через aforge. Комиттить такой рекордер пока не буду, т.к. библиотеки тянут около 15 МБ, при этом запись звука библиотекой не поддерживается. Нужно чтото полегче найти.
Записал тестовое видео на 50 Hz с интрой от ZX-TIME-15.
Кто хочет поучавствовать, затестите пожалуйста - есть ли плеер, который способен воспроизвести это видео с плавным скролом и без срывов синхронизации (чтобы во время проигрывания не сменялся цвет фона).
Видео (61 МБ mpeg4 в zip архиве) доступно тут: https://drive.google.com/file/d/0B3U...ew?usp=sharing
Вот как youtube его проигрывает (на оригинал совсем не похоже):
Последний раз редактировалось ZXMAK; 22.02.2015 в 23:04.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)