xrandr 使用 vsync 进行缩放

xrandr 使用 vsync 进行缩放

我目前正在使用 xrandr 的--scale选项在我的 hidpi 显示器上正确缩放应用程序,而 gnome shell 提供的 2x 缩放选项太大。

我目前使用这些命令来完成此操作:

gsettings set org.gnome.desktop.interface scaling-factor 2
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gdk/WindowScalingFactor': <2>}"
xrandr --output DP1 --scale 1.5x1.5
xrandr --output DP1 --panning 3840x2160

这是基于“如何使用非整数”部分本维基

就大小而言,这确实很有效,但我注意到它似乎也禁用了垂直同步。我正在使用这个视频测试 vsync 是否正常工作。

如何使用 xrandr 让垂直同步与缩放选项一起工作?我似乎无法通过阅读手册找到任何明显的解决方法。

答案1

自从我买了一台高 DPI 平板电脑后,这个问题就一直困扰着我。幸运的是,如果你的屏幕连接到英特尔的 GPU,那么就有解决方案。

Xrandr 的缩放是通过将 X11 屏幕内容渲染到X渲染图片,然后缩放并显示在真实屏幕上。也就是说,Xrandr 并没有真正决定如何缩放和显示输出,一切都取决于使用的 DDX 驱动程序的 Xrender 实现。这些总是古怪而又不规范,导致同步和性能问题。

Intel 的 DDX 提供了一个非标准选项,称为无泪,强制 Xrender 像素图和屏幕之间的同步(同时也会带来一些性能问题,这就是为什么默认情况下不启用它的原因)。您可以通过创建*.conf归档/etc/X11/xorg.conf.d/包含:

Section "Device"
    Identifier "Intel Graphics"
    Driver "intel"

    Option "AccelMethod" "sna"
    Option "TearFree" "true"
EndSection

相关内容