Linux GPU compatibility matrix

              
 

GPU best choice: which graphic card to buy for use with GNU/Linux?

                
 

Updated by Thomas “illwieckz” Debesse.

              
 

Updated on 2018-06-11 00:23:29 CEST.

              
                
 

TL;DR;

              
 

- You only have to buy an Nvidia GPU if you need to do some non-standard CUDA computation;

- You make a better choice buying an AMD GPU in all other cases;

- You only have to use the amdgpu closed source graphic driver if you need to use some broken app using non-standard OpenGL compatibility profiles;

- You can buy an Intel CPU with an integrated Intel GPU if you don't need so much power and you don't require native Direct3D9 support and don't require a working free OpenCL compute stack.

                
 

The compatibility matrix

              
                
 

Note on the colouring: when something is only available in proprietary stack, it's marked as “required” with a dark red background color, because being forced to use proprietary software is worst than not using any software, it's a kind or racket (a service that is fraudulently offered to solve a problem).

                
 

Hardware compatibility

 

Intel

   

AMD

     

Nvidia

  
                
 

CPU Vendor and family

 

Intel free

 

Intel non-free

 

AMD free

   

AMD non-free

 

Nvidia free

 

Nvidia non-free

   

i965

 

SDK (compute)

 

amdgpu

   

amdgpu-pro

 

nouveau

 

nvidia

 

Intel EMT64

 

yes

 

yes

 

yes

   

yes

 

yes

 

yes

 

AMD AMD64

 

unavailable

 

unavailable

 

yes

   

yes

 

yes

 

yes

 

IBM PPC64

 

unavailable

 

unavailable

 

yes

   

no

 

yes

 

yes

 

ARM

 

unavailable

 

unavailable

 

yes

   

no

 

yes

 

yes

                
 

Hardware design

 

Intel

   

AMD

     

Nvidia

  
 

Integrated

 

yes

 

yes

 

yes

   

yes

 

yes

 

yes

 

Replaceable

 

unavailable

 

unavailable

 

yes

   

yes

 

yes

 

yes

                
 

Usage

 

Intel

   

AMD

     

Nvidia

  
 

Low-end

 

yes

 

yes

 

yes

   

yes

 

yes

 

yes

 

High-end

 

unavailable

 

unavailable

 

yes

   

yes

 

yes

 

yes

                
 

KMD¹ Status

 

Intel

   

AMD

     

Nvidia

  
                
 

Driver support

 

Intel free

   

AMD free

   

AMD non-free

 

Nvidia free

 

Nvidia non-free

   

i965

   

amdgpu

     

nouveau

 

nvidia

 

Community review

 

yes

   

yes

   

no

 

yes

 

no

 

Community support

 

yes

   

yes

   

no

 

yes

 

no

 

Vendor support

 

yes

   

yes

   

no

 

no

 

required

                
 

Driver status

 

Intel free

   

AMD free

   

AMD non-free

 

Nvidia free

 

Nvidia non-free

   

i965

   

amdgpu

     

nouveau

 

nvidia

 

Welcome

 

yes

   

yes

   

no

 

yes

 

no

 

Shipped within distributions

 

yes

   

yes

   

no

 

yes

 

no

 

Recommended

 

yes

   

yes

   

no

 

yes

 

no

 

Maintainable

 

yes

   

yes

   

no

 

yes

 

no

 

Readable

 

yes

   

yes

   

no

 

yes

 

no

 

Free/Libre

 

yes

   

yes

   

no

 

yes

 

no

 

Shared code in Linux source repository

 

yes

   

yes

   

no

 

yes

 

no

                
 

UMD¹ Status

 

Intel

   

AMD

     

Nvidia

  
                
 

Driver support

 

Intel free

 

Intel non-free

 

AMD free

   

AMD non-free

 

Nvidia free

 

Nvidia non-free

   

i965

 

SDK (compute)

 

mesa

amdvlk

rocm

 

amdgpu-pro

 

mesa

 

nvidia

 

Community review

 

yes

 

no

 

yes

yes

yes

 

no

 

yes

 

no

 

Community support

 

yes

 

no

 

yes

yes

yes

 

no

 

yes

 

no

 

Vendor support

 

yes

 

yes

 

no

yes

yes

 

yes

 

no

 

required

                
 

Driver status

 

Intel free

 

Intel non-free

 

AMD free

   

AMD non-free

 

Nvidia free

 

Nvidia non-free

   

mesa

 

SDK (compute)

 

mesa

amdvlk

rocm

 

amdgpu-pro

 

mesa

 

nvidia

 

Welcome

 

yes

 

no

 

yes

yes

yes

 

no

 

yes

 

no

 

Shipped within distributions

 

yes

 

no

 

yes

not yet

not yet

 

no

 

yes

 

no

 

Can be installed along other solutions

 

yes

 

yes

  

yes

yes

 

yes

 

yes

 

no

 

Recommended

 

yes

 

no

 

yes

yes

yes

 

no

 

yes

 

no

 

Maintainable

 

yes

 

no

 

yes

yes

yes

 

no

 

yes

 

no

 

Readable

 

yes

 

no

 

yes

yes

yes

 

no

 

yes

 

no

 

Free/Libre

 

yes

 

no

 

yes

yes

yes

 

no

 

yes

 

no

                
 

Code sharing

 

Intel

   

AMD

     

Nvidia

  
                
 

Source tree

 

Intel free

   

AMD free

   

AMD non-free

 

Nvidia free

 

Nvidia non-free

   

i965

   

amdgpu

amdvlk

rocm

 

amdgpu-pro

 

mesa

 

nvidia

 

Linux shared code

 

yes

   

yes

yes

yes

 

yes

 

yes

 

no

 

Mesa shared code

 

yes

   

yes

   

no

 

yes

 

no

 

Gallium3D shared code

 

no

   

yes

   

no

 

yes

 

no

                
 

Graphical API compatibility

 

Intel

   

AMD

     

Nvidia

  
                
 

Standard graphical rendering

 

Intel free

   

AMD free

   

AMD non-free

 

Nvidia free

 

Nvidia non-free

   

mesa/anv

   

mesa/radv

amdvlk

  

amdgpu-pro

 

mesa

 

nvidia

 

Vulkan support

 

yes

   

yes

yes

  

yes

 

no

 

required

 

Vulkan features

 

yes

   

yes

yes

  

yes

 

no

 

required

 

Vulkan quality

 

unknown

   

yes

yes

  

yes

 

no

 

required

 

Vulkan performance

 

unknown

   

yes

yes

  

yes

 

no

 

required

   

mesa

   

mesa/radeonsi

   

amdgpu-pro

 

mesa

 

nvidia

 

OpenGL support

 

yes

   

yes

   

yes

 

yes

 

yes

 

OpenGL features

 

yes

   

yes

   

yes

 

yes

 

yes

 

OpenGL quality

 

yes

   

yes

   

yes

 

yes

 

yes

 

OpenGL performance

 

yes

   

yes

   

yes

 

no

 

required

   

mesa

   

mesa/radeonsi

   

amdgpu-pro

 

mesa

 

nvidia

 

OpenGL ES support

 

yes

   

yes

   

yes

 

yes

 

yes

 

OpenGL ES features

 

yes

   

progressing

   

yes

 

progressing

 

yes

 

OpenGL ES quality

 

yes

   

yes

   

yes

 

yes

 

yes

 

OpenGL ES performance

 

yes

   

yes

   

yes

 

no

 

required

                
 

Non-standard graphical rendering

 

Intel free

   

AMD free

   

AMD non-free

 

Nvidia free

 

Nvidia non-free

   

mesa

   

mesa/radeonsi

   

amdgpu-pro

 

mesa

 

nvidia

 

OpenGL 4.0+ non-standard core profile

 

no

   

progressing

   

required

 

no

 

required

                
 

Foreign graphical rendering

 

Intel free

   

AMD free

   

AMD non-free

 

Nvidia free

 

Nvidia non-free

   

mesa

   

mesa/radeonsi

   

amdgpu-pro

 

mesa

 

nvidia

 

Direct3D9 support

 

no

   

yes

   

no

 

yes

 

no

 

Direct3D9 features

 

no

   

yes

   

no

 

yes

 

no

 

Direct3D9 quality

 

no

   

yes

   

no

 

yes

 

no

 

Direct3D9 performance

 

no

   

yes

   

no

 

no

 

no

 

Metal support

 

not wanted

   

not wanted

   

not wanted

 

not wanted

 

not wanted

                
 

Foreign graphical rendering to Vulkan

 

Intel free

   

AMD free

   

AMD non-free

 

Nvidia free

 

Nvidia non-free

   

mesa/anv

   

mesa/radv

amdvlk

  

amdgpu-pro

 

mesa

 

nvidia

   

d3d8to9

   

d3d8to9

d3d8to9

  

d3d8to9

 

d3d8to9

 

d3d8to9

 

Direct3D8 to Vulkan support

 

requires vk9

   

requires vk9

requires vk9

  

requires vk9

 

no

 

requires vk9

   

vk9

   

vk9

vk9

  

vk9

 

vk9

 

vk9

 

Direct3D9 to Vulkan support

 

progressing

   

progressing

progressing

  

progressing

 

no

 

progressing

 

Direct3D9 to Vulkan features

 

not yet

   

not yet

not yet

  

not yet

 

no

 

not yet

 

Direct3D9 to Vulkan quality

 

too early to know

   

too early to know

too early to know

  

too early to know

 

no

 

too early to know

 

Direct3D9 to Vulkan performance

 

too early to know

   

too early to know

too early to know

  

too early to know

 

no

 

too early to know

   

dxup

   

dxup

dxup

  

dxup

 

dxup

 

dxup

 

Direct3D10 to Vulkan support

 

requires dxvk

   

requires dxvk

requires dxvk

  

requires dxvk

 

no

 

requires dxvk

   

dxvk

   

dxvk

dxvk

  

dxvk

 

dxvk

 

dxvk

 

Direct3D11 to Vulkan support

 

yes

   

yes

yes

  

yes

 

no

 

yes

 

Direct3D11 to Vulkan features

 

progressing

   

progressing

progressing

  

progressing

 

no

 

progressing

 

Direct3D11 to Vulkan quality

 

progressing

   

progressing

progressing

  

progressing

 

no

 

progressing

 

Direct3D11 to Vulkan performance

 

progressing

   

progressing

progressing

  

progressing

 

no

 

progressing

   

vkd3d

   

vkd3d

vkd3d

  

vkd3d

 

dxvk

 

vkd3d

 

Direct3D12 to Vulkan support

 

progressing

   

progressing

progressing

  

progressing

 

no

 

progressing

 

Direct3D12 to Vulkan features

 

not yet

   

not yet

not yet

  

not yet

 

no

 

not yet

 

Direct3D12 to Vulkan quality

 

too early to know

   

too early to know

too early to know

  

too early to know

 

no

 

too early to know

 

Direct3D12 to Vulkan performance

 

too early to know

   

too early to know

too early to know

  

too early to know

 

no

 

too early to know

                
 

Compute API compatibility

 

Intel

   

AMD

     

Nvidia

  
                
 

Standard computing³

 

Intel free

 

Intel non-free

 

AMD free

   

AMD non-free

 

Nvidia free

 

Nvidia non-free

   

beignet

 

SDK (compute)

 

mesa/clover

 

rocm

 

amdgpu-pro

 

mesa

 

nvidia

 

OpenCL support

 

yes

 

yes

 

progressing

 

yes

 

yes

 

no

 

required

 

OpenCL features

 

yes

 

yes

 

progressing

 

yes

 

yes

 

no

 

required

 

OpenCL quality

 

progressing

 

preferable

 

progressing

 

yes

 

yes

 

no

 

required

 

OpenCL performance

 

progressing

 

preferable

 

progressing

 

yes

 

yes

 

no

 

required

                
 

Non-standard computing

 

Intel free

 

Intel non-free

 

AMD free

   

AMD non-free

 

Nvidia free

 

Nvidia non-free

   

beignet

 

SDK (compute)

 

mesa/clover

 

rocm

 

amdgpu-pro

 

mesa

 

nvidia

 

CUDA support

 

not wanted

 

not wanted

 

not wanted

 

not wanted

 

not wanted

 

not wanted

 

required

 

Metal Performance support

 

not wanted

 

not wanted

 

not wanted

 

not wanted

 

not wanted

 

not wanted

 

not wanted

                
 

Desktop environment⁴ compatibility

 

Intel

   

AMD

     

Nvidia

  
                
 

Desktop environment

 

Intel free

   

AMD free

   

AMD non-free

 

Nvidia free

 

Nvidia non-free

   

mesa

   

mesa

   

amdgpu-pro

 

mesa

 

nvidia

 

GNOME on X.org

 

yes

   

yes

   

yes

 

yes

 

yes

 

GNOME on Wayland⁵

 

yes

   

yes

   

yes

 

yes

 

require hack

                
 

KDE on X.org

 

yes

   

yes

   

yes

 

yes

 

yes

 

KDE on Wayland

 

yes

   

yes

   

yes

 

yes

 

no

                
 

___________________

¹ Kernel Mode Driver.

² User Mode Driver.

³ The AMDGPU proprietary OpenCL fallback stack can be used alongside the AMDGPU all-open graphical stack.

⁴ Other desktop environments are not shown if their status does not differ from GNOME or KDE compatibility (XFCE, LXDE, Unity, Mate, etc.).

⁵ Gnome on Wayland over NVidia proprietary stack relies on Nvidia proprietary driver specificness (EGLStreams), standard GBM not available.