for those that do not know ONE of the most requested parts for the Playstation 3 with Linux is 3D acceleration. well there is a few updates to this problem.
read on:
The firmware version is 1.8
The trick is very simple, I can describe it without posting the full sources.
Look at the push buffer dump:
http://www.everfall.com/paste/id.php?uxdlpwlbfpo9
It is the image of push buffer after hypervisor blit. The end of buffer is at 0xb8.
The last packet sends zero to the subchannel zero with tag 0x110. Replace the tag with NOP ( 0x100 ) while buffer is kicked by the hypervisor and is executing with the RSX.
Fill push buffer with N + 1 copies of the first 0xb8 bytes.
In cycle for( int i = 0; i < N; ++i ) modify client screen buffer in some way ( fill with random numbers ), kick push buffer via writing ( (uint32_t *)ioremap( lpar_dma_control, 1024) )[ 0x10 ] = 0xe1f0000 + 0xb8 * ( i + 1 ); sleep ( 1 ); The client screen in the xdr memory will blits in the videomemory.
If nobody is unable to repeat these steps I post the full sources.
Edited: bugfix
responses to the experiment.
Very nice work, IronPeter!
I find it intriguing that not only are you allowed to define the FIFO region
in user memory, but that you are also allowed to map the control area.
This suggests to me that Sony actually intended to support HW 3D under
Linux, as they could just as easily have made the control area accessible
only to the hypervisor.
We are allowed to map only part of mmio register. Only context control registers. I do not know the way to map the global RAMIN area.
The good source about this stuff:
http://www.phoronix.com/scan.php?pag...item=876&num=1
Yes, mc, you are right.
The only thing that needs direct FIFO access is real time 3D acceleration. 2D part does not need that. So Sony probably wants to expose 3D driver.
Most recent:
IronPeter wrote:
It seem like these function perfom TILES & ZCULL setup.
First parameters of these functions change from 0 to number of color & depth tiles ( params of lv1_gpu_memory_allocate ).
I'm mildly surprised no one's replied yet, but that is an interesting find. Lends credence to the theory that the hypervisor doesn't block the RSX at all, with the problem merely being a lack of documentation of the required functions.
Which gives me hope that the Yellow Dog Linux for the new Sony Zego might bring an RSX driver to the PS3 also. Okay, not much hope, but a little.
to keep updated :
http://forums.ps2dev.org/viewtopic.p...=asc&start=450