I bought a new monitor recently: 2K at 240 Hz. It felt much smoother than 144 Hz, but I quickly ran into a problem.
When I played a game in fullscreen mode and switched back to the desktop, the monitor would go black for a short time and show an OSD status popup. I often need to switch out of games, so the experience was bad enough that I had to play in borderless windowed mode.
Clue 1: Refresh Rate
My memory had some issues before, and the game could not stay stable at 240 fps. I decided to lower the refresh rate to 200 Hz. Then I noticed that when I used 200 Hz, the black-screen problem disappeared.
At that point, I suspected the refresh rate might be so high that the bandwidth from the GPU to the monitor exceeded the DisplayPort limit. But logically, if it exceeded the limit, it should simply not work. I did not know enough about monitors then, so I did not dig further.
Clue 2: Bit Depth
A few days later, while changing GPU driver settings, I noticed that the output color depth was 10-bit. Then I remembered that this monitor supports 10-bit output. This brought back the bandwidth suspicion, so I changed the output to 8-bit. For this kind of esports monitor, color accuracy is not the point anyway, and I do not need 10-bit just to play games.
Things then developed exactly as expected. After switching to 8-bit, the black-screen problem disappeared even at 240 Hz. To verify the guess, I calculated the bandwidth requirements.
At 8-bit, the GPU output bandwidth is:
2560 * 1440 * 240 * 8 * 3 = 21.23 Gbps
DisplayPort 1.4 has a maximum bandwidth of 32.4 Gbps, so this is below the limit. At 10-bit:
2560 * 1440 * 240 * 10 * 3 = 26.54 Gbps
This is still below 32.4 Gbps, so it did not explain the issue. I then decided to learn more about DisplayPort.
After reading through Wikipedia, the first important detail was that DisplayPort uses 8b/10b encoding for transmission. Every 8 bits of data are encoded as 10 bits, adding 2 bits of overhead. That means the effective bandwidth is:
32.4 Gbps * 80% = 25.92 Gbps
Now the hypothesis made partial sense: 10-bit output really does exceed the effective DP bandwidth. While learning about DP, I also learned about DSC, or Display Stream Compression. In short, DSC compresses display data. I checked the monitor settings, and DSC was enabled.
That means when I used 10-bit output, the GPU output bit depth inside and outside the game differed, causing the monitor to switch DSC on and off. That switch causes a short black screen.
One More Thing
The calculation above is still wrong. The English Wikipedia page for DisplayPort lists bandwidth requirements for many resolutions and refresh rates, but the numbers did not match mine. The page notes that the calculation includes CVT-RB v2, so I learned about that as well.
In simple terms, a monitor does not update all pixels at once. It scans line by line. To avoid interference, the actual scan width and height are larger than the visible resolution. The actual timing values are defined by VESA standards and differ by resolution and refresh rate.
VESA provides a calculator. For my 2K at 240 Hz case, the actual scan width is 2640 and the actual scan height is 1619. Therefore, the 8-bit bandwidth is actually:
2640 * 1619 * 240 * 8 * 3 = 24.62 Gbps
This matches the value on Wikipedia and is already very close to the effective bandwidth limit of DP 1.4.
Smoother Overwatch
Switching to 8-bit and disabling DSC makes the game noticeably smoother. DSC itself adds latency. Many sources say the impact is almost impossible to notice, but many Reddit users say the difference is obvious. For competitive players, DSC should be disabled.