35w ago - Sony PlayStation 3 hacker
KaKaRoToKS has announced today that the RSX Graphics Library for PS3 known as
RSXGL by
Alex Betts is now ready for use by developers.
Download:
PS3 RSXGL (5c6aba6) /
GIT
From his blog: RSXGL Working and Usable
Hi everyone!
When the PS3 homebrew scene started, a lot of people were complaining that it wasn’t possible to write 3D games for the PS3 because of its lack of OpenGL library.
Almost a year ago, Alex Betts thought he would tackle this problem and he started working on RSXGL... an implementation of the OpenGL 3.1 specification written from scratch targeting the PS3′s RSX.
Anyone in their right mind would say that it’s impossible, that it’s too much work, but Alex spent the last year working on it, alone, until it became usable. You can read some news about it
here.
For some reason though, no one used it to build their own apps. Maybe the status of the project was scaring them, it was said to be incomplete, there was no GLSL support, etc...
I am writing today to tell you that RSXGL is perfectly usable! It supports online GLSL compilation, as well as any feature you might want. As proof, I have written a new hardware accelerated engine for the EFL using RSXGL and it worked great!
Alex and I spent a lot of time testing and fixing all the issues that were in RSXGL that were made visible by the EFL’s GL engine and I am happy to say that it’s working now. Expedite is able to run most of its tests at 50 to 60 fps on 1080p resolution (instead of the average of 5 to 10 fps it had on 720p before).
You can see performance tests right here (Running some tests from expedite) :
Software rendering: dl.dropbox.com/u/22642664/expedite_psl1ght.log
eng_output_resize called : 1280x720
4.15 , Widgets File Icons
10.79 , Widgets File Icons 2
10.76 , Widgets File Icons 2 Grouped
11.66 , Widgets File Icons 2 Same
11.83 , Widgets File Icons 2 Same Grouped
16.90 , Widgets File Icons 3
11.23 , Widgets File Icons 4
10.11 , Widgets List
10.23 , Widgets List Grouped
10.18 , Widgets List 2
10.22 , Widgets List 2 Grouped
9.50 , Widgets List 3
9.59 , Widgets List 3 Grouped
9.66 , Widgets List 4
9.73 , Widgets List 4 Grouped
6.84 , Image Blend Unscaled
6.34 , Image Blend Solid Middle Unscaled
3.30 , Image Blend Fade Unscaled
3.30 , Image Blend Fade Power 2 Unscaled
32.39 , Image Blend Solid Unscaled
4.58 , Image Blend Solid Fade Unscaled
4.58 , Image Blend Solid Fade Power 2 Unscaled
2.11 , Image Blend Nearest Scaled
31.52 , Image Blend Nearest Solid Scaled
0.55 , Image Blend Smooth Scaled
9.62 , Image Blend Smooth Solid Scaled
14.08 , Image Blend Nearest Same Scaled
52.70 , Image Blend Nearest Solid Same Scaled
14.04 , Image Blend Smooth Same Scaled
59.43 , Image Blend Smooth Solid Same Scaled
0.66 , Image Blend Border
9.32 , Image Blend Solid Middle Border
11.40 , Image Blend Solid Border
0.54 , Image Blend Border Recolor
1.52 , Image Map Rotate
1.67 , Image Map Solid Rotate
5.53 , Image Map Nearest Rotate
8.17 , Image Map Nearest Solid Rotate
1.35 , Image Map Color Rotate
1.47 , Image Map Color Solid Rotate
3.02 , Image Map Color Nearest Rotate
3.67 , Image Map Color Nearest Solid Rotate
1.33 , Image Map Color Alpha Rotate
1.31 , Image Map Color Alpha Solid Rotate
2.91 , Image Map Color Alpha Nearest Rotate
2.84 , Image Map Color Alpha Nearest Solid Rotate
15.30 , Image Map 3D 1
7.79 , Image Map 3D 2
7.28 , Image Map 3D 3
3.61 , Image Map 3D 4
13.83 , Image Map 3D 5
31.59 , Image Map 3D 6
3.67 , Image Map 3D Flow
4.06 , Image Quality Scale
60.33 , Image Data ARGB
11.85 , Image Data ARGB Alpha
30.35 , Image Data YCbCr 601 Pointer List
14.44 , Image Data YCbCr 601 Pointer List Wide Stride
RSXGL rendering: dl.dropbox.com/u/22642664/expedite_rsxgl.log
eng_output_resize called : 1280x720
EGL surface size is : 1280x720
5.43 , Widgets File Icons
28.61 , Widgets File Icons 2
35.00 , Widgets File Icons 2 Grouped
39.51 , Widgets File Icons 2 Same
48.14 , Widgets File Icons 2 Same Grouped
10.81 , Widgets File Icons 3
56.57 , Widgets File Icons 4
56.78 , Widgets List
58.22 , Widgets List Grouped
58.23 , Widgets List 2
58.25 , Widgets List 2 Grouped
56.10 , Widgets List 3
56.18 , Widgets List 3 Grouped
56.17 , Widgets List 4
56.18 , Widgets List 4 Grouped
51.26 , Image Blend Unscaled
11.30 , Image Blend Solid Middle Unscaled
60.63 , Image Blend Fade Unscaled
60.41 , Image Blend Fade Power 2 Unscaled
46.28 , Image Blend Solid Unscaled
60.82 , Image Blend Solid Fade Unscaled
60.42 , Image Blend Solid Fade Power 2 Unscaled
59.95 , Image Blend Nearest Scaled
57.85 , Image Blend Nearest Solid Scaled
60.29 , Image Blend Smooth Scaled
57.83 , Image Blend Smooth Solid Scaled
60.43 , Image Blend Nearest Same Scaled
59.88 , Image Blend Nearest Solid Same Scaled
60.49 , Image Blend Smooth Same Scaled
59.89 , Image Blend Smooth Solid Same Scaled
59.97 , Image Blend Border
38.29 , Image Blend Solid Middle Border
38.64 , Image Blend Solid Border
59.54 , Image Blend Border Recolor
60.45 , Image Map Rotate
60.43 , Image Map Solid Rotate
60.41 , Image Map Nearest Rotate
60.42 , Image Map Nearest Solid Rotate
60.40 , Image Map Color Rotate
60.43 , Image Map Color Solid Rotate
60.42 , Image Map Color Nearest Rotate
60.44 , Image Map Color Nearest Solid Rotate
60.40 , Image Map Color Alpha Rotate
60.42 , Image Map Color Alpha Solid Rotate
60.40 , Image Map Color Alpha Nearest Rotate
60.42 , Image Map Color Alpha Nearest Solid Rotate
49.76 , Image Map 3D 1
60.41 , Image Map 3D 2
60.26 , Image Map 3D 3
60.43 , Image Map 3D 4
49.40 , Image Map 3D 5
60.41 , Image Map 3D 6
27.65 , Image Map 3D Flow
57.00 , Image Quality Scale
50.69 , Image Data ARGB
16.60 , Image Data ARGB Alpha
58.65 , Image Data YCbCr 601 Pointer List
58.99 , Image Data YCbCr 601 Pointer List Wide Stride
59.13 , Image Data YCbCr 601 Pointer List Map Solid Rotate
59.01 , Image Data YCbCr 601 Pointer List Map Nearest Solid Rotate
50.49 , Image Crossfade
59.31 , Text Basic
6.87 , Text Styles
5.31 , Text Styles Different Strings
22.79 , Text Change
51.44 , Textblock Basic
61.10 , Textblock text_append
44.35 , Rect Blend
44.55 , Rect Blend Power 2
29.77 , Rect Solid
61.03 , Rect Blend Few
60.40 , Rect Blend Power 2 Few
60.41 , Rect Solid Few
51.14 , Image Blend Occlude 1 Few
60.90 , Image Blend Occlude 2 Few
61.87 , Image Blend Occlude 3 Few
65.58 , Image Blend Occlude 1
60.42 , Image Blend Occlude 2
60.39 , Image Blend Occlude 3
27.06 , Image Blend Occlude 1 Many
33.53 , Image Blend Occlude 2 Many
56.23 , Image Blend Occlude 3 Many
0.93 , Image Blend Occlude 1 Very Many
1.42 , Image Blend Occlude 2 Very Many
3.09 , Image Blend Occlude 3 Very Many
26.48 , Polygon Blend
60.46 , Image Blend Unscaled Proxy
25.86 , Proxy Text Fixed
Please give RSXGL a try. Also, you can get the latest EFL version from my repository, which includes the gl engine for PS3. Now, any EFL application will be automatically hardware accelerated thanks to RSXGL. I hope we can see some new games (or old GL games being ported) soon!
RSXGL : github.com/gzorin/RSXGL
EFL : github.com/kakaroto/e17
Enjoy!
For what it's worth the 8000 and 9000 series are the exact same technology and the GTX 400 and 500 series are almost identical in architecture. But the fact of the matter is that it was too weak right off the bat which is ridiculous for something that is supposedly designed to last many years.
At this point the RSX is so old and alien compared to modern GPUs that it's not comparable at all, it comes nowhere near even scratching the surface of how powerful modern ones are. Just look at how hard the engineering team of RAGE has to work and struggle to make RAGE pretty much the only game out there on the PS3 which has both nice graphics and runs at 60 frames a second. It's incredible stress on the developers being limited so much.
Anyway, that's why I believe it's not possible for Sony to delay the PS4 until 2016 as they keep saying they'll do. At latest it will have to be 2013, which in my opinion is already years late.
Download: http://gitbrew.org/~durandal/oedipusrsx/oedipusrsx.zip / http://www.multiupload.com/1NQS2B74W6 (Mirror)
Below is some background on the PS3 RSX 'Reality Synthesizer' via http://en.wikipedia.org/wiki/RSX_%27Reality_Synthesizer%27, as follows:
The RSX 'Reality Synthesizer' is a proprietary graphics processing unit (GPU) codeveloped by Nvidia and Sony for the PlayStation 3 game console.
Unless otherwise noted, the following specifications are based on a press release by Sony at the E3 2005 conference, slides from the same conference, and slides from a Sony presentation at the 2006 Game Developer's Conference.
Specifications:
500 MHz on 90 nm process (shrunk to 65 nm in 2008 and to 40 nm in 2010)
Based on NV47 Chip (Nvidia GeForce 7800 Architecture)
300+ million transistors
Multi-way programmable parallel floating-point shader pipelines
Independent pixel/vertex shader architecture
24 parallel pixel-shader ALU pipes clocked @ 550 MHz
5 ALU operations per pipeline, per cycle (2 vector4 , 2 scalar/dual/co-issue and fog ALU, 1 Texture ALU)
16 floating-point operations per pipeline, per cycle
8 parallel vertex pipelines @ 500 MHz
2 ALU operations per pipeline, per cycle (1 vector4 and 1 scalar, dual issue)[citation needed]
10 FLOPS per pipeline, per cycle
Floating Point Operations: 251.2 Gigaflops [(24*16* 550)+(8*10*500)]
74 billion shader operations per second [(24 Pixel Shader Pipelines*5 ALUs*550 MHz) + (8 Vertex Shader Pipelines*2 ALUs*500 MHz)]
24 texture filtering units (TF) and 8 vertex texture addressing units (TA)
24 filtered samples per clock
Maximum texel fillrate: 12.0 GigaTexels per second (24 textures * 500 MHz)
32 unfiltered texture samples per clock, (8 TA x 4 texture samples)
8 Render Output units / pixel rendering pipelines
Peak pixel fillrate (theoretical): 4.0 Gigapixel per second
Maximum Z sample rate: 8.0 GigaSamples per second (2 Z-samples * 8 ROPs * 500 MHz)
Maximum Dot product operations: 28.6 billion per second
128-bit pixel precision offers rendering of scenes with High dynamic range rendering (HDR)
256 MB GDDR3 RAM at 650 MHz
Access to additional 256 MB XDR RAM
128-bit memory bus width
22.4 GB/s read and write bandwidth
Cell FlexIO bus interface
20 GB/s read to the Cell and XDR memory
15 GB/s write to the Cell and XDR memory
Support for PSGL (OpenGL ES 1.1 + Nvidia Cg)
Support for S3TC texture compression
Finally, according to a rumor via http://twitter.com/#!/Squarepusher2/status/108649956377767937, http://pastebin.com/bSjZfNTM of Gitbrew's (irssi, /connect -ssl irc.gitbrew.org) Sony PlayStation 3 Hacking Team also gave http://www.soldierx.com/hdb/Durandal the coveted PS3 CEX-DEX.zip file http://pastebin.com/eTGisEBS from PS3 hacker http://pastebin.com/Li8nJLEM.
To quote: BTW Mathieulh I know you gave http://pastebin.com/yNx9adyR (Durandal Dokuchayev) that CEX-DEX ZIP, that it wasn't you that bundled that up, and you were not supposed to do so either
[Mathieulh] (mathieulh@oper.gitbrew.org): mathieu
[Mathieulh] otheros #opers pspdev
[Mathieulh] *.gitbrew.org :Gitbrew
[Mathieulh] is a Deus on Gitbrew
[Mathieulh] is logged in as Mathieulh
[Mathieulh] is using a secure connection
[Mathieulh] idle 00:02:07, signon: Tue Aug 30 13:52:59
[Mathieulh] End of WHOIS list.
More PlayStation 3 News...