Решил присоединиться к сообществу тестеров
Слабенький ноутбук 10 летней давности, 2х1.6ггц amd/2gb ram/Win 8.1 x64
Эмулятор даже на меню кушает 20%-25% процессора
http://savepic.su/5059766m.png
Вид для печати
Решил присоединиться к сообществу тестеров
Слабенький ноутбук 10 летней давности, 2х1.6ггц amd/2gb ram/Win 8.1 x64
Эмулятор даже на меню кушает 20%-25% процессора
http://savepic.su/5059766m.png
Это не меню кушает, а рендеринг, он сейчас всевремя работает, даже когда эмуляция на паузе - последний кадр перерисовывает.
Хотел добиться чтобы при любых операциях не было задержек, но с поддержкой старых систем это не просто :)
Смотрел видеоплееры - даже они не могут железно держать синхру и иногда срываются. Хотелось бы конечно попроще сделать, сам эмулятор уже довольно удобно выдает видео/аудио поток. Задача только в том чтобы его вывести с минимальной задержкой. Расчитывал что многопоточность заметно увеличет стабильность. Но оказалось что у directx есть с этим подводные камни... в итоге сложность вывода аудио и видео увеличилась, а эффекта заметного нет :)
Вернее есть, но на мощных многоядерных машинах. А со старыми одноядерными тяжело добиться хорошей стабильности.
С другой чтороны однопоточный вариант требует постоянно спамить очередь сообщений окна, что сказывается на нагрузке и идет борьба рендерера с ui, что приостанавливает эмуляцию.
Можно было бы как в unreal цикл сделать, тогда шустро и ствбильно будет работать, но тогда потеряются возможности ui.
Вот что интересно, сейчас ожидание кадра производится системой по present. поток рендерера никто не блочит, почему идут пропуски кадров на слабых машинах - неясно. Попробуй выключить debug info. Расчет и отрисовка графика выполняется не очень эффективно и жрет прилично процессорного времени :) с отключенным debug info, будет заметно стабильнее :)
пилит нормально хоть таскай окно хоть не таскай ничего не заикается))
http://savepic.su/5070040m.png
http://savepic.su/5055704m.png
Сообщениями paint, по которым рендеринг выполняется. Проблема в том что при однопоточном рендерере, present и reset должны выполняться из ui потока. Т.е. рендеринг полностью зависит от обработки оконных сообщений. По другому сделать проблематично - или спамить или в message pump цикл костыли вставлять, других вариантов я пока не встречал :)
Как всегда - ведет себя странненько, елси не сказать больше..
Если без картинок сказать, то при переключении 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 ----------
про перемещении окна - не тормозит, а вот при изменении размеров мышью - ужжастно подтормаживает.
и да - с Новым Годом, с очередным Днем Рождения !)))
Поставил вместо "коробочных" драйверов Windows 8, драйвера на аудио и видео с сайта производителя, результат странный
Видео теперь почти ровно держит 60 кадров, но эмулятору кушает в среднем 40% двухядерного проца, то есть почти целиком одно ядро. В противовес unreal который почти ничего не ест. С частотой проца ошибся 2.1Ггц а не 1.6ггц. Т.е. как бы много кушает, компьютеры с турбой наверное вообще не потянет.
И еще из моментов, у эмулятора постоянно скачет объем занимаемой памяти, по всей видимости где то что то в хипе выделяется и сборщик собирает и так в цикле, как по мне, поидее такого не должно быть в эмуляторе, как никак источник лагов.
Изучаю возможность переделать рендерер видео. В качестве эталона неплохо выглядит видео-плеер 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 его проигрывает (на оригинал совсем не похоже) :):
http://www.youtube.com