January 23, 2026

Fedora 43 -- Nvidia / XFCE bug (display compositing)

This began back with F42, see this for the story: The fix turned out to be quick and simple.
Go to "settings" -- "Window Manager Tweaks"
Select the "Compositor" tab.
Uncheck the "Enable display compositing" checkbox.

Now everything should be perfect with the nvidia driver (akmod-nvidia)!!

What is this horrible buggy window compositing feature?

We are curious now that we know that it made our lives miserable for about 2 weeks and wasted almost a day of our time.
Xfce display compositing is a feature within the Xfwm4 window manager that manages window transparency, shadows, and special effects while reducing screen tearing. It acts as an intermediate layer between applications and the display, using GPU acceleration to stack windows and render visual effects like fades and transparency.
It sucks. I hate it. That is all I need to know.

More details

After many experiments installing and removing packages and switching between nvidia and nouveau, I had gotten nowhere.

I began to think. If this was as serious a bug as it seems to be, why hasn't a fixed package come along? Maybe this is somehow specific to XFCE, as unlikely as that seems. (It is!!!) I do a search along those lines and hit paydirt immediately with "fedora xfce trouble with nvidia driver".

Fedora XFCE Nvidia issues (flickering, freezes, invisible windows) are commonly caused by Xorg/compositor conflicts or broken driver modules after updates.

Fix Glitching/Invisible Windows: In XFCE, go to Settings -> Window Manager Tweaks -> Compositor and ensure the VSync is managed properly, or try setting Xfwm to xpresent to resolve flickering issues common with recent NVIDIA drivers.

This certainly describes what I am experiencing. There is indeed a "Window Manager Tweaks" settings thing with a Compositor tab, but I see nothing about VSync. Maybe this is because I am running nouveau right now and some menu item will appear when I try nvidia again.

A suggestion is to do this:

xfwm4 --replace --vblank=glx &
xfconf-query -c xfwm4 -p /general/vblank_mode -s glx
The first command tries it out, the second makes it permanent. When I just type "xfwm4", it tells me "another window manager (sfwm4) is running on screen :0.0". As near as I can tell this is telling me that xfwm4 is already running and I shouldn't have two instances of the same window manager running.

XXXX NOTE: scroll to the bottom for details. This problem (on "trona") was fixed by doing the upgrade from 42 to 43 which put me back to running the nouveau driver.

On 1-11-2026 I did another long overdue "dnf update". I should figure out how to get the dnf auto thing to work properly (like it used to) and install updates as they come along. I got messages like this:

Autoinstall of module nvidia/575.57.08 for kernel 6.18.4-100.fc42.x86_64 (x8
>>> Building module(s).......................................(bad exit status: 2
>>> Failed command:
>>> 'make' -j8 KERNEL_UNAME=6.18.4-100.fc42.x86_64 modules
I am still running an old 6.17.8 kernel.
A reboot will take me to 6.18.4.
Of course I worry that rebooting with a broken nvidia setup will get me into troubles. Something to try first might be:
dnf remove akmod-nvidia
dnf install akmod-nvidia
I do this and there are no ugly messages. Now I will try the reboot.

It comes up as a useless disaster.
It at least has the correct resolution.
There are long delays after every character I type in a terminal windows. Windows turn white or disappear altogether, then come back..

I reboot and select the previous 6.17.8 kernel -- it is the same train wreck.

I reboot again and select an even older 6.15.9 kernel.
This works beautifully!!

What video driver am I using?

I try this:
uname -a
Linux trona 6.15.9-201.fc42.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Aug  2 11:37:34 UTC 2025 x86_64 GNU/Linux
lspci -k | grep -EA3 'VGA|3D|Display'
04:00.0 VGA compatible controller: NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate] (rev a1)
	Subsystem: Gigabyte Technology Co., Ltd Device 4074
	Kernel driver in use: nvidia
	Kernel modules: nouveau, nova_core, nvidia_drm, nvidia
I put the above into a script named 'vid'.
Then I reboot and run the latest. I use my "vid" command and see:
Linux trona 6.18.4-100.fc42.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jan  8 18:43:17 UTC 2026 x86_64 GNU/Linux
04:00.0 VGA compatible controller: NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate] (rev a1)
	Subsystem: Gigabyte Technology Co., Ltd Device 4074
	Kernel driver in use: nvidia
	Kernel modules: nouveau, nvidia_drm, nvidia
I boot back to 6.15.9 and get a crazy reduced video resolution. This is useless in a yet different way. I try this with 6.18.4 and reboot.
dnf remove akmod-nvidia
This does not fix my problem.

Just ugrade to F43

I do the usual dnf upgrade, and it comes up running OK! Note that I do not have akmod-nvidia unless it somehow got installed (it shouldn't) as part of the upgrade. In fact, I run "vid" and see:
Linux trona 6.18.4-200.fc43.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jan  8 17:35:49 UTC 2026 x86_64 GNU/Linux
04:00.0 VGA compatible controller: NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate] (rev a1)
	Subsystem: Gigabyte Technology Co., Ltd Device 4074
	Kernel driver in use: nouveau
	Kernel modules: nouveau
So I am now running nouveau and it is doing pretty good so far.

Switching to nouveau and back again

This problem looks like a buggy akmod-nvidia driver, so I am going to wait for a new version before installing it again. The current driver is 3:580.119.02-1.fc43. I have not yet installed this on F43. The kernel I am now running is 6.18.4-200.fc43.x86_64. A new akmod or a new kernel may merit trying it again. I could (should?) try dropping back to a previous version of the akmod, but I really don't want to invest more time in this right now.

To go back to nouveau from nvidia is a matter of removing the nvidia packages and rebooting (or so they say).

dnf remove *nvidia*
dnf install nvidia-gpu-firmware
Searching vi dnf.list shows lots of packages that mention nvidia. In particular:
xorg-x11-drv-nvidia
Check the file /etc/default/grub as it typically has nouveau in a "blacklist". This happens when you enable/install the nvidia drivers.
See this for lots of details:

Installing older versions of akmod (or any package)

Find out what is available via:
dnf list --showduplicates akmod-nvidia
Available packages
akmod-nvidia.x86_64 3:580.95.05-1.fc43  rpmfusion-nonfree
akmod-nvidia.x86_64 3:580.119.02-1.fc43 rpmfusion-nonfree-updates
So, 580.95 might be worth a try.

There is a dnf downgrade command. The package must already be installed to do a downgrade. The general behavior is to go one version back, if there is such a version available. Or you can specify the exact version as:

dnf downgrade akmod-nvidia-3:580.95.05
However, whenever you do an update, it will bump you to the latest version. There are two ways to avoid this. One is:
dnf update --exclude=akmod-nvidia
The other is to edit /etc/dnf/dnf.conf and make it look like this:
[main]
exclude=package_name_1,package_name_2
In my case, just
[main]
exclude=akmod-nvidia

Download the akmod-nvidia RPM

My idea is to avoid the DNF repository method and keep the RPM file(s) on my system and download exactly the version I want explicitly. But where do we download from? Their top level menu offers me 41, 42, and 43 (at this time), and either release or update packages for each. There is also "free" and "non-free". For akmod-nvidia you want non-free. I find:
F41 - updates - akmod-nvidia-580.82.09-1.fc41.x86_64.rpm
F42 - updates - akmod-nvidia-580.119.02-1.fc42.x86_64.rpm
F43 - release - akmod-nvidia-580.95.05-1.fc43.x86_64.rpm
I download these and place them in /Projects/akmod

There are a variety of other akmod packages, as well as kmod packages, and I have no idea how to sort all these out. Perhaps the HOWTO link above would explain.

I do this:

dnf install akmod-nvidia-580.95.05-1.fc43.x86_64.rpm
Updating and loading repositories:
Repositories loaded.
Package                                   Arch       Version                                    Repository                     Size
Installing:
 akmod-nvidia                             x86_64     3:580.95.05-1.fc43                         @commandline               96.6 KiB
Installing dependencies:
 akmods                                   noarch     0.6.2-3.fc43                               updates                    65.3 KiB
 fakeroot                                 x86_64     1.37.1-3.fc43                              fedora                    150.8 KiB
 fakeroot-libs                            x86_64     1.37.1-3.fc43                              fedora                    124.6 KiB
 kmodtool                                 noarch     1.1-14.fc43                                fedora                     27.6 KiB
 python3-progressbar2                     noarch     4.5.0-5.fc43                               fedora                    609.9 KiB
 python3-rpmautospec-core                 noarch     0.1.5-8.fc43                               fedora                     11.3 KiB
 python3-utils                            noarch     3.9.1-2.fc43                               fedora                    243.2 KiB
 rpmdevtools                              noarch     9.6-13.fc43                                fedora                    213.8 KiB
 xorg-x11-drv-nvidia-kmodsrc              x86_64     3:580.95.05-1.fc43                         rpmfusion-nonfree          86.7 MiB
Installing weak dependencies:
 python3-rpmautospec                      noarch     0.8.3-2.fc43                               fedora                    453.2 KiB

Transaction Summary:
 Installing:        11 packages
Now we reboot and see what happens. Well it tells me it is rebuilding /usr/src/akmods/nvidia-kmod.latest (which is 580.95), but then it tells me it cannot load nvidia and is falling back to nouveau. And it comes up in proper 3840x2160 resolution, but indeed running nouveau:
Linux trona 6.18.4-200.fc43.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jan  8 17:35:49 UTC 2026 x86_64 GNU/Linux
04:00.0 VGA compatible controller: NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate] (rev a1)
	Subsystem: Gigabyte Technology Co., Ltd Device 4074
	Kernel driver in use: nouveau
	Kernel modules: nouveau
Now, for the heck of it I do a "dnf update". I get a new kernel (6.17.8) and it updates akmod-nvidia:
Upgrading:
 akmod-nvidia                            x86_64 3:580.119.02-1.fc43             rpmfusion-nonfree-u  96.8 KiB
   replacing akmod-nvidia                x86_64 3:580.95.05-1.fc43              @commandline         96.6 KiB
I thought doing an explicit "dnf install xx.rpm" would avoid this, but clearly not. I go ahead with this update and after a long wait get a message:
Autoinstall of module nvidia/575.57.08 for kernel 6.18.5-200.fc43.x86_64 (x86_64)
>>> Building module(s).....................................(bad exit status: 2)
>>> Failed command:
>>> 'make' -j8 KERNEL_UNAME=6.18.5-200.fc43.x86_64 modules
>>>
>>> Error! Bad return status for module build on kernel: 6.18.5-200.fc43.x86_64 (x86_64)
>>> Consult /var/lib/dkms/nvidia/575.57.08/build/make.log for more information.
>>>
>>> Autoinstall on 6.18.5-200.fc43.x86_64 failed for module(s) nvidia(10).
I am still running the 6.18.4 kernel, so perhaps this will clean up when I reboot to the new 6.18.5. I go ahead and reboot.

I am running nvidia now, but it is buggy and useless. Nouveau is bad, but the current state of nvidia is worse. How to revert?

su
dnf remove akmod-nvidia
reboot
This does not do it! It boot up still running nvidia!
Let's try something more drastic:
dnf remove *nvidia*
dnf install nvidia-gpu-firmware
This gets rid of a lot of packages. Maybe after this "cleanup" I can install akmod-nvidia with success?
dnf remove *nvidia*
Package                             Arch   Version                         Repository                    Size
Removing:
 kmod-nvidia-6.18.4-100.fc42.x86_64 x86_64 3:580.119.02-1.fc42             @commandline              35.4 MiB
 kmod-nvidia-6.18.4-200.fc43.x86_64 x86_64 3:580.119.02-1.fc43             @commandline              35.4 MiB
 kmod-nvidia-6.18.5-200.fc43.x86_64 x86_64 3:580.119.02-1.fc43             @commandline              35.4 MiB
 kmod-nvidia-open-dkms              noarch 3:575.57.08-1.fc41              cuda-fedora41-12-9-local 102.4 MiB
 nvidia-gpu-firmware                noarch 20260110-1.fc43                 updates                  101.0 MiB
 nvidia-kmod-common                 noarch 3:575.57.08-1.fc41              cuda-fedora41-12-9-local  99.2 MiB
 nvidia-modprobe                    x86_64 3:580.119.02-1.fc43             rpmfusion-nonfree-update  50.9 KiB
 nvidia-settings                    x86_64 3:580.119.02-1.fc43             rpmfusion-nonfree-update   4.4 MiB
 xorg-x11-drv-nvidia                x86_64 3:580.119.02-1.fc43             rpmfusion-nonfree-update 169.2 MiB
 xorg-x11-drv-nvidia-cuda-libs      x86_64 3:580.119.02-1.fc43             rpmfusion-nonfree-update 345.6 MiB
 xorg-x11-drv-nvidia-libs           x86_64 3:580.119.02-1.fc43             rpmfusion-nonfree-update 443.2 MiB
 xorg-x11-drv-nvidia-power          x86_64 3:580.119.02-1.fc43             rpmfusion-nonfree-update   2.3 MiB
 xorg-x11-drv-nvidia-xorg-libs      x86_64 3:580.119.02-1.fc43             rpmfusion-nonfree-update  19.4 MiB
Removing unused dependencies:
 cuda-opencl-12-9                   x86_64 12.9.19-1                       cuda-fedora41-12-9-local  91.7 KiB
 cuda-toolkit-12-9-config-common    noarch 12.9.79-1                       cuda-fedora41-12-9-local   0.0   B
 cuda-toolkit-12-config-common      noarch 12.9.79-1                       cuda-fedora41-12-9-local  44.0   B
 cuda-toolkit-config-common         noarch 12.9.79-1                       cuda-fedora41-12-9-local  41.0   B
 dkms                               noarch 3.3.0-1.fc43                    updates                  217.0 KiB
 egl-gbm                            x86_64 2:1.1.2.1-2.fc43                fedora                    29.3 KiB
 egl-wayland                        x86_64 1.1.21-1.fc43                   updates                   83.4 KiB
 egl-x11                            x86_64 1.0.4-1.fc43                    updates                  165.8 KiB
 gcc-c++                            x86_64 15.2.1-5.fc43                   updates                   41.4 MiB
 kernel-devel-matched               x86_64 6.18.5-200.fc43                 updates                    0.0   B
 opencl-filesystem                  noarch 1.0-23.fc43                     fedora                     0.0   B

Transaction Summary:
 Removing:          24 packages

dnf install nvidia-gpu-firmware
After this, I reboot and am running nouveau. It has some minor issues, but at this time nvidia is entirely useless. Screens go white and/or disappear entirely. The crazy activity is triggered by both mouse and keyboard events. I've had enough of this for today. I used to run the nvidia driver with complete satisfaction. I wonder what went wrong?

Other that using my "vid" script, I good way to detect if nouveau is running is to put the cursor in the window running my python temp_plotter script. If motion is smooth, you have nvidia. If it is choppy and all but useless, you are running nouveau.

Try again a week later

I got tired of fooling with this, so I just ran with nouveau for a week. The experience is pretty bad. Mouse motion is choppy and unpredictable. Such bad performance is ridiculous and inexcusable with this video card:
lspci | grep VGA
04:00.0 VGA compatible controller: NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate] (rev a1)
vid
Linux trona 6.18.5-200.fc43.x86_64 #1 SMP PREEMPT_DYNAMIC Sun Jan 11 17:09:32 UTC 2026 x86_64 GNU/Linux
04:00.0 VGA compatible controller: NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate] (rev a1)
	Subsystem: Gigabyte Technology Co., Ltd Device 4074
	Kernel driver in use: nouveau
	Kernel modules: nouveau
So, I have decided to try again. My hope is that the big cleanout of nvidia packages above may have gotten rid of my problem. And I suspect my problem is related to a tangle of packages I installed when I decided to try CUDA programming a few months ago.
There is valuable information in this "HOWTO". It says that you can revert to running nouveau without uninstalling packages by doing the following:
With recent drivers as packaged with RPM Fusion, it is possible to switch easily between nouveau and nvidia while keeping the nvidia driver installed. When you are about to select the kernel at the grub menu step. You can edit the kernel entry, find the linux boot command line and manually remove the following options "rd.driver.blacklist=nouveau modprobe.blacklist=nouveau". This will allow you to boot using the nouveau driver instead of the nvidia binary driver. At this time, there is no way to make the switch at runtime.
I do this:
su
dnf update
dnf install akmod-nvidia
Installing:
 akmod-nvidia                  x86_64 3:580.119.02-1.fc43     rpmfusio  96.8 KiB
Installing dependencies:
 akmods                        noarch 0.6.2-3.fc43            updates   65.3 KiB
 egl-gbm                       x86_64 2:1.1.3-1.fc43          updates   29.3 KiB
 egl-wayland                   x86_64 1.1.21-1.fc43           updates   83.4 KiB
 egl-x11                       x86_64 1.0.4-1.fc43            updates  165.8 KiB
 fakeroot                      x86_64 1.37.1-3.fc43           fedora   150.8 KiB
 fakeroot-libs                 x86_64 1.37.1-3.fc43           fedora   124.6 KiB
 kernel-devel-matched          x86_64 6.18.5-200.fc43         updates    0.0   B
 kmodtool                      noarch 1.1-14.fc43             fedora    27.6 KiB
 nvidia-modprobe               x86_64 3:580.119.02-1.fc43     rpmfusio  50.9 KiB
 nvidia-settings               x86_64 3:580.119.02-1.fc43     rpmfusio   4.4 MiB
 opencl-filesystem             noarch 1.0-23.fc43             fedora     0.0   B
 python3-progressbar2          noarch 4.5.0-5.fc43            fedora   609.9 KiB
 python3-rpmautospec-core      noarch 0.1.5-8.fc43            fedora    11.3 KiB
 python3-utils                 noarch 3.9.1-2.fc43            fedora   243.2 KiB
 rpmdevtools                   noarch 9.6-13.fc43             fedora   213.8 KiB
 xorg-x11-drv-nvidia           x86_64 3:580.119.02-1.fc43     rpmfusio 169.2 MiB
 xorg-x11-drv-nvidia-cuda-libs x86_64 3:580.119.02-1.fc43     rpmfusio 345.6 MiB
 xorg-x11-drv-nvidia-kmodsrc   x86_64 3:580.119.02-1.fc43     rpmfusio  87.4 MiB
 xorg-x11-drv-nvidia-libs      x86_64 3:580.119.02-1.fc43     rpmfusio 443.2 MiB
 xorg-x11-drv-nvidia-xorg-libs x86_64 3:580.119.02-1.fc43     rpmfusio  19.4 MiB
Installing weak dependencies:
 python3-rpmautospec           noarch 0.8.3-2.fc43            fedora   453.2 KiB
 xorg-x11-drv-nvidia-power     x86_64 3:580.119.02-1.fc43     rpmfusio   2.3 MiB

Transaction Summary:
 Installing:        23 packages
And then of course, I reboot to try it out.
It is a miserable failure. Nouveau is bad, but this is much worse. The problem is that windows blank out on almost every keystroke, then come back and go away at random.

I edit the grub command line to get back to nouveau. This takes several tries to get right. You type "e" to edit the current boot line, then use arrow keys and the DEL key to change it. I use F10 when done to boot my system.

I see "rhgb" in the command line -- something I hate and would like to get rid of. This gets me back to running nouveau, which is what I am using as I type this.

The grub line now mentions something called "nova_core" and has it on the blacklist along with nouveau, something like this:

modprobe.blacklist=nouveau,nova_core
modprobe.blacklist=nova_core
I leave it blacklisted as shown, not knowing what it is. I search and learn:
nova_core is an emerging, experimental open-source Rust-based kernel driver for modern NVIDIA GPUs (GSP-based), designed by Red Hat engineers to eventually replace the older Nouveau driver.
It must be blacklisted to use the nvidia driver, so I probably did well to leave it blacklisted at any event.

Continued in a subsequent page.


Have any comments? Questions? Drop me a line!

Adventures in Computing / tom@mmto.org