Some 2D workloads are unusably slow without ShadowPrimary (such as doing anything in TKGate).
TKGate in particular, but possibly other applications (I saw similar behavior when creating an empty QML window if I disable hardware acceleration), are unusably slow when using the default configuration options for AMDGPU. This slowness goes away when ShadowPrimary is enabled, but enabling that disables page flipping (and generally causes the experience in other applications to be worse). This applies to both older versions of TKGate, and the newer 2.1 version released by Andrey Skvortsov.
The specific way it acts, and why I deem it unusable, is that it seems like drawing some of the lines blocks other lines from being drawn - so it takes multiple frames for all the lines to be drawn. While this doesn't cause too many troubles with small projects with few components being drawn at a time, this very quickly bogs the whole thing down as more components are added.
What's more, it seems as if each draw operation (sometimes individual lines, other times batches of lines) takes longer, or less time, depending on how large the window is. I have a feeling that the program is trying to draw each pixel.
I am using KDE Neon, based on Ubuntu 18.04. These are the current versions I'm using of various relevant packages (that I can think of; also, note that I have previously used the 'hwe' variant of the xorg packages from the official Ubuntu repositories, and had the same problem):
- xserver-xorg-core:
2:1.19.6-1ubuntu4.3 - xserver-xorg-video-amdgpu:
19.1.0+git1910171153.b467d256bpadoka0 - libdrm-amdgpu1:
2.4.100+git1910271846.0a7ad7dbpadoka0 - linux-image-generic-hwe-18.04:
5.0.0.36.94 - libgl1-mesa-dri:
1:20.0git191125160500.01eb6efb~padoka0
My hardware:
- CPU:
Intel i7 4790K - GPU:
AMD Radeon R9 290X (Hawaii XT)
The problem does not happen on other drivers, though I can't test Nouveau. But it didn't happen on the old proprietary driver (I don't think), and does not happen on the Intel driver. I'm not sure if it happens on the Radeon driver, but I think it might (as it also defaults to having ShadowPrimary disabled).