Hi,
I'm looking into making a harness for PS3 Linux that's similar to the PS2s VU Harness ( http://playstation2-linux.com/projects/vudemocontest ). I'm thinking it'd be nice to have something like the third creation compos for this harness, and maybe a prize backed competition like the fourth creation in the future....
Basically it's just a PPU program that loads an SPU program and then provides a standard interface to hardware. The whole point of the harness demos is to show what the VUs (on PS2) and SPUs (on PS3) can do. So you get no access to main memory, no file I/O, etc.... So your program needs to fit and run only within local store...
I'm currently thinking that the harness should provide the following:
* Access to one or more SPUs (different compos could have different SPU limits)
* Access to a sound buffer in main memory (44.1KHz, Stereo, 16bit?)
* Access to a frame buffer in main memory (640x480 32bit colour?)
* Input from a SIXAXIS pad
The harness will be for Linux right now since PS3SDK isn't ready yet, but there's no reason why demos developed for the Linux harness couldn't run on a harness written for PS3SDK.
I'm also thinking of making a simple kernel/initrd combo for the harness so interested developers don't have to mess around with Linux if they don't want to.
Just wondering if anybody has any comments, suggestions, etc.
[RFC] PS3 SPU Demo Harness
Re: [RFC] PS3 SPU Demo Harness
I'd like to see it able to be configured to different resolutions - and support for a/v output to disk (or something like that) would be tasty.jbit wrote:I'm currently thinking that the harness should provide the following:
* Access to one or more SPUs (different compos could have different SPU limits)
* Access to a sound buffer in main memory (44.1KHz, Stereo, 16bit?)
* Access to a frame buffer in main memory (640x480 32bit colour?)
Also, would some kind of timer (or signal) be appropriate/necessary for syncing fb swaps?
Sounds good, I'm looking forward to it :)* Input from a SIXAXIS pad
Yup, you'll definitely be able to configure resolution, how many SPUs are allowed, audio settings, scaling of output, possible buffers available in main ram, etc. Maybe different compos can have different settings, I think some multi SPU compo (still no PPU) could be fun.
I hadn't thought about video/audio saving to disk, but I guess it shouldn't be too hard, maybe pipe the output into mencoder for compression.
Synchronisation of SPU to frame flips and audio buffers is definitely an issue I'm thinking about, not sure what solution I'll use yet though.
I'm hoping to have something resembling usable by Monday, the harness should be able to run on any PS3 currently running Linux but I'd really like to get a minimal Linux running from memory cards to. Hopefully this will get some coders who don't want to mess with Linux working on the PS3.
The harness will not run on SPUs, you'll have pretty much full rein of the SPUs setup, no libraries, languages, runtimes, etc will be required (though obviously you'll need to pay attention to certain messages)
I hadn't thought about video/audio saving to disk, but I guess it shouldn't be too hard, maybe pipe the output into mencoder for compression.
Synchronisation of SPU to frame flips and audio buffers is definitely an issue I'm thinking about, not sure what solution I'll use yet though.
I'm hoping to have something resembling usable by Monday, the harness should be able to run on any PS3 currently running Linux but I'd really like to get a minimal Linux running from memory cards to. Hopefully this will get some coders who don't want to mess with Linux working on the PS3.
The harness will not run on SPUs, you'll have pretty much full rein of the SPUs setup, no libraries, languages, runtimes, etc will be required (though obviously you'll need to pay attention to certain messages)
SPU mailboxes really are what you need. They have been created for synchronization purposes.jbit wrote:Synchronisation of SPU to frame flips and audio buffers is definitely an issue I'm thinking about, not sure what solution I'll use yet though.
Just let the PPE send a message to all SPEs at each new frame flip, maybe containing an index in a screen array for the next frame to be drawn.
concerning the audio I guess just one SPE thread should be allowed to access the audio buffer. This would make things easier.