Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Hardware accelerated 3D graphics library for the PS3.
C C++ FORTRAN Assembly Objective-C Python Other
branch: master

This branch is 31 commits behind gzorin:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
extsrc
include
m4
src
.gitignore
ACKNOWLEDGEMENTS
AUTHORS
LICENSE
Makefile.am
README.md
STATUS
TODO
autogen.sh
config.txt
configure.ac

README.md

RSXGL - The RSX Graphics Library

This library implements parts of the OpenGL 3.1 core profile specification for the PlayStation 3's RSX GPU. It's suitable for use in programs that have exclusive access to the RSX, such as GameOS software (and is likely unsuitable for implementing a multitasking desktop, as the library doesn't arbitrate access to the RSX).

Please see the STATUS file for up-to-date information about the current capabilities of this library.

Installing

RSXGL uses the GNU autotools for its build system and is distributed with a configure script. It requires the following projects:

RSXGL incorporates parts of the Mesa project, primarily to provide runtime compilation of GLSL programs. Suitable versions of Mesa and libdrm are included with RSXGL. python 2.6 with the libxml2 module is required by Mesa's build process (specifically for building GLSL's builtin functions).

The RSXGL library depends upon a toolchain that can generate binaries for the PS3's PPU, and also upon parts of the PSL1GHT SDK. The sample programs also require a few ported libraries, such as libpng, which are provided by the ps3toolchain project. ps3toolchain recommends setting two environment variables to locate these dependencies:

export PS3DEV=/usr/local/ps3dev
export PSL1GHT=$PS3DEV

RSXGL's configure script will use these environment variables if they're set; if they aren't set, by default the script uses the above settings:

./configure
make
make install

The build system creates libraries intended to be run on the PS3; it also creates some utilities (such as a shading program assembler derived from PSL1GHT's cgcomp) that are meant to run on the build system. By default, these products are installed under $PS3DEV/ppu and $PS3DEV, respectively. You can direct the build system to place them elsewhere:

./configure --with-ppu-prefix=/path/to/rsxgl --prefix=/path/to/ps3dev

If the ported libraries, such as libpng and zlib, have been installed someplace other than ${PS3DEV}/portlibs/ppu, you can set an environment variable to find them:

./configure ppu_portlibs_PKG_CONFIG_PATH=/path/to/portlibs/lib/pkgconfig

Pass the "--help" option to configure to see many other build system options.

Sample programs

Currently two sample programs are built:

  • src/samples/rsxgltest - A very simple test program whose contents and behavior will vary. This program is mainly used to try out various features of the library as they are developed.

  • src/samples/rsxglgears - A port of an old chestnut, the "glgears" program that uses OpenGL to render some spinning gears. This port is based upon a version included in the Mesa library, which was itself a port to OpenGL ES 2 after being handed down throughout the ages.

Sample programs are packaged into NPDRM .pkg files, but those packages remain in their build locations; they don't get moved anywhere relative to RSXGL's install path by "make install".

The sample can print debugging information over TCP, in the manner of PSL1GHT's network/debugtest sample. You can pass the the IP address of your host system to RSXGL's configure:

./configure RSXGL_CONFIG_samples_host_port=192.168.1.1 RSXGL_CONFIG_samples_port=9100

Before starting the application on the PS3, use this command to receive debugging output:

nc -l 9100

If you don't want to build the samples at all:

./configure --disable-samples

More complex samples are available in a separate project.

Something went wrong with that request. Please try again.