Revision [1338]

This is an old revision of GraphicsHardwareRequirements made by MarioKleiner on 2008-06-15 20:44:32.


Graphics hardware requirements and recommendations

Tested graphics hardware + operating system configurations:

The following combinations of graphics hardware and operating systems are used by the developers for development of PTB-3's Screen function and therefore tested and known to work well. This doesn't exclude other similar or more advanced system configurations which likely will work equally well or maybe even better. It just happens to be the equipment that is accessible to us for development and testing. As a rule of thumb, a specific feature of a specific piece of graphics hardware that works well on MS-Windows will likely work equally well on GNU/Linux and vice versa due to the unified drivers used for these operating systems (drivers for Windows and Linux by ATI and NVidia are derived from the same code base). This is not necessarily true for Win/Linux vs. Mac OS-X, because the OpenGL drivers for OS-X are developed by different development teams from a different code base - Apple imposes a much stricter control over their implementation of OpenGL, with different priorities wrt. feature set. This means that the same gfx hardware may expose different functionality, performance, limitations and bugs on OS-X vs. Win/Linux due to fundamental driver differences.

The summary here is just for your reference, so you can get a feeling on what to expect with specific hardware. If you buy new systems, go for the latest generation hardware of NVidia or ATI, even if you pick low end models of the latest generation! These cards provide very useful new features. Expensive high-end models differ from cheap low-end models only in raw performace, ie., drawing speed, not in functionality.

Ultra low end systems
These provide minimal support for standard 2D and 3D drawing operations with low performance. Textures and Offscreen windows work but are inefficient wrt. to speed and memory consumption.

- Intel GMA 945 onboard graphics in a Dell PC under Windows XP, also tested under GNU/Linux. This card has significant limitations in timing accuracy and speed! Psychtoolbox currently can not use high precision timestamping on this card. See our Bugs page for more info. This gets only very infrequent testing.

- Intel GMA 950 of Apple MacBook. Occassionally tested. The card works reliably, timing is ok, but its a very limited card in terms of performance and features.

Entry level systems
These provide basic functionality, e.g., efficient handling of textures and moderately efficient handling of Offscreen windows, fast drawing of basic 2D primitives and 3D graphics, basic anti-aliasing and smoothing of points, lines and full scenes.

- NVidia Geforce2Go/GeforceMX mobile graphics chip tested under Windows 2000 and GNU/Linux in a Dell Inspiron 8000 laptop. Dual display support tested under Windows.
- NVidia Geforce4 desktop graphics chip tested under GNU/Linux.

Low end systems
Provide additional support for fast Offscreen window support and basic image processing functions, e.g., flexible stereo display algorithms, geometric display undistortion, CLUT palette animation and image data conversion via simple mathematical functions or lookup tables. Basic GLSL Vertex and Pixel shader support (Shader model 2.0).

- NVidia GeforceFX-5200 desktop graphics in a single processor PowerMac-G5 and in a standard Intel PC under GNU/Linux and Windows XP. Dual display support tested.
- ATI Radeon 9600 under Intel laptop with Windows-XP, tested only infrequently.

- Intel X3100 of Apple MacBook. Not yet tested by developers, however given its specs, the card should work reliably assuming the drivers supplied by Apple are sufficiently mature and bug free. This card and its siblings are special in the sense that feature-wise they are DirectX10 cards with support for Shader model version 4 - they can do most of what the most recent state of the art cards of NVidia and ATI can do. However, they lack any support for frame-sequential stereo, anti-aliasing and high precision HDR framebuffers and due to lack of dedicated fast VRAM memory, they only have a low computational performance. So although theoretically "state of the art" cards, they are too restricted and weak for the typical applications of such state of the art cards.

Mid level systems
Provide additional support for complex image processing operations, e.g., 2D convolution, local and neighborhood operations on images, thresholding and classification. (Shader model 3.0). Advanced support for Vertex and Pixel shaders. Support for floating point framebuffers and floating point blending operations, e.g., high dynamic range rendering and processing, precise execution of iterative image processing algorithms, computer vision and scientific stream computing algorithms.

- ATI Radeon X1600 mobile chip in a Apple Intel MacBook-Pro, running OS-X 10.4.11. Dual display support tested. This is one of the main development systems for PTB.
- Nvidia Geforce 6800 mobile chip in a high end Dell Laptop under Windows XP and GNU/Linux. Dual display support tested. Tested once, worked.

Upper level systems
Similar to mid level systems, but with more generous resource constraints and significantly higher processing power. Do the same as on mid level systems, just much faster.

- NVidia Geforce 7800 GT, tested under Windows XP and GNU/Linux. Our test platform for high performance image processing. Dual display support tested. Support for high dynamic range display devices tested. (Currently used in many experimental setups at MPI Tuebingen).

State of the art systems

- NVidia Geforce 8600 - 8800, 9xxx or ATI Radeon HD 2000/3000 systems: These provide a couple of new interesting features, especially if you need HDR rendering or high precision framebuffers for fine control over contrast and color. Buy one of these if you have the choice!

Graphics hardware requirements for specific PTB features:

OpenGL graphics hardware exposes its functionality via so called OpenGL extensions. Each extension defines a specific subset of functionality supported by the hardware. Specific advanced features of PTB-3 require your graphics hardware to support specific sets of OpenGL extensions. If you try to use an advanced PTB feature, PTB will probe your hardware for support of the required extension. If the extension is unsupported, PTB will either refuse use of an advanced feature or it will enable internal fallback implementations that do what you want, but at a much lower performance or precision and much higher resource requirements than if your hardware would support the extension. A list of all existing OpenGL extensions, including their full in-depth technical specification, can be found at the official OpenGL extension registry.

Different models of a specific generation of graphics hardware usually share support for a common set of extensions, but they differ in the precision, performance or efficiency with which features are supported as well as in the set of constraints that need to be fullfilled in order for the hardware efficiently to support a feature. The following websites list the specific set of extensions that are supported for specific models of graphics hardware for specific driver versions or operating system releases. They also list many interesting properties and limitations of these graphics cards. You will notice that there are separate websites for Windows/Linux and OS/X and that if you compare the resource limits, capabilities and feature sets of the same models of graphics hardware between Win/Lin and OS/X you'll sometimes find significant differences. Given that the hardware is the same, these differences are imposed by the different design and implementation of the graphics drivers and OpenGL subsystems of Windows/Linux versus OS/X.

If you want to buy a graphics card which is an optimal tradeoff between required features for your project and cost, you'll have to match the listed requirements of PTB against the features in those databases. PTB's Screen command outputs a list of all OpenGL extensions supported by your hardware + operating system + driver at startup ("OpenGL extensions are: ...") unless you suppress it. The websites above also provide a tool called GLInfo which probes your hardware and outputs a full listing of all tested properties if you need reliable information about your hardware.

Standard Screen subfunctions and their requirements:

Psychtoolbox imaging pipeline:

The Psychtoolbox imaging pipeline is a built-in framework for fast image processing on the graphics hardware, currently in beta stage. It allows to perform common image processing operations on image stimuli (represented as Psychtoolbox textures), to customize and extend the behavior of specific Screen drawing commands and to provide a set of fully automatic post processing operations on your final visual stimuli which may be useful for some more advanced applications. The infrastructure is integrated into PTB, but the specific operations are implemented as shader plugins, written in the OpenGL shading language (GLSL) and executed on the graphics processor itself. The imaging pipeline requires recent hardware for basic operation and mid-level to high-end hardware for the more advanced features.

Basic imaging pipeline support:

Provides the following features:

Minimum requirement for 2D drawing is the support for the following OpenGL extensions: GL_EXT_framebuffer_object, GL_ARB_multitexture, GL_ARB_shading_language_100, GL_ARB_shader_objects, GL_ARB_vertex_shader, GL_ARB_fragment_shader.
The following cards and later models are known to fully support these extensions: ATI Radeon 9600, NVidia GeforceFX-5200, Intel GMA-950 onboard chip of Intel based MacMinis and MacBooks under OS/X.

For 3D graphics via MOGL or OpenGL one needs these additional extensions: GL_ARB_depth_texture for depth buffer support and GL_EXT_packed_depth_stencil for stencil buffer support on some systems. Stencil buffers are unsupported on all PowerPC hardware (an OS limitation not a hardware limitation), unless you use OS-X 10.5 "Leopard" and later.

High dynamic range support:

This allows for drawing, processing and representation of images with floating point precision. Color values can exceed the normal 0-255 integer range of standard 8bpc framebuffers and one can handle images and colors with negative color components. This is useful for efficient creation of specific stimuli, e.g., fields of overlapping gabor patches and special blending operations. The final stimulus image can get automatically converted into a format suitable for special high precision display hardware, e.g., CRS Bits++, video attenuators, high dynamic range display devices.

Required extensions: A subset of GL_ARB_float_pixels, GL_APPLE_float_pixels, GL_ATI_float_pixels, GL_NV_float_pixels, GL_ATI_texture_float, GL_ARB_texture_float, GL_NV_texture_float.

At least the following graphics cards should support this according to their specification: NVidia Geforce-6000 series and ATI Radeon X800 series.
The following cards have been successfully tested for support: ATI X1600 and NVidia Geforce 7800. All later cards will support this as well.
The NVidia GeforceFX 5200 should support it, but malfunctioned on OS/X PowerPC during tests. This may be different on OS-X 10.5 Leopard, but is untested so far.
The Intel GMA 950 does not support these functions.

Advanced support for imaging pipeline:

This allows for more complex shaders and therefore for additional functionality, especially in the area of general purpose image processing:

The graphics hardware needs to be Shader model 3.0 (aka DirectX 9.0c, aka Windows Vista Premium ready) compliant.

Known cards that should work well: (Follow the links for detailed infos about the different models)

Good luck in choosing a suitable card.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki