AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1176348
Accepted
Erik Steiner
Erik Steiner
Asked: 2019-09-25 06:41:23 +0800 CST2019-09-25 06:41:23 +0800 CST 2019-09-25 06:41:23 +0800 CST

UBUNTU 19.04 屏幕撕裂电脑

  • 772

我在我的电脑上安装了 Ubuntu 19.04:

  • 英特尔 i7 8700k
  • NVIDIA 技嘉 GeForce GTX 1080 Ti AORUS Waterforce @NVIDIA-driver-418
  • 显示器 ASUS PB287Q @3840x2160 像素

在使用 Ubuntu 的一开始,我就注意到了这个恼人的屏幕撕裂。我以为那只是在 Firefox 中,但是当我摇动窗口时,我看到一条水平线将窗口分成两部分(撕裂)。它发生在每一种窗口或应用程序中。我读了很多,这就是我到目前为止所做的:

  • 启用小数缩放,因为我无法以 100% 阅读,而它在 200% 时杀死了我。
    我将其设置为 150%:gsettings set org.gnome.mutter experimental-features "['x11-randr-fractional-scaling']"
  • ForceFullCompositionPipeline 为 On。首先在 nvidia-settings 中,后来在 中/usr/share/X11/xorg.conf.d/10-nvidia.conf,因为我注意到重新启动或关机会重置设置。

输出nvidia-settings -q CurrentMetaMode:

Attribute 'CurrentMetaMode' (EST:1.0): id=50, switchable=yes, source=RandR ::
  DPY-7: nvidia-auto-select @5120x2880 +0+0
  {Transform=(1.333328,0.000000,0.000000,0.000000,1.333328,0.000000,0.000000,0.
  000000,1.000000), ViewPortIn=5120x2880, ViewPortOut=3840x2160+0+0,
  ResamplingMethod=Bilinear, ForceCompositionPipeline=On,
  ForceFullCompositionPipeline=On}

我附上了我的10-nvidia.conf. 很奇怪,如果我开这个,撕裂会立即修复,但我需要不时重新申请它,即使我设置了我的10-nvidia.conf:

sudo nvidia-settings --assign CurrentMetaMode="nvidia-auto-select
  @5120x2880 +0+0 { ViewPortIn=5120x2880, ViewPortOut=3840x2160+0+0,
  ResamplingMethod=Bilinear, ForceCompositionPipeline=On,
  ForceFullCompositionPipeline=On }"
xorg drivers nvidia tearing 19.04
  • 1 1 个回答
  • 1242 Views

1 个回答

  • Voted
  1. Best Answer
    Erik Steiner
    2019-09-26T13:44:59+08:002019-09-26T13:44:59+08:00

    我想我终于找到了适合自己的解决方案。通过以下步骤,我能够获得无撕裂的体验并设置我的 HiDPI 显示器以获取可读内容。我想避免在设置和显示设备下使用 GNOME 缩放模式(请参阅下面的 GNOME 和 NVIDIA 之间的问题),并通过正确设置 DPI 来解决缩放问题。它没有像我想象的那样工作(DPI 缩放,撕裂是固定的),但是我正在寻找您的反馈。也许它毕竟可以工作。

    我不得不处理以下问题:

    • 安装 Ubuntu 后,我无法读取显示器上的任何内容。使用 28" 的 4k 显示器需要在不使用双筒望远镜的情况下进行 HiDPI 设置。
    • 在 Gnome 设置菜单中将缩放设置为 200 太多了,100 是不可接受的。分数缩放是好的。
    • 接下来是撕裂。一切都感觉波涛汹涌,所有窗户都有这条水平线的厄运。所以我设置了一个10-nvidia.conf.
    • 10-nvidia.conf只是部分修复了它,因为在重新启动或关闭后不时撕裂又回来了。
    • Gnome Scaling 和 NVIDIA 驱动程序相互干扰。
      • 当我打开 nvidia-settings 时,我注意到我的屏幕黑了几秒钟。
      • 当我尝试截屏时,由于屏幕变黑,Flameshot(截屏应用程序)无法正常工作。按 Esc 结束“截屏”操作使屏幕再次出现。
      • 我想为我的显示器使用 icc-color-profile,有时它被应用,有时没有。我注意到颜色的轻微变化。
    • 当我在 Gnome 设置中应用缩放时,我注意到 nvidia-settings 中的 ViewPortIn 更改为 5120x2880,即使我有 3840x2160。这与 Gnome 中如何进行 DPI 缩放有关(如果我错了,请纠正我)。有趣的是,如果我将 ViewPortIn 更改为 3840x2160(等于缩放 100%),Flameshot 又可以工作了。
    • 夜间模式不起作用,一旦它被激活,它就会通过启动文件管理器被禁用,或者它是由于其他随机原因而发生的。

    但是,考虑到所有这些问题,我想将所有内容设置回默认值并重新开始。

    • 我删除了10-nvidia.conf除了最初的所有内容Section "OutputClass"
    • 我执行sudo nvidia-settings导航到“X 服务器显示配置”,选择“配置”并选择“禁用”。我确认了对话并选择尽可能多地应用。之后我做了同样的事情nvidia-settings(在关闭 NVIDIA 设置后没有 root 执行),以确保安全。
    • 回到 Gnome 设置中,我选择了 100 % 的缩放并执行gsettings reset org.gnome.mutter experimental-features以禁用小数缩放。

    重启和几个谷歌请求之后,我想要一个可以避免 Gnome 的缩放并在 NVIDIA 驱动程序中执行所有 DPI 内容的设置。


    设置 10-nvidia.conf:
    我通过打开nvidia-settings->“X 服务器显示配置”->“保存到 X 配置文件”->“显示预览...”并复制所有这些内容来了解​​该文件的基础知识。
    我将sudo gedit /usr/share/X11/xorg.conf.d/10-nvidia.conf“显示预览...”的部分粘贴到现有内容中。不要更换。

    然后我添加/编辑了以下内容(不要复制和粘贴我的文件:):

    • 要真正修复撕裂,这就是神奇的[reference]:
      Option "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On}"
    • 然后我想设置 DPI 缩放:
      Option "DPI" "161 x 158"
      我认为如果我设置正确,我会通过这样做获得正确的 DPI 缩放:
      • 很可能xdpyinfo | grep -B2 resolution会输出resolution: 96x96 dots per inch,但这实际上不是正确的 DPI。通过whtyger 的帖子,我计算了我的 DPI:
        randr | grep -w connected DP-4 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 621mm x 341mm
      • 计算:
        x = 62,1 cm
        y = 34,1 cm

        x = 62,1 cm / 2,54 = 24,4488 尺寸(英寸
        ) y = 34,1 cm / 2,54 = 13,4252 尺寸(英寸)

        x = 3860 像素/24,4 英寸 = 158,1972 DPI
        y = 2160 像素/13,4 英寸 = 161,1940 DPI
      • 不幸的是,要么我忘记了某些东西,要么我应用适当 DPI 缩放的方式不起作用。但是我仍然不得不把我的眼睛捏在一起(小字体)。
      • 我执行xrandr --dpi 144将 DPI 缩放设置为 144%。电脑在命令后没有反应。Strg + Alt + F1 将我带到登录屏幕,我能够在获得 144 DPI 的地方再次登录。然而,它并没有改变 UI 元素的比例因子。
      • 我仍然不想使用 GNOME 缩放,所以我使用GNOME Tweak Tool来增加字体缩放。通过公式 desired_DPI / 96,我得到了 1.50 的缩放因子(144 DPI / 96)。大多数桌面和应用程序元素现在都是可读的,我避免在显示设备下使用 GNOME 缩放模式。
      • 我添加Option "Composite" "Enable"并希望获得更好的性能而不会撕裂。魔术修复到位后,我没有注意到任何更好的性能,因为撕裂已经修复ForceCompositionPipeline
      • 我导航到sudo nvidia-settings“OpenGL设置”并禁用“同步到VBlank”并激活“允许翻转”。


    最后的想法:

    整体感觉好多了,撕逼死了。但是我仍然无法相信 60 Hz 的速度会这么慢。所以当我疯狂地摇晃窗户时,我仍然看到很多窗户的重影。我可以再次使用烈焰射击!如果我使用夜间模式并启动 nvidia-settings,则夜间模式会因干扰该模式而结束。幸运的是,Windows 也在打同样的仗。
    我希望我没有写太多,并且我可以帮助他或他的问题。我期待着反馈。


    参考:
    如何在 Ubuntu 19.04 中启用分数缩放
    如何在 Linux 中处理 Hi-Dpi 屏幕
    如何查找和更改屏幕 DPI?
    GNOME Tweak Tool
    HiDPI
    Nvidia 专有驱动程序 DPI 设置
    Xorg
    屏幕撕裂与更新的 nVidia GPU


    10-nvidia.conf - 不要复制/粘贴:

    Section "OutputClass"
        Identifier "nvidia"
        MatchDriver "nvidia-drm"
        Driver "nvidia"
        Option "AllowEmptyInitialConfiguration"
        ModulePath "/usr/lib/x86_64-linux-gnu/nvidia-418/xorg"
    EndSection
    
    Section "Module"
        Load           "dbe"
        Load           "extmod"
        Load           "type1"
        Load           "freetype"
        Load           "glx"
    EndSection
    
    Section "Monitor"
        # HorizSync source: edid, VertRefresh source: edid
        Identifier     "Monitor0"
        VendorName     "Unknown"
        ModelName      "Ancor Communications Inc ASUS PB287Q"
        HorizSync       24.0 - 160.0
        VertRefresh     30.0 - 80.0
        Option         "DPMS"
        Option         "DPI" "161 x 158"
    EndSection
    
    Section "Device"
        Identifier     "Device0"
        Driver         "nvidia"
        VendorName     "NVIDIA Corporation"
        BoardName      "GeForce GTX 1080 Ti"
        Option         "UseEdidDpi" "False"
        Option         "DPI" "161 x 158"
        EndSection
    
    Section "Screen"
        Identifier     "Screen0"
        Device         "Device0"
        Monitor        "Monitor0"
        DefaultDepth    24
        Option         "Stereo" "0"
        Option         "nvidiaXineramaInfoOrder" "DFP-7"
        Option         "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On}"
        Option         "SLI" "Off"
        Option         "MultiGPU" "Off"
        Option         "BaseMosaic" "off"
        SubSection     "Display"
            Depth       24
            Modes       "3840x2160"
        EndSubSection
    EndSection
    
    Section "Extensions"
        Option         "Composite" "Enable"
    EndSection
    
    • 3

相关问题

  • 类似于 Eyefinity 的东西?

  • 如何重置我的键盘布局?

  • 帮助让 Flash 播放器在第二个屏幕上工作?

  • 在哪里可以找到 Brother HL-2170W 64 位打印机驱动程序?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve