HDMI Drama
You have a large, 4K TV with 120Hz, High Dynamic Range (HDR), and variable Refresh Rate (VRR) capabilities, and you want to use it to play your Steam games. Awesome! Itâs not as straightforward as you might think. đ©
The issue arises from Linux lacking support for HDMI 2.1. For more information, see The HDMI Forum rejected AMD’s open source HDMI 2.1 implementation
Fortunately, some Nvidia GPUs have HDMI 2.1 support built into their drivers, which can alleviate this problem. However, AMD GPUs do not offer this feature. Switching to Windows instead of Linux is also an option if HDMI 2.1 is a must have for your setup.
If youâre looking to use full-featured HDMI 2.1 on Linux, youâll need an Nvidia GPU. However, Nvidia GPUs may not work perfectly with Bazzite or Linux 100%. Thatâs improving over time. If your Nvidia GPU works for you already, then youâre good!
I have an AMD GPU, so Iâm limited, and frankly, this is a Linux gotcha that Iâm not happy about and borderline ready to switch to Windows over.
On the bright side, if your TV doesnât support HDMI 2.1, or you donât care about 120Hz VRR, you wonât encounter any issues related to this feature. Go play some games. đź
đŸ I built a Bazzite Steam Box for TV gaming and it works great! Check out my build.
Equipment Check
- If you want 4K at 120Hz with VRR and HDR, make sure your TV supports these things. Check your TVâs manual.
- Put the TV input you are using in âGame Modeâ or âPC Mode.â
- Turn on AMD FreeSync if your TV and GPU supports it.
Explore Your Video Options
Now that you know your TVâs capabilities and have things hooked up to the right port with the correct HDMI cable, itâs time to pick your video settings based on what your TV can do.
HDMI 1.4 & 2.0
Plug in the cable and go. Linux can handle what your TV supports.
HDMI 2.1
- Linux doesnât support HDMI 2.1, so you have to compromise
- Use Ultra High Speed (UHS) HDMI cables for 4K 120hz gaming (Just âHigh Speedâ isnât good enough.)
- Use an HDMI 2.1 compatible port on the TV (not all of them are sometimes)
- 4k up to 120hz allows VRR, but only 8-bit color
- 1440p up to 120Hz allows VRR, but only 8-bit color
- 1080p up to 120Hz allows VRR, HDR, and up to 12-bit color
(You may have HDR enabled, but 8-bit color does not support HDR.)
These variations worked on my LG C1 OLED. They may not work for your TV. You may have to drop the resolution or the refresh rate to 60Hz to get a stable image.
Display Port 1.4 -> HDMI 2.1 adaptor
There is a way around the Linux HDMI 2.1 limitation. You can use an active Display Port 1.4 to HDMI 2.1 adaptor. This one by Cablematters works.
- Will do 4K @ 120hz HDR
- No VRR, but will have 10 or 12-bit RGB color
âïž There is a way to get 4K 120hz, 10-bit color, HDR and VRR working with this adaptor, but itâs a bit of a hack and may not work for everyone. It may be worth a try.
I wrote about how to do it: Get HDMI 2.1 in Bazzite (mostly).
Pick Your Preference
I think until Bazzite/Linux gets an update to have better HDMI 2.1 support, your options for 4K or 1440p at 120Hz output is to choose between these options:
Prioritize Resolution and VRR, but low color depth
đș Use HDMI. Set your system resolution to 4k or 1440p at 120Hz, and VRR.
This will cause a color depth drop, so no HDR, but you will have smooth motion. This is pushing HDMI supported bandwidth limits, so you may get graphic artifacts or a flickering screen. TV compatibility will vary and you may not be able to go past 60Hz to get a stable picture.
Prioritize Resolution and color depth, but no VRR
đș Use the Display Port -> HDMI adaptor. Set your system resolution to 4k or 1440p and turn on HDR. You can do 120Hz, but VRR wonât be an option.
This will allow for a 10 or 12 bit color depth. Lock your games to a specific frame rate and target that with graphics settings to keep motion smooth.
Prioritize High color depth and VRR, but lower resolution
đș Use HDMI. Set your system resolution to 1080p with 120Hz, enable HDR and VRR. This allows for 10/12 bit color depth.
This option is the most stable and has the best compatibility.
đ The solution Iâm picking for my LG C1 is 1080p at 120Hz with VRR (AMD FreeSync), HDR, and 12-bit color. Since Iâm running at a lower resolution, Iâm able to max out graphics settings in games and still have a high frame rate. To me this is a good compromise.
Set up Steam
With Steam, you want to set the system resolution as the base resolution and then have individual games set their graphics to match. Some games may need to drop their rendering resolution so you can get decent frame rates, but the output resolution should match your systemâs resolution. Let Steam scale up the image instead of your TV.
- Open the Steam Menu and go to Graphics settings.
- Set the screen resolution and the HDR and VRR preferences you decided on above.
- Launch a game and go to graphics/display settings
- In the game settings pick your chosen resolution
- Set the refresh rate to match the option you picked above
- Run in a Window mode (not fullscreen)
Bonus Tips
Here are a few more things I had to deal with when setting up Bazzite on my 4k TV and how I fixed them.
Color banding
Use “Force Composite” in the Developer Settings to help with color banding. It wonât fix color banding caused by a low, 8-bit color depth.
(In Steamâs Settings, there is a toggle to enable Developer Settings. Then Developer Settings will be at the bottom of the list in the Steam Menu)
Graphical Glitches
If your graphics have glitches or static, and these things donât show up in screen shots, you are having issues with your HDMI cable or TV. You may be out of your TVâs specs or exceeding HDMI max bandwidth. Use an Ultra High Speed (UHS) HDMI cable or turn off HDR, VRR. You may need to lower your system resolution and see if it goes away then.
HDR Issues
If a game wonât allow HDR to be enabled, make sure it is enabled before you launch the game.
If a game forces HDR and you want to stop it, use an older Proton version like 7.0-6 or turn off HDR before launching the game.
Remember: HDR has a minimum requirement of a 10-bit color depth. 10-bit color can have a range of Chroma Subsampling (e.g., 4:4:4, 4:2:2, 4:2:0).
VRR Issues
On OLED displays, with VRR on, moving the cursor in menus (especially the Steam menus) will cause a faint flicker of the screen. The only fix for this is to turn off VRR here.
Game Graphics Mode Locked
If a game has certain graphics settings locked by default because it thinks Bazzite is a Steam Deck, this can be bypassed by using the launch option SteamDeck=0 %command%
BIOS
Hit the âDeleteâ key on boot up until the BIOS screen shows up. Then change these settings.
Enable D.O.C.P.
D.O.C.P. - Enable Profile #1 â it allows the RAM to operate at its advertised speed.
If You Have an AMD GPU and CPU
Enable Smart Access Memory (SMR) and youâll get a 5-10% boost in performance!
Look for âSet Resize BARâ and set to âOnâ. (On Asus motherboards, it may be under Advanced -> Advanced/PCI Subsystem Settings -> Above 4G Encoding enabled -> Resize Bar Support to Auto)