GLIDE(4)
π GLIDE(4) π
okay bestie, so this is a page from the Kernel Interfaces Manual β yes, the kernel interfaces manual, we're fancy like that β and it's all about glide, the Glide video driver. grab a snack, we're doing Xorg driver lore π
β¨ NAME β¨
glide β the Glide video driver, periodt π
πΈ SYNOPSIS πΈ
Section "Device"
Identifier "devname"
Driver "glide"
...
EndSection
that's the vibe. you drop that into your config and the magic happens β¨
π¦ DESCRIPTION π¦
so glide is an Xorg driver for Glide-capable video boards β think 3Dfx Voodoo boards, the iconic ones π. it's mainly for Voodoo 1 and Voodoo 2 boards. the later 3Dfx boards have 2D built in already, so for those you should preferably use a driver that's separate for those boards, or the fbdev(4) driver. no cap.
ngl this driver is a bit special because Voodoo 1 and 2 boards are very much NOT made for running 2D graphics π like, that's just not what they do. so instead of doing hardware acceleration (there's literally no acceleration for 2D on these, only 3D), it does the whole thing with a "shadow" framebuffer that lives entirely in RAM. then, at the right time, selected portions of that shadow framebuffer get copied out to the Voodoo board. it's giving relay race πβοΈ
the consequence? the speed of the driver is very dependent on the CPU. but here's the thing β CPUs nowadays are actually rather fast at moving data, so we get very good speed anyway, especially since the whole shadow framebuffer is chillin' in cached RAM. slay π
this driver supports 16 and 24 bit color modes. the 24 bit color mode uses a 32 bit framebuffer (it has no support for 24 bit packed-pixel framebuffers, jsyk). and here's the cute lil plot twist: Voodoo boards can only display 16 bit color, but the shadow framebuffer can be run in 24 bit color. the whole point of supporting 24 bit mode is that it lets you run in a multihead configuration with Xinerama alongside another board that runs in real 24 bit color mode. (and yes, all boards must run the same color depth when you use Xinerama β no mixing, bestie.)
resolutions supported are: 640x480, 800x600, 960x720, 1024x768, 1280x1024 and 1600x1200 β¨ but heads up: not all modes will work on all Voodoo boards. it seems Voodoo 2 boards support no higher than 1024x768, and Voodoo 1 boards can go to 800x600. if you see a message like this in the output from the server:
(EE) GLIDE(0): grSstWinOpen returned ...
then you are probably trying to use a resolution that the driver supports but the hardware does not. π rude but true.
refresh rates supported are: 60Hz, 75Hz and 85Hz. the refresh rate used is derived from the normal mode line, according to this:
- Mode-line refresh rate
0-74 Hzβ used refresh rate60 Hz - Mode-line refresh rate
74-84 Hzβ used refresh rate75 Hz - Mode-line refresh rate
84- Hzβ used refresh rate85 Hz
so if you use a modeline that has, say, a 70Hz refresh rate, you will only get a 60Hz refresh rate in actuality. the math is mathing, it's just not mathing in your favor π
picking which Voodoo board to use is done with an option called "GlideDevice" in the "Device" section. (if you don't have this option present, then the first board found gets selected for that Device section.) for example, to use the first Voodoo board, use a "Device" section like this:
Section "Device"
Identifier "Voodoo"
Driver "glide"
Option "dpms" "on"
Option "GlideDevice" "0"
EndSection
and if you have more than one Voodoo board, add another "Device" section with a GlideDevice option with value 1, and so on. (you can use more than one Voodoo board, but SLI configured boards will be treated as a single board β they're a package deal π.)
multihead and Xinerama configurations are supported. π₯
limited support for DPMS screen saving is available. the "standby" and "suspend" modes are just painting the screen black (lol, lowkey fake). the "off" mode turns the Voodoo board off and thus works correctly. π
this driver does not support a virtual screen size different from the display size. that's it, that's the boundary. π«
π SUPPORTED HARDWARE π
the glide driver supports any board that can be used with Glide (such as 3Dfx Voodoo boards) π
π CONFIGURATION DETAILS π
please refer to xorg.conf(5) for general configuration details β this section only covers the configuration details that are specific to this driver. iykyk.
the following driver Options are supported:
Option "OnAtExit" "boolean"β if true, will leave the Voodoo board on when the server exits. super useful in a multihead setup when only the Voodoo board is connected to a second monitor and you don't want that monitor to lose signal when you quit the server. put this option in theDevicesection. Default: off.Option "GlideDevice" "integer"β selects which Voodoo board to use. (or boards, in an SLI configuration.) the value should be0for the first board,1for the second and so on. if it is not present, the first Voodoo board found will be selected. put this option in theDevicesection.
π EXAMPLE π
here's an example of part of an xorg.conf file that uses a multihead configuration with two monitors π«Ά. the first monitor is driven by the fbdev video driver and the second monitor is driven by the glide driver.
Section "Monitor"
Identifier "Monitor 1"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 30-70
VertRefresh 50-80
# 1024x768 @ 76 Hz, 62.5 kHz hsync
Modeline "1024x768" 85 1024 1032 1152 1360 768 784 787 823
EndSection
Section "Monitor"
Identifier "Monitor 2"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 30-70
VertRefresh 50-80
# 1024x768 @ 76 Hz, 62.5 kHz hsync
Modeline "1024x768" 85 1024 1032 1152 1360 768 784 787 823
EndSection
Section "Device"
Identifier "fb"
Driver "fbdev"
Option "shadowfb"
Option "dpms" "on"
# My video card is on the AGP bus which is usually
# located as PCI bus 1, device 0, function 0.
BusID "PCI:1:0:0"
EndSection
Section "Device"
# I have a Voodoo 2 board
Identifier "Voodoo"
Driver "glide"
Option "dpms" "on"
# The next line says I want to use the first board.
Option "GlideDevice" "0"
EndSection
Section "Screen"
Identifier "Screen 1"
Device "fb"
Monitor "Monitor 1"
DefaultDepth 16
Subsection "Display"
Depth 16
Modes "1024x768"
EndSubSection
EndSection
Section "Screen"
Identifier "Screen 2"
Device "Voodoo"
Monitor "Monitor 2"
DefaultDepth 16
Subsection "Display"
Depth 16
Modes "1024x768"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Main Layout"
# Screen 1 is to the right and screen 2 is to the left
Screen "Screen 2"
Screen "Screen 1" "" "" "Screen 2" ""
EndSection
if you use this configuration file and start the server with the +xinerama command line option, the two monitors will be showing a single large area where windows can be moved between monitors and overlap from one monitor to the other π¦β¨ starting the X server with the Xinerama extension can be done for example like this:
$ xinit -- +xinerama
main character energy, honestly.
π FILES π
glide_drv.o
β SEE ALSO β
Xorg(1), xorg.conf(5), Xserver(1), X(7)
π AUTHORS π
Author: Henrik Harmsen.
okay that's the whole page, bestie, you're officially a Glide expert π this was the GLIDE(4) page from X Version 11, shipping as part of xf86-video-glide 1.2.2 β go forth and shadow-framebuffer responsibly, ily, bye πβ¨
π¦ where this page comes from
- debian bookworm: xserver-xorg-video-glide 1.2.2-1+b8
- debian trixie: xserver-xorg-video-glide 1.2.2-2 Β· MIT
- ubuntu questing: xserver-xorg-video-glide 1.2.2-2
- ubuntu resolute: xserver-xorg-video-glide 1.2.2-2build1 Β· MIT
- ubuntu stonking: xserver-xorg-video-glide 1.2.2-2build1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms