FreeBSD DRM and Graphics Support

Introduction

This page and all the linked articles presents the status and directions of all the low-level components making FreeBSD usable as a desktop.

This includes:

It does not include:

Developer info and TODOs

Developer information, including tasks in progress and similar, is available in the developer section.

TODO

Tasks currently worked on by the Graphics Team

Task

Developer

Status

Comment

Add support for POWER9

mmacy

50%

radeonkms working

Tasks available to contributers

Task

Developer

Status

Comment

Get Intel GPU Tools working

Initial port exists

Outdated initial port here

Contact

We also have a blog, which contains posts about:

Hardware Support

Chipsets

Most x86-class machines will have a graphics chipset from one of the following manufacturers. Each one has its own set of configuration considerations.

/!\ The tables included are not an exhaustive list of supported hardware. Hardware is only listed if and when it has been explicitly tested/confirmed by developers and/or users. Graphics hardware missing from these tables may or may not work. If you have tested hardware that is not on the list, please report the results.

About GPU codenames vs. marketing names

The entries below are misleading because they use the marketing names as the "key". This table needs to be rewritten using GPU codenames as the key.

If your GPU is not supported

If your GPU is not supported by FreeBSD, you can fallback to VESA (if your computer uses a BIOS) or SCFB (if your computer uses UEFI). For the latter case, you can find instructions to setup SCFB in a dedicated article.

Intel Integrated Graphics (aka HD Graphics)

Intel HD Graphics refers to the class of graphics chips that are integrated on the same die as an Intel CPU. This Wikipedia entry provides a good overview of the various variations and names used for generations of Intel HD Graphics. You will find Intel HD Graphics chips on many modern laptop and desktop systems that ship with an Intel processor. As far as FreeBSD goes, and starting with 12.0-RELEASE, there are two generations of support for this platform:

Both are supplied as ports, and provide a kernel module to enable the integrated graphics chip on Intel CPUs. Generally speaking if you have a system with one of these graphics adapters it is suggested to install the drm-kmod metaport, which should work well on systems starting with the "Broadwell" generation. This code is under active development and allows us to track more closely the drivers present in the Linux kernel. For haswell based systems, if the drm-kmod port does not work, it is suggested to install the drm-legacy-kmod. This is based on our previous code that matched the Linux 3.8 kernel drivers.

This page contains a table should illustrate the state of various Intel chipsets.

Furthermore, if you notice high CPU usage or excessive tearing while viewing HD video it is reported that installing the libva-intel-driver is helpful, as it enables VAAPI support on these systems. This package should be installed in addition to the drm-kmod, mesa-libs and mesa-dri packages.

Example Configuration For Post Broadwell System

A common configuration is a user who has an Intel laptop with a Kabylake Intel i915 HD Graphics chip. To enable the chipset one would follow these instructions:

Note: For systems that are able to take advantage of this updated DRM code you do not need to prepare an xorg.conf configuration file, and installing the xf86-video-intel port is optional. Our Xorg should autodetect the driver, and utilize the modesetting Xorg driver and glamor driver.

AMD Graphics

AMD based GPUs are also supported using the drm-kmod port or package. Unlike the i915 Intel graphics driver there are two separate modules available for AMD devices based on their generation. The modules are named:

To view the AMD graphics support matrix view this page. The Xorg project also has a great resource on decoding AMD marketing names to engineering friendly names here.

It is important to note that there is currently a conflict with both AMD drivers and the EFI frambuffer. The current workaround, when booting via UEFI on these systems, is to disable the framebuffer via /boot/loader.conf:

hw.syscons.disable=1

This will have the side effect of there being no console output until either the amdgpu or radeonkms kernel driver is loaded. Please see this Github issue for more context.

One final note - there is a patch available here that will allow you to use Vulkan, OpenCL, Xwayland and OpenMW when using Wayland.

AMD GPU

AMD GPU is the kernel module that can be used to support post-HD7000 or Tahiti GPUs. To enable graphics on these systems you would do the following:

Radeon KMS

Radeon KMS is a distinct driver intended for older AMD based GPUs that are available in pre-HD7000 or Tahiti GPUs. To enable graphics on systems with these GPUs you would do the following:

Virtual Machines

VMware

Experimental support for accelerated graphics in FreeBSD as guest OS in VMware was added to drm-devel-kmod.

Known bugs:

VirtualBox

A DRM driver for VirtualBox is going to be added to the Linux source tree in the next coming minor versions. Once it's there, a FreeBSD port is planned. Stay tuned here or check out the blog for updates.

Compatibility

The combinations of graphics hardware and software is bewildering. Because of this, it is completely infeasible to support every combination.

The best that FreeBSD can do is to document known configurations that are known to either work, or not work.

Our primary constraints are:

xorg upstream

device driver upstreams

Reporting

Before reporting your experience, please check to see if your configuration is currently documented in the links above, or in KnownIssues.

Reporting Syccessful Results

If everything works, let us know on the mailing list. Your information helps us confirm which hardware/software configurations work well.

Please include:

Reporting Issues / Bugs

If encountering problems in either the kernel driver or the in-development ports, post the following information to the mailing list

/!\ Due to limited manpower, you may have to try to debug problems yourself. Please consult DebuggingTips.

Debugging Tips

Known Issues

Legacy Documentation

There is a copy of the previous iteration of this page available here. Hopefully no critical information was left out during this migration, but please notify the team if anything was missed!


CategoryStale

MarkLinimon/WorkAreaGraphics2 (last edited 2021-04-25T04:07:32+0000 by MarkLinimon)