Open main menu

Bluddy

Joined 24 February 2010
81 bytes removed ,  05:08, 16 May 2010
Line 16: Line 16:


== Working On ==
== Working On ==
* PSP
* PSP Optimization
** Optimization
 
*** Adding PSP profiling support to the trunk - done
** Timidity
*** Moving all buffers to uncached space
*** A lot of work. May improve speed over midi, but it'll be the last optimization.
**** Doesn't seem like a great idea. Some parts of the code need the buffers to be cached, particularly if they access small pieces. Audio buffers absolutely MUST be cached for decent speed.
 
**** Memcopy can be greatly improved with alignment, rotation of unaligned bits, and using the VFPU cache.
** MP3 using Media Engine
*** Possibly adding PSP MP3 HW support
*** I made a hack that'll do it, but unfortunately nobody knows how to use it for 22kHz mp3s, which is all of our MP3s. This means I need to reverse engineer the PSP FW in order to figure out how to do this properly (the PSP FW knows how to use the ME for 22 kHz files). So this is going to be hard too.
**** About 8% speedup in some games
 
**** Looks like HW MP3 can only handle 2 MP3s at a time... should be enough usually.
** Video Speedup
**** Actually it should be able to do better with the libAudio implementation.
*** Smush can be sped up for aligned platforms, and VFPU cache can be used in PSP
**** I just found that the SDL 'mixer' blocks when playing audio! That's the thread we do all the work in!
*** Check other codecs for possible speedups using VFPU
***** Also, SDL creates threads that ALL have VFPU set. That's not efficient when switching contexts.
 
*** Speeding up video decompression using vector unit
** Other speedups
**** Doesn't seem likely for smush - not much parallel processing
*** Do tests of cached vs uncached access
*** Possibly speeding up music processing somehow?
*** Improve memcpy: alignment, rotation
**** Timidity may be a good option here
**** Possibly use VFPU's cache for even better performance.
*** Improve SDL audio output
**** SDL blocks when outputting audio. This is the thread we do most work in, so don't block.
**** Also, SDL creates threads that ALL have VFPU bit set. That's not efficient when switching contexts.


== To Do ==
== To Do ==
36

edits