Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
80 user(s) are online (69 user(s) are browsing Forums)

Members: 1
Guests: 79

beworld, more...

Support us!

Headlines

 
  Register To Post  

(1) 2 3 4 ... 7 »
Latest DOSBOX : with PPC dynamic recompiler and stuff , right there!
Home away from home
Home away from home


See User information
So yeah, it is!

Resized Image

That what is done in the version you will check now:

- it is latest _official_ svn's DOSBox code with the latest commit of a few days ago

- it is built now over SDL2: that written not by me, its some patch done by others, which is not in the main repo at the moment. It fixes a lot of, gazillion, of SDL1 bugs, so chances it will help us are high. At least from first checks it surely help with keyboard layout issues, random freezes, etc.

- it is built now with a dynamic PPC recompiler! Yeah! It is! Our majesty kind of JIT!

New dynamic recompiler means all you need now it's in the config file, have those strings:

core=dynamic
cycles=max

Results are good (maybe not _that_ good, but still).

PCPBench report on my machine just 4.2 fps with normal, and 15.2 with dynamic, so its 3.5-4 times speedup.

Also, I tried Mortal Kombat 3 game: with "normal" its playable, but I can see that its around 25 fps maybe. With "dynamic" it all looks pretty fluid like it 60 and more fps.

Tried to play also in doom, extreme pinball, and pinball illusion: not sure if there are big differences, but at least doom feels better surely.

Quake1 at least playable with "dynamic" as with "normal" it slow like amiga1200 on my x5k (strange ..)

Of course, it didn't do by me, it was done by some other person for PPC-macs, and by some luck, I was able to use it for our build too with some small change (see in some other thread some help from Rigo about how to allocate executable memory).

That what the author wrote about:

Quote:

Some comments on the changes:
- I had to name the FPU_Rec struct so it could be forward-declared in risc_ppc.h (having a dedicated register pointed to it helps FPU heavy code).
- Removed some unneeded WORDS_BIGENDIAN guards in the self-modifying code detection, they weren't needed as the additions aren't meant to overflow between bytes.
- Made dyn_run_code() get called before dyn_return(BR_Link1/BR_Link2) and shuffled their locations a bit. The reason for this is that the PPC dynrec generates its epilog once in gen_run_code() and then puts a jump to it whenever gen_return_function() is called, rather than emitting a full epilog every time. If dyn_return() was called before dyn_run_code() the address of the epilog is unknown.
- Added missing cache_block_before_close()/cache_block_closing() calls for those blocks, since they were missing.
- The dynrec decoder wasn't differentiating between little-endian (host) memory access and regular memory access. I added new functions where necessary (hopefully caught them all) and aliased them to the regular functions when WORDS_BIGENDIAN is not defined.
- dyn_ret_near() was bugged, it tried to write a dword to ®_ip which overran on big-endian.



- it includes endian fixes for drive_fat.cpp to work on big-endian (including fixing a bug that allocates one too many clusters when a file's length is a multiple of the cluster size) and makes use of GCC's bswap builtins (which for PowerPC translate to lwbrx/stwbrx) for host memory access.

That one of course also done not by me, but I apply it anyway, even if I do not know how much is need it for us.


Now, before anyone throws all the question, there are answers:

1). No, it's not the DosBox-X project. DosBox-X is maybe interesting once the author will fix all newly introduced issues and big-endian differences. It also has lots of bugs. New bugs, which original DOSBox didn't have. So...

2). No, Corto's endian changes not in there, because it built now with PPC recompiler, which means that everyone should use that one instead. But maybe, I will apply Corto's patches as well, if there will be real needs and it will help at top of what we will have now with dynamic recompiler.

3). No, the SDL2 version is not faster. Is even can be a little bit slower. Of course, I talk about "normal" CPU choice, when it dynamic, its all will be faster of course. Is it an issue with SDL2, or with "how it added to DOSBox", dunno.


So, if anyone willing to test/help, that what we need now:

1). test as many as possible stuff, with "normal" and "dynamic" and report issues that happens only with "dynamic" so I can report them to the author in the hope he will fix it.

2). check if my build has issues that os4depot build didn't have. I think there is at least one issue that can be with the "midi" part, but I not sure. More users with DOSBox knowledge need to check it.

And there is just a binary, so don't ask how to set up it, where .conf files, etc: if you use DOSBox already you know where-what-when, just use new binary and change "core" and "cycles" to use dynamic:

Grab it from there: http://kas1e.mikendezign.com/aos4/dosbox/jit/dosbox_jit_v1.lha


I will also create a repo on my github acc with all that stuff applied, so together later we may do something more of it as well.


Edited by orgin on 2020/1/20 17:10:12
Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Latest DOSBOX : with PPC dinamic recompiler and stuff , right there!
Home away from home
Home away from home


See User information
@kas1e

Awesome, hope it will works also with my RunInDosBox setup
For the sake of test, the patch of Corto was quite good in term of optimization, around 10-12% in some case, not bad considering he was not able to modify much

Go to top
Re: Latest DOSBOX : with PPC dinamic recompiler and stuff , right there!
Home away from home
Home away from home


See User information
Tested Mortal Kombat 2 with both normal and dynamic core and cycle max (also compared with the corto version)
No difference noticiable, slow (looks exactly the same with both versions and even using the dynamic core of your svn release)

Maybe i lost a passage?

Will try with a smaller game eventually, me on a poor Sam440 Flex as you know

Go to top
Re: Latest DOSBOX : with PPC dinamic recompiler and stuff , right there!
Home away from home
Home away from home


See User information
@samo
Maybe MK2 hit its limits on sam440 because of different factors ?

To be sure that "dynamic" works for you at all, check it via some benchmark. For example PCPBench:

ftp://ftp.zedz.net/pub/msdos/78.46.141.148/benches/PCPBench_DOS.

Just run it, and wait till it will reach 100% (right bottom of screen), and then hit "Esc", so you will see how much fps you have.

Then do the same with "dynamic". If numbers will be different, then dynamic works. If same, then something wrong with config.

On x5000 i have 4.2fps for normal, and 15.2fps for dynamic.

And be sure you test it as it firstly, via running from shell and having pure dosbox.conf. As dunno what runindosbox do with.

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Latest DOSBOX : with PPC dinamic recompiler and stuff , right there!
Home away from home
Home away from home


See User information
@kas1e

Your link doesn't work

But i found this:
https://www.philscomputerlab.com/dos-benchmark-pack.html

Is this the same program ?

Go to top
Re: Latest DOSBOX : with PPC dinamic recompiler and stuff , right there!
Home away from home
Home away from home


See User information
@samo79
Link works 100%, tested right now. Just in case: its ftp access , not http. And browser may say that link is infected, skip it.

But for my side, i can't load your link :) But files of PCPBench looks like this:

01/20/2020  11:07 AM            22,169 ANTWORT.TXT
01
/20/2020  11:07 AM                54 CHKLIST.MS
01
/20/2020  11:07 AM           265,396 DOS4GW.EXE
01
/20/2020  11:07 AM             1,005 ENDE.TXT
01
/20/2020  11:07 AM               704 GO.BAT
01
/20/2020  11:07 AM             4,203 LIESMICH.TXT
01
/20/2020  11:07 AM           411,402 PCPBENCH.DAT
01
/20/2020  11:07 AM           111,814 PCPBENCH.EXE

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Latest DOSBOX : with PPC dinamic recompiler and stuff , right there!
Just can't stay away
Just can't stay away


See User information
@samo79

last name is a dir, so try to add / at the end


ftp://ftp.zedz.net/pub/msdos/78.46.141.148/benches/PCPBench_DOS/

Go to top
Re: Latest DOSBOX : with PPC dinamic recompiler and stuff , right there!
Quite a regular
Quite a regular


See User information
Here's an example of how to run Doom timedemos:
https://thandor.net/benchmark/32
I wonder how the JIT compares to the normal core.

This is just like television, only you can see much further.
Go to top
Re: Latest DOSBOX : with PPC dinamic recompiler and stuff , right there!
Quite a regular
Quite a regular


See User information
I think this was did in dosbox for Boxer. A dosbox modded version for MacOSx PPC leopard. If was it i confirm was much more faster than standard dosbox.

By the way Kas1e can be possible have the link with the original inculde for make i build it in a dosbox for lnx?
thanks

X5000/40 16GB
RasperryPi 1-2-3-4-(5)
A500 Mini.
Go to top
Re: Latest DOSBOX : with PPC dinamic recompiler and stuff , right there!
Home away from home
Home away from home


See User information
@BSzili
Quote:

Here's an example of how to run Doom timedemos:
https://thandor.net/benchmark/32
I wonder how the JIT compares to the normal core.


3 times faster :

dynamic : time 3863 gametics in 2483 realtics = 54.4 fps
normal : time 3863 gametics in 7099 realtics = 19 fps

Through, 54.4 fps its just on level of what, on the level of pentuim90 :)

But from the PNCBench, it says with dynamic core we on "pentium 133" level, but those JIT things always a bit different in different conditions.

What i also noticed, is that CPU loading is never 100%. Not with "core:normal" , not with "core:dynamic". Doom's timedemo with dynamic never reached more than 50%. Maybe it all about "pressure on the cache" thingy ? I probably will try to apply Corto's changes to see if it will make any differences togehter with jit.

@tlosm
Quote:

By the way Kas1e can be possible have the link with the original inculde for make i build it in a dosbox for lnx?


Yeah i will soon create repo on github will all stuff.

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Latest DOSBOX : with PPC dinamic recompiler and stuff , right there!
Not too shy to talk
Not too shy to talk


See User information
@kas1e

Thanks a lot.
Quake Timedemo - 9.7fps on X1000, almost 4 times faster than before. For X5040 I cannot give the results because NDA, but it is known that in the case of DOSBox equipment much faster than X1000.

Go to top
Re: Latest DOSBOX : with PPC dinamic recompiler and stuff , right there!
Home away from home
Home away from home


See User information
@Mufa
How you run quake1 timedemo ? Something like "timedemo demo1" ? If i remember right there should be some "showfps" command as well ?

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Latest DOSBOX : with PPC dinamic recompiler and stuff , right there!
Quite a regular
Quite a regular


See User information
@kas1e

in the quake command prompt, usually it exit with pressing in the game menù "tab" on the keyb.
timedemo demo1
and
timedemo demo2

the result will be show at the end of the demo on the command prompt

ps: when you run the command press fast the tab again or the command promt will be there and will meke the demo not run at real spead (because not all the scene will be rendered)

Kas1e https://www.vogons.org/viewtopic.php?f=32&t=65057&start=60

X5000/40 16GB
RasperryPi 1-2-3-4-(5)
A500 Mini.
Go to top
Re: Latest DOSBOX : with PPC dinamic recompiler and stuff , right there!
Home away from home
Home away from home


See User information
@tlosm
Quote:

in the quake command prompt, usually it exit with pressing in the game menù "tab" on the keyb.
timedemo demo1
and
timedemo demo2


Strange, for me when i type "timedemo demo1" it just go till end, then ends, and i can't see any fps in the console

Quote:

Yeah i know from where i got it :) And yes, you can do it from there without waiting then.

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Latest DOSBOX : with PPC dinamic recompiler and stuff , right there!
Home away from home
Home away from home


See User information
wow latest DosBox is awesome news..have to check this out when back home today!


_______________________________
c64-dual sids, A1000, A1200-060@50, A4000-CSMKIII
Catweasel MK4+= Amazing
! My Master Miggies-Amiga1000 & AmigaONE X1000 !
mancave-ramblings

Go to top
Re: Latest DOSBOX : with PPC dinamic recompiler and stuff , right there!
Just popping in
Just popping in


See User information
@kas1e

Thank You Man!

Go to top
Re: Latest DOSBOX : with PPC dinamic recompiler and stuff , right there!
Quite a regular
Quite a regular


See User information
@kas1e
Neat! It could be better, but at least it can run at full speed with the locked 35 Hz framerate.

This is just like television, only you can see much further.
Go to top
Re: Latest DOSBOX : with PPC dinamic recompiler and stuff , right there!
Home away from home
Home away from home


See User information
@kas1e

Well found the issue, and it was of course a mistake by me ..
I changed the configuration in a wrong file, i was applied the "dynamic" in dosbox.conf file as you said, but as i'm using RunInDosBox along with DOSBox i had to apply that settings into the RunInDosBox.conf file instead !

I was completely forgot about it, i've installed it years ago

Well, just tested demo and .. it's faster a lot !!...

With "normal" settings i have: 0.6
But setting as dynamic i got now: 2.6

Speed increase is very visible without the need to benchmark it .. now i will test some real games

Edit: tested MK2 aswell..
Lot faster, for sure still not at full speed but now close to be usable

Go to top
Re: Latest DOSBOX : with PPC dynamic recompiler and stuff , right there!
Home away from home
Home away from home


See User information
@samo79
Good !

I also checked all the corto's patches : they have no needs to be applied there anymore, dynarec have all inside. Also, with gcc 8.3.0 some parts are optimized even better than with some inline asm, so , good for us.

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Latest DOSBOX : with PPC dynamic recompiler and stuff , right there!
Home away from home
Home away from home


See User information
@kas1e

Really nothing of what was patched by Corto is needed anymore ?

There are various things in a few place:

Quote:
- src/cpu/core_normal.cpp : Activated C_CORE_INLINE, what increases the required
memory to compile, it only worked with 512 MB and the OS 4.1 paging system !
- include/paging.h : Used instructions to read half-words and words with
reversed bytes (PPC rulez !). Also changed a structure reorganizing TLB fields
in order to decrease the pressure on the cache.
- include/paging.h (again !) : Tried to improve the memory access through TLB.
- src/cpu/modrm.cpp and other files : I reduced the size of arrays to decrease
the pressure on the cache.
- include/render.h : Grouped some structure fields to improve alignment and
cache efficiency.


Aniway, noted an unrelated problem ... issue seems the same on Corto version as well as in your new release

Are you able to start DOSBox in window mode automatically ?
In config file i've set "fullscreen=false"
But anytime i start DOSBox, it open its window in fullscreen ... alt+enter of course works as it should, but at startup it's always in fullscreen whatever i set it differently



Go to top

  Register To Post
(1) 2 3 4 ... 7 »

 




Currently Active Users Viewing This Thread: 1 ( 0 members and 1 Anonymous Users )




Powered by XOOPS 2.0 © 2001-2024 The XOOPS Project