Ёбаный спермакулятор

emulators

Postby TS-Labs » 23 Jun 2013, 22:32

Львиную долю тактов анрыл отжирает на флип битмапа в экран.
TS-Labs
 
Posts: 1150
Joined: 19 Apr 2010, 10:10
Location: Wildest West
Group: Registered users

Postby deathsoft » 23 Jun 2013, 23:48

TS-Labs wrote:Львиную долю тактов анрыл отжирает на флип битмапа в экран.

Бугага, пейши еще, флип аппаратно блиттером делается либо через пейдж флипинг (когда соответствующий режим выставлен). Лвиную долю тактов унриал отжирает в пустом цикле когда делает 50фпс с точностью до такта ПЦ проца. Если выставить синхронизацию по звуку, то загрузка проца стремится к нулю, т.к. пустого цикла тогда нету, но тогда и точность кадра +-12мс из за Sleep(1).
User avatar
deathsoft
 
Posts: 4744
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby deathsoft » 23 Jun 2013, 23:50

zxmak wrote:у меня он 5-10% кушает, хотя комп не слабый i5-760 @ 3200

При этом фпс прыгает черт знает как. Унриал при синхронизации по звуку заниал почти 0% на древнем П4 нортвуд 3200 (твой коре и5 в разы быстрее того древнего п4). Унриал даже 50фпс шел в режиме оверлея на древнем пентиум про 200 (там загрузка конечно была не нулевая).
User avatar
deathsoft
 
Posts: 4744
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby TS-Labs » 24 Jun 2013, 02:06

deathsoft wrote:Бугага, пейши еще, флип аппаратно блиттером делается

Особенно в режиме GDI.
TS-Labs
 
Posts: 1150
Joined: 19 Apr 2010, 10:10
Location: Wildest West
Group: Registered users

Postby DimkaM » 24 Jun 2013, 07:02

Ни иибу что такое GDI, но на ноуте celeron B830 1.8ghz, в оконном режиме унрил съедает 0-2%, включен текстмод и в него в цикле выводются факи.
N>"Идите нахуй" со своей политикой...
DimkaM
 
Posts: 1011
Joined: 24 Mar 2010, 12:42
Location: г.Щёлково М.О.
Group: Registered users

Postby deathsoft » 24 Jun 2013, 10:50

TS-Labs wrote:Особенно в режиме GDI.

Для тех кто не знал, в режиме GDI функция BitBlt также акселерируется через аппаратный блиттер.
http://msdn.microsoft.com/en-us/library/windows/hardware/ff556180(v=vs.85).aspx
If the driver hooks DrvBitBlt, GDI will call this function when it needs to perform a BitBlt operation where one of the surfaces is a device-managed surface. If the driver implements opaque device-managed bitmaps, it must hook DrvBitBlt; otherwise, hooking DrvBitBlt is optional. If the driver cannot handle the specified call, it may punt the callback to the DIB engine by calling EngBitBlt.

И только для альтернативно одаренных видеокарт используется эмуляция в виде EngBitBlt.
User avatar
deathsoft
 
Posts: 4744
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby zxmak » 24 Jun 2013, 12:29

deathsoft wrote:При этом фпс прыгает черт знает как.


fps прыгает не из-за производительности, а из-за особенностей замера - измеряется время между present двух соседних кадров, поэтому на кадрах где появляется пропуск (т.к. 50 герц на 75 герцах без пропусков не получишь) время увеличивается и это это сбивает измерение. Если мерять кол-во кадров в течении секунды, то это слишком медленно - одно обновление на 50 кадров. Есть лучше идеи как померять fps чтобы знать изменение на каждом кадре?
Т.е. на самом деле фпс стабильный. Другой вопрос что синхра идет по звуковухе, поэтому нет контроля над пропуском кадров и в какие-то моменты пропуск кадров может смениться с четных на нечетные. Соответственно в одни моменты четные кадры отображаются чуть дольше, в другие моменты нечетные. Это может негативно влиять на отображение гигаскрина при развертке 75 герц, что выглядит как периодическая смена оттенков через некоторое кол-во секунд. На 100 герцовой развертке проблем быть не должно.
Эмулятор-виртуальная машина ZX Spectrum - ZXMAK2: https://zxmak2.codeplex.com/
User avatar
zxmak
 
Posts: 83
Joined: 26 Oct 2012, 02:25
Group: Registered users

Postby moroz1999 » 24 Jun 2013, 14:15

Мне кажется, что пользователя различия в overlay/gdi и прочих умных словах вообще касаться не должны. Нужно как в спектакуляторе - стартанул и поехало.
А то доходит до того, что из-за разницы в кривых дровах кривых видеокарт на разных компах один и тот же конфиг работает по-разному. Пользователь хочет эмулировать, а не ебаться с конфигами и разрешениями экрана.
На какой-то версии у меня была такая шняга, что при выставлении режима через гуй эмулятор вылетал, а если сразу задать его с конфига, всё было ок.
Предлагаю похерить все нестабильные режимы и сосредоточиться на каком-то одном. Кому нужно запускать ебулятор на всяком говне мамонта, могут пользоваться старыми версиями, тысячи их.
User avatar
moroz1999
 
Posts: 368
Joined: 02 Aug 2009, 12:26
Group: Registered users

Postby alone » 24 Jun 2013, 14:45

Для начала выпадение по буферу звука пофиксите. Последняя версия всё ещё выпадает, если долго держать открытый эмуль (не дебаг и не окна) в фоновой задаче.
User avatar
alone
 
Posts: 152
Joined: 04 Jun 2007, 20:04
Group: Registered users

Postby lvd » 24 Jun 2013, 14:54

moroz1999 wrote:Предлагаю похерить все нестабильные режимы и сосредоточиться на каком-то одном. Кому нужно запускать ебулятор на всяком говне мамонта, могут пользоваться старыми версиями, тысячи их.

А кому нужно запускать через RDP, например?

В фидо таких как ты посылали: "отучаемся говорить за всех".
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7262
Joined: 07 Apr 2007, 21:28
Group: Registered users

PreviousNext

Return to Эмуляторы

Who is online

Users browsing this forum: No registered users and 1 guest

cron