BrookGPU: Getting Started

Getting Started
    BRT C++
Current Issues

Hardware Prerequisites

  • The DirectX 9 backend requires a recent video card. ATI 9700 (R300) and above and Nvidia 5200 (NV3X) and above should work. More recent boards supporting Pixel Shader 3.0 or better will be able to use looping and branching in kernels and offer the best performance. The most important requirement is support for floating point render targets. Compiling for this backend requires the DirectX SDK to be installed. This is the most stable and tested backend currently.
  • The OpenGL backend is supported on Linux and Windows, but it uses the older pbuffer interface instead of FBO/PBO. Nvidia boards are currenly better supported, and will use Nvidia specific assembly (fp30/fp40) when possible. ATI boards are currenlty limited to ARB_fragment_program assembly, and like fp30, will not allow looping and branching in kernels that can't be statically unrolled.
  • The CPU backend should run on any platform (even non-PC) where the build environment works. The CPU backend is not as thoroughly tested as the above runtimes.
  • The CTM backend is new and is in an alpha state and currently only fully supported under Windows. To use it, you will require the CTM and AMUCOMP SDKs from AMD, and you need to have built the amu libraries supplied as samples in the SDKs.

Software Prerequisites

The compiler and CPU runtime should build on any host with the standard GNU toolchain:
  • make
  • g++ & gcc
  • flex
  • bison
  • bin-utils
Alternatively, running with the GPU runtimes requires the following:

BRCC will look for cgc and fxc (the HLSL compiler from the DirectX 9 SDK) in the path. Following the default installations, cgc.exe is in C:\Program Files\NVIDIA Corporation\Cg\bin and fxc.exe is in C:\DX90SDK\Utilities.

Additionally, compiling the DirectX runtime requires your INCLUDE and LIB paths include the DirectX 9 directories. With the default installations, these are C:\DX90SDK\Include and C:\DX90SDK\Lib.

Compiling Brook GPU

Everything, including all the test programs and sample applications, can be built by typing:

at the top level. You can run make from within any subdirectory to build just that directory.

Building And Running Brook Programs

There are some toy programs used for testing the compiler and runtime in prog/tests/ and more interesting programs in prog/apps/ that can be used as examples. Basically, BRCC converts .br files into .cpp files which are then compiled and linked against the runtime brook.lib. At runtime, brook.lib selects the backend based on the environment variable BRT_RUNTIME. The CPU backend is chosen by default and the values "dx9", "ogl", and "ctm" select their respective backends. Logo The fly fishing flies featured on this web site can be purchased at The English Fly Fishing Shop