xrandr 缩放 2x2 用于多显示器(4K HiDPI 和全高清混合)-模糊输出

Ayb*_*gür 17 xorg x11 xrandr multi-monitor dpi

在带有 的 Kubuntu 17.04 上nouveau,我试图获得双显示器设置,4K 作为主显示器,右侧有全高清(实际上是 1920x1200,但没有区别)。

我正在使用双 KDE 系统规模(如https://wiki.archlinux.org/index.php/HiDPI#Using_KDE_system_settings 中所述)以及xrandr缩放(如https://wiki.archlinux.org/index.php 中所述) /HiDPI#Side_display)。进一步来说:

xrandr \
    --output eDP-1 --mode 3840x2160 --pos 0x0    --auto \
    --output DP-2  --mode 1920x1200 --pos 3840x0 --auto \
        --panning 3840x2400+3840+0 --scale 2.0x2.0 \
    --fb 7680x2400
Run Code Online (Sandbox Code Playgroud)

问题是DP-2由于从 3840x2400 降采样到 1920x1200,所以有轻微的模糊,尤其是在字体上。这在https://wiki.archlinux.org/index.php/HiDPI#Side_display的末尾注明,建议的解决方案是显示器上的清晰度设置。试过了,不行。

缩放时使用的过滤器是双线性的:https : //cgit.freedesktop.org/xorg/app/xrandr/tree/xrandr.c? id = 5d5db88d106a49d7560a8042fa054df8b609f00a# n2993。最近的邻居也支持"nearest"但看起来很糟糕,即使它正好是 2x2 下采样,我不明白。我继续使用"lanczos"而不是"bilinear". 显然,这是不支持的:

X Error of failed request:  BadName (named color or font does not exist)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  26 (RRSetCrtcTransform)
  Serial number of failed request:  36
  Current serial number in output stream:  37
Run Code Online (Sandbox Code Playgroud)

有没有办法支持 lanczos(或更好的过滤器)?我不介意在软件中完成过滤。

现在,xrandr作为解决方法,我在主显示器上使用 1920x1080 原始分辨率禁用了双 KDE 缩放和缩放。正如预期的那样,辅助显示非常清晰,包括字体。然而,从正常观看距离来看,主显示器看起来比缩放的辅助显示器更糟糕,这也很奇怪,因为一半分辨率仍然是全高清,在其他非 4K 显示器上看起来非常清晰。

所以真正的问题是,有没有办法在两个显示器上获得清晰的图像?

编辑:忘记提及一个重要的事实,即我使用的是带有 GeForce 940MX 和 Intel HD Graphics 620 的 Nvidia PRIME 系统。在 nvidia-384 上,使用 Intel 时结果相同,即相同的模糊。使用 GeForce 时,--scale 2x2option 无效,--panningoption 会生成Failed Request与上述类似的错误。

gen*_*a2x 2

我的笔记本上也有 4k 显示器。我通常所做的只是为 4k 显示器设置 1920x1080 模式,实际上它看起来很完美,与 1080p 显示器完全相同。只是不要缩放或抗锯齿,您需要找到一种只有 2x2 像素的方法。