CFT: update Xorg to 1.19.3
Jan Kokemüller
jan.kokemueller at gmail.com
Thu Mar 23 07:21:36 UTC 2017
Thanks, Xorg 1.19.3 from your patch works great for me. I've had trouble
applying the patch, though. There were conflicts in the devd backend. I
used "patch < Xorg_1_19_3.patch" to apply the patch. I've been running
the libdevd-udev backend for now.
I'm running the 'modesetting' video driver on Intel Sandybridge graphics
and it works without tearing when using compton. It seems a good
alternative to the xf86-video-intel driver.
Evdev devices are picked up correctly by the libdevd-udev backend. But
there is a small bug uncovered by using evdev devices exclusively:
Without evdev, xf86-input-keyboard is used for keyboard input. This
driver was responsible for setting the console to raw mode with
"ioctl(fd, KDSKBMODE, K_RAW);". One easy way to check if raw mode is
enabled is trying to press Alt+F1 to switch to another TTY. This should
not work in raw mode (Strg+Alt+F1 is needed).
Setting the mode to K_RAW in the Server as done on Linux seems more
correct. I don't fully understand this ioctl yet, though. There is some
discussion here:
http://unix.stackexchange.com/questions/173712/best-practice-for-hiding-virtual-console-while-rendering-video-to-framebuffer/178807#178807
I'm using this quickly thrown together patch to set the terminal to
K_RAW mode:
diff -ru work/xorg-server-1.19.3/hw/xfree86/os-support/bsd/bsd_init.c
work2/xorg-server-1.19.3/hw/xfree86/os-support/bsd/bsd_init.c
--- work/xorg-server-1.19.3/hw/xfree86/os-support/bsd/bsd_init.c
2017-03-23 08:05:01.085410000 +0100
+++ work2/xorg-server-1.19.3/hw/xfree86/os-support/bsd/bsd_init.c
2017-03-18 13:51:35.411504000 +0100
@@ -443,6 +443,11 @@
fd = -1;
}
}
+
+ if (fd >= 0) {
+ ioctl(fd, KDSKBMODE, K_RAW);
+ }
+
return fd;
}
@@ -596,6 +601,7 @@
#if defined (SYSCONS_SUPPORT) || defined (PCVT_SUPPORT)
case SYSCONS:
case PCVT:
+ ioctl(xf86Info.consoleFd, KDSKBMODE, K_XLATE);
ioctl(xf86Info.consoleFd, KDSETMODE, KD_TEXT); /* Back to
text mode */
if (ioctl(xf86Info.consoleFd, VT_GETMODE, &VT) != -1) {
VT.mode = VT_AUTO;
More information about the freebsd-x11
mailing list