Previous Thread
Next Thread
Print Thread
Page 3 of 9 1 2 3 4 5 6 7 8 9
Joined: Mar 2001
Posts: 17,262
Likes: 267
R
Very Senior Member
Very Senior Member
R Offline
Joined: Mar 2001
Posts: 17,262
Likes: 267
If the SDK's in a VM without accelerated video that's probably to be expected. Run in a window and shrink the window so it's exactly the size of the game to remove scaling from the equation and you should get the actual performance. In the case of the x86 VM I'd expect it to be probably 20-30% slower than native in that instance. Making the window bigger or running full-screen in the VM will degrade performance substantially.

ETA: I should mention that the Pandora's slipped to January now (*sigh*) so that limits my ability to do much towards this at the moment.

Last edited by R. Belmont; 12/11/09 04:11 PM.
Joined: Dec 2009
Posts: 24
F
Member
Member
F Offline
Joined: Dec 2009
Posts: 24
I'm definitely not expecting the Pandora to be out before i want to have this on the N900 in working condition. Also, there's only so much i can do to test performance without putting it on the N900 and seeing how it runs. I am expecting mine by the end of the month. The rule of thumb on the #maemo channel is that most things that work on N900, don't in SDK, so as you can imagine, it's not a great way to predict performance.

So what i'd like to know is what bits of code that are optimized asm for x86 would most greatly benefit by having armel asm instead of C, and work on that. Unless there's another obvious optimization you are aware of...

Joined: Mar 2001
Posts: 17,262
Likes: 267
R
Very Senior Member
Very Senior Member
R Offline
Joined: Mar 2001
Posts: 17,262
Likes: 267
The general assembly helpers used by the actual emulation are all in src/emu/eigccx86.h (x86 and x64) and eigccppc.h (PowerPC). There's math, I think some endian-swap helpers, and thread-sync primitives. Having an ARM version of that file is the first necessary step.

Joined: Feb 2004
Posts: 2,628
Likes: 339
Very Senior Member
Very Senior Member
Joined: Feb 2004
Posts: 2,628
Likes: 339
There's some more sophisticated assembly in src/osd/sdl/sdlsync_ntc.c, but that should only be needed if you have multiple CPUs. But speaking of this, why is sdlsync_tc.c used on Linux and generic UINX? I would have thought sdlsync_ntc.c should still give better performance.

Joined: Jul 2006
Posts: 87
L
Member
Member
L Offline
Joined: Jul 2006
Posts: 87
Originally Posted by Flandry
What bit of the project should i focus on to start optimizing it? If you give me a specific task and context, i can probably contribute; i just don't have any general understanding of the project as a whole.
You won't get much out of a chip with such small L1 (16KB + 16 KB) and L2 (256KB) caches running MAME.

Your best bet is probably to optimize the CPU cores, where optimize means use some existing ARM assembly core (but beware of those, they probably aren't very accurate).

The next step probably is to write a new DRC back-end.

(All of that should only be done once you'll have profiled SDLMAME on the real target of course.)

Joined: Dec 2009
Posts: 24
F
Member
Member
F Offline
Joined: Dec 2009
Posts: 24
My N900 is supposed to be delivered around Christmas, so i'll be able to try it out and see what/how it works. Is there a WIP version of sdlmame being released soon? If not i'll make a package of this one to have available when i'm away from my dev box.

Re: profiling--is there a mame-specific way to do this?

Joined: Mar 2001
Posts: 17,262
Likes: 267
R
Very Senior Member
Very Senior Member
R Offline
Joined: Mar 2001
Posts: 17,262
Likes: 267
Various standard profilers have been used successfully on MAME including Valgrind and gprof.

Joined: Jul 2006
Posts: 87
L
Member
Member
L Offline
Joined: Jul 2006
Posts: 87
Sorry valgrind can't be trusted... especially as it won't run on ARM smile

oprofile is pretty good, but I don't know how well it runs on Cortex-A8 (especially given that there are CPU errata affecting performance counters).

Joined: Mar 2001
Posts: 17,262
Likes: 267
R
Very Senior Member
Very Senior Member
R Offline
Joined: Mar 2001
Posts: 17,262
Likes: 267
I thought the point of ARM was that the core's so simple there can't be errata ;-)

Joined: Jul 2006
Posts: 87
L
Member
Member
L Offline
Joined: Jul 2006
Posts: 87
Nah, the point of ARM is to replace Intel, so they have to keep the number of errata high enough smile

Page 3 of 9 1 2 3 4 5 6 7 8 9

Moderated by  R. Belmont 

Link Copied to Clipboard
Who's Online Now
0 members (), 135 guests, and 4 robots.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics9,364
Posts122,482
Members5,082
Most Online1,283
Dec 21st, 2022
Our Sponsor
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!

Superior Solitaire
Powered by UBB.threads™ PHP Forum Software 8.0.0