# Summary of DRI Driver Features
* "YES" means that the feature is present in HW and supported by the driver.
* "no" means that the feature is not present in the HW or driver.
* "SW" means that the feature is not present in the HW, but is emulated by the driver anyway.
* "HW" means that the feature is theoretically supported by the HW, but nobody's written the support into the driver. Yet.
* "x" means "unknown." Nobody's bothered to fill in the blanks yet.
Todo:
* Nouveau guys, please add nVidia chipsets; I'm not familiar with your status.
* Add the r300 driver. [[!table header="no" class="mointable" data="""
Vendor | ATI |||| | Intel ||| | Matrox | 3dfx || | 3DLabs | Sun | S3 ||| | SiS || | Trident | Via
Chip | Mach64 | Rage128 | R100 | R200 | i810 | i830 | i915 | G200/400/450/550 | Voodoo3 | Voodoo5 | Gamma | FFB | Savage3D | Savage4 | Virge | 300/630/730 | 6326 | Trident | Via
Hardware Stencil1 | no | YES | YES | YES | no | YES | YES | YES | no | YES | no | YES | YES | YES | x | x | x | no | x
Hardware Alpha Channel1 | no | no | YES | YES | no | YES | x | YES | no | YES | YES | YES | x | x | x | YES | x | no | x
Hardware TCL | no | no | YES | YES | no | no | x | no | no | no | YES | no | no | no | no | no | no | no | x
ARB_multitexture (units) | YES (2) | YES (2) | YES (2) | YES (2) | YES (2) | YES (2) | x | YES (G200:1, G400+:2) | YES (2) | YES (2) | no | no | no | YES (2) | no | no | no | no | x
ARB/SGIS_texture_border_clamp | no | no | YES | YES | no | YES | x | no | no | no | no | no | x | x | no | no | x | no | x
ARB_texture_cube_map | no | no | no | YES | no | no | x | no | no | no | no | no | x | x | no | no | x | no | x
ARB/EXT_texture_env_add | no | YES | YES | YES | YES | YES | x | YES (G400+) | YES | YES | no | no | x | x | no | no | x | no | x
ARB/EXT_texture_env_dot3 | no | no | YES | YES | no | YES | x | no | no | no | no | no | x | x | no | no | x | no | x
ARB/EXT_texture_env_combine | no | no | YES | YES | no | YES | x | no | no | YES | no | no | x | x | no | no | x | no | x
ARB_texture_mirrored_repeat | no | YES | YES | YES | YES | YES | x | no | no | no | no | no | x | x | no | no | x | no | x
ATI_texture_env_combine3 | no | no | YES | YES | no | no | x | no | no | no | no | no | x | x | no | no | x | no | x
ATI_texture_mirror_once | no | no | YES | YES | no | no | x | no | no | no | no | no | x | x | no | no | x | no | x
EXT_blend_color | SW | SW | SW | YES | SW | YES | x | no | no | no | no | no | x | x | no | no | x | no | x
EXT_blend_func_separate | no | no | no | no | no | YES | x | no | no | no | no | no | x | x | no | no | x | no | x
EXT_blend_logic_op | no | no | YES | YES | no | no | x | no | no | no | no | no | x | x | no | no | x | no | x
EXT_blend_minmax | SW | SW | SW | YES | SW | YES | x | no | no | no | no | no | x | x | no | no | x | no | x
EXT_blend_subtract | SW | SW | YES | YES | SW | YES | x | no | no | no | no | no | x | x | no | no | x | no | x
EXT_fog_coord | no | no | no | no | no | YES | x | YES | no | no | no | no | x | x | no | no | x | no | x
EXT_paletted_texture | no | no | no | no | no | no | x | no | YES | YES | no | no | x | x | no | no | x | no | x
EXT_secondary_color | no | no | YES | YES | no | YES | x | YES | no | no | no | no | x | x | no | no | x | no | x
EXT_shared_texture_palette | no | no | no | no | no | no | x | no | no | no | no | no | x | x | no | no | x | no | x
EXT_stencil_wrap | no | no | no | YES | SW | YES | x | YES | no | YES | no | no | x | x | no | no | x | no | x
EXT/SGIS_texture_edge_clamp | YES | YES | YES | YES | YES | YES | x | YES (G400+) | no | no | no | no | x | x | no | no | x | no | x
EXT_texture_filter_anisotropic | no | no | YES | YES | no | YES | x | no | no | no | no | no | x | x | no | no | x | no | x
EXT_texture_lod_bias | no | no | YES | YES | YES | YES | x | no | YES | YES | no | no | x | x | no | no | x | no | x
MESA_pack_invert | no | no | no | YES | no | no | x | no | no | no | no | no | x | x | no | no | x | no | x
MESA_ycbcr_texture | YES | YES | YES | YES | YES | YES | x | YES | no | no | no | no | x | x | no | no | x | no | x
NV_blend_square | no | no | YES | YES | no | no | x | no | no | no | no | no | x | x | no | no | x | no | x
NV_texture_rectangle | no | no | YES | YES | YES | YES | x | no | no | no | no | no | x | x | no | no | x | no | x
SGIS_generate_mipmap | YES | YES | YES | YES | YES | YES | x | YES | no | no | no | no | x | x | no | no | x | no | x
GLX_MESA_swap_control | YES | YES | YES | YES | no | no | x | YES | no | no | no | no | x | x | no | no | x | no | x
GLX_MESA_swap_frame_usage | no | no | YES | YES | no | no | x | YES | no | no | no | no | x | x | no | no | x | no | x
GLX_NV_vertex_array_range | no | no | no | YES | no | no | x | no | no | no | no | no | x | x | no | no | x | no | x
GLX_SGI_video_sync | YES | YES | YES | YES | no | no | x | YES | no | no | no | no | x | x | no | no | x | no | x
"""]]
Notes:
1. Hardware stencilling and hardware alpha channels are usually only available with 32bpp contexts.