Vidix

VIDIX (video interface for *nix) is a portable programming interface for Unix-like operating systems that allows video card drivers running in user space to directly access the framebuffer through Direct Graphics Access extension to the X Window System.

History
Nick Kurshev, the author of VIDIX, writes that his motivation in creating the interface was to resolve the issue reported by Vladimir Dergachev in his RFC for an alternative kernel multimedia API: "v4l, v4l2 and Xv are all suffering from the same problem: attempt to fit existing multimedia devices into a fixed scheme." Dergachev noted that existing multimedia interfaces were hard-coded for each device, and suggested that driver developers would have more flexibility with a layer of abstraction.

VIDIX was born as an alternative to the Linux kernel-based drivers from the MPlayer project. For a long time, VIDIX lived within the MPlayer project; later, it lived within the MPlayerXP project, a fork of MPlayer by Kurshev. During that time, Linux and many other Unix-like operating systems lacked quality drivers for the video subsystems. Almost all of the technical documentation for video hardware was under non-disclosure agreements at the time, and many programmers had to code their drivers blindly. Other developers became interested in using VIDIX for their own players, and they asked Kurshev to separate it from the MPlayer project.

VIDIX became an alternative set of device drivers, based on the idea of direct hardware access (similar to Microsoft's DirectX). These drivers mapped accelerated video memory to avoid colour-space conversion and software scaling from the side of the players.

The X Window System now includes the Direct Rendering Infrastructure, which provides similar functionality with broad hardware support. Kurshev continued to develop VIDIX through 2007, when version 1.0.0 of the software was released.

Supported hardware

 * Trident Microsystems Cyberblade/i1
 * Hauppage PVR350
 * ATI Technologies Mach64 and 3DRage chips
 * ATI Technologies Radeon and Rage128 chips:
 * Radeon R100 chip series
 * Radeon R200 chip series
 * Radeon R300 chip series
 * Radeon R420 chip series
 * Radeon R520 chip series
 * Matrox MGA G200/G4x0/G5x0 chips
 * Nvidia chips:
 * RIVA 128
 * RIVA TNT
 * RIVA TNT2
 * GeForce 256
 * GeForce 2 series
 * GeForce 3 series
 * GeForce 4 series
 * GeForce FX series
 * GeForce 6 series
 * GeForce 7 series
 * Some Quadro
 * 3Dlabs Permedia2, Permedia3, and GLINT R3
 * S3 Savage
 * Silicon Integrated Systems (SiS) 300 and 310/325 series chips
 * VIA Technologies CLE266 Unichrome