English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   support.WinUAE (https://eab.abime.net/forumdisplay.php?f=5)
-   -   Throttle Blitter speed (https://eab.abime.net/showthread.php?t=88119)

amilo3438 02 August 2017 13:19

Throttle Blitter speed
 
Testing attached A500 config with Cycle-exact (Full) option disabled, can tell that it works almost fantastic in many cases on my (still old) laptop PC.

But there are some cases where it looks that the Blitter speed should be adjusted to make it work fine.
Of course, the Immediate option enabled could help in some cases (f.e. Silents-MaximumVelocity etc.), but in other can make it worse... programs usually run faster (f.e. D.Mob-BobDemo).

Currently in the chipset option there is only an Immendiate Blitter option, but would be also nice to have possibility to change (i.e. to play with) the Blitter speed.

If it is not possible to have it in the menu settings as a slider, at least to have it in configuration file would be also nice.

P.S.
Note: The attached config file, but with the CE option enabled still works OK (let say acceptable) on an old laptop PC as its mine (specially in the Fullscreen mode: CTRL+F12 and even in the JimPower-MutantPlanet title screen, with Collision level set to None), but with the CE option disabled an laptop computer will work less hot and loud, especially in the hot summer weather as it is now.


EDIT:
I wonder why it is not currently possible to enable the only Cycle-exact (DMA/Memory access) for A500 config from the menu (like it is possible for some other configs) ? (OK, it is possible with some changing in the config file)

I found when only CE memory is enabled that it will improve program stability; like f.e. the NoSecondPrize will not crash with "guru meditation" anymore while playing the title demo after a while !

And + possibility to play with the Blitter speed, I guess it would be possible to adjust (i.e. to improve) the no cycle-exact emulation even more.

The more reason for that is: with the CPU CE off it free a lot of main PC CPU usage for other things like f.e. minimizing the sound buffer or improving the screen quality, what with CPU CE enabled + lot of cpu usage is not possible, especially on an older/slower PC. (in case if someone ask why to use no cycle-exact mode)

Btw. the attached config is adjusted to give the "real Amiga 500" feeling on an 60Hz LCD laptop especially in Fullscreen mode (activated by pressing CTRL+F12).
Those with laptops faster than 2Ghz can even enable the Cycle-exact (Full) in the Chipset option and enjoy the full emulated Amiga 500. (Note: the config is tested to work fine on WinUAE 3.4.0 and 3.5.1 unofficial beta versions.)

Toni Wilen 02 August 2017 22:30

Non-CE mode blitter speed adjustment option is possible but because chipset DMA (including blitter) can be "easily" emulated cycle-exactly, there is no need for adjustment option.

I can add config file option but I don't like GUI option because there is again the usual danger: creation of weird configs that only "work" with only specific version.

amilo3438 03 August 2017 07:49

No need for GUI option, blitter speed as config file option would be great. (Thx)

Toni Wilen 10 August 2017 21:18

"blitter_throttle=0.0000" config option added. 0 = don't change speed, 0.1 = +10% faster, -0.1 = 10% slower, 1 = 2x and so on..

Note that speed adjustment can be very inaccurate when blits are small (few cycles) because fractional cycles can't exist.

amilo3438 11 August 2017 20:41

Thanks. I did some tests in WinUAE non-CE mode playing with the blitter_throttle value (see below).

On start I was searching for the max blitter_throttle value where the "D_Mod-BobDemo" still works fine, and the value is 0.3269 !

But that was not enough for "Silents-MaximumVelocity" to work without glitches !

So I change/hack the config to work with MEM_CE enabled and also have to change the cpu_throttle to 42.5 to get AIBB InstTest = 459711.06 Instr/Sec (i.e. same speed as when the Full CE is enabled)... now both demos seem to work fine.

NOTE: The attached config need WinUAE 3.5.1 (Public Beta0, 2017.08.10) to work as expected!


EDIT:
Forgot to mention that "Oblivion-LastA500" demo also works fine with attached config!
In other combinations, i.e. when cpu_throttle=0.0 and full_CE_OFF or MEM_CE_ON, the sound will missing a few seconds sometimes in "Oblivion-LastA500" demo during cube rotation part.
And, yes, the NoSecondPrize and Agony also work fine with attached config ! (as both needs MEM_CE_ON to not crash)
So the cpu_throttle=0.3269 improved the emu compatibility in non CE mode with only MEM_CE_enabled.
The CPU usage difference between the attached config and the Full_CE mode is over 20% lower on my old 2GHz laptop PC! (in favor of Non-CE mode)

EDIT2:
More precise/final value where the "D_Mod-BobDemo" still works fine in Non-CE mode is blitter_throttle=0.32692307 !
Seems this fixed "Oblivion-LastA500" demo sound problem in Non-CE mode !:great

Maybe new value of blitter_throttle=0.32692307 could become default blitter_throttle=0.00000000 in Non-CE mode for future WinUAE versions !?;)

EDIT3:
Seems the blitter_throttle=0.32692307 value also fixed "SuperHangOn" glitches in "Choose music menu" in WinUAE Non-CE mode!:great
Also seems it fixed "ABYSS-Curious" demo in Non-CE mode - no glitches anymore!

EDIT4: After testing some "previously problematic" demos in Non-CE mode! (Note: Doesnt expect any answer on this, it is only for info!)

Fixed with new throttle value
-----------------------------
- ABYSS-Curious -> fixed
- D_Mod-BobDemo -> fixed
- Essence-A.S.S. -> fixed with new blitter_throttle value (no slowdown anymore)
- Oblivion-LastA500 -> fixed
- Traitors-SkullIntro -> fixed scroll text upper part

ImmediateBlitter / Guru
----------------------
- Crusaders-7MonthsOld -> glitches (Immediate Blitter helps or negative blitter_throttle=-0.4125 value f.e.)
- Digital-DayOfReckoning -> needs MEM-CE enabled to not crash and/or maybe higher blitter_throttle value, otherwise slowdown (also works with ImmediateBlitter)
- Silents-MaximumVelocity -> needs slightly higher blitter_throttle value or ImmediateBlitter
- UPFRONT-PlasticPassion -> it doesnt like new blitter_throttle value in Non-CE mode (it gurus) but work with ImmediateBlitter or slowdown with default 0 value
- VD-AbsoluteInebriation -> needs ImmediateBlitter enabled to not hang in Non-CE mode (or maybe higher blitter_throttle value)

Needs Full-CE mode
------------------
- ANARCHY-DigitalInnovation -> title still glitches (Immediate Blitter doesnt help)
- Devils-NoReality -> after loading in Non-CE mode got H2! (needs Full CE enabled to work)
- Latex-Sinemania -> needs Full CE enabled to work w/o glitches
- RAMJAM-CooperSlave -> needs Full CE enabled to work w/o glitches
- Sargon-Megademo -> needs Full CE enabled to work w/o glitches in the 2nd part


So after testing some 42 demos, only 5 demos has been fixed with new throttle value, 5 demos requires ImmediateBlitter and 5 demos work only in Full-CE mode! (other 27 "previously problematic" demos seems to work fine in default Non-CE mode)

amilo3438 12 August 2017 19:47

Found some demo called "UFO_Intro" where is clearly visible how the blitter_throttle value influence on the demo in Non_CE mode!
It seems that with negative blitter_throttle=-0.32692307 value is possible to adjust the demo to looks similar as when it runs with Full_CE enabled! (see on pics)

So this new negative blitter_throttle fixed several demos (and probably broke others) mentioned in EDIT4 above:
- Crusaders-7MonthsOld -> seems to work fine now
- (D_Mod-BobDemo -> seems to work but slowdown)
- ANARCHY-DigitalInnovation -> title doesnt glitches anymore
- Devils-NoReality -> it doesnt hang in H2 anymore
- RAMJAM-CooperSlave -> seems to work now
- Saturne-Laurent&Anna -> seems to work now
- UFO-Intro -> seems to work now
- UPFRONT-PlasticPassion -> it doesnt gurus anymore, but slowdown is expected

Now wonder how to adjust "D_Mod-BobDemo" to work faster !? (i.e. at same speed as when it runs in Full_CE mode)
What unknown variable is missing to make "blitter_throttle=0.32692307" and "blitter_throttle=-0.32692307" demos to work w/o problem in Non_CE mode!?
Obviously the current "blitter_throttle=0" variable (as middle value of above) is not enough.
Wonder if it is possible to improve Non_CE mode even more !? (by using only one blitter_throttle value)

EDIT: For comparison added pic.5 how "UFO_Intro" looks on WinFellow emu!


All times are GMT +2. The time now is 14:17.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.04448 seconds with 11 queries