使用 Nvidia 驱动程序以 1920x1080 分辨率显示像素

使用 Nvidia 驱动程序以 1920x1080 分辨率显示像素

我在 Debian 10 机器上安装了 Geforce GTX 1650 Super 显卡,Nvidia 驱动程序版本为 460.39。我使用了 Nvidia 网站上的安装程序,因为这个驱动程序有 CUDA 11,我需要它来运行 DaVinci Resolve 视频编辑软件。据我所知,Debian 反向移植没有为 Debian 10 提供这个。

Geforce 显卡通过 HDMI 线连接到三星 T27A550 电视,分辨率为 1920x1080。显卡在 1680x1050 分辨率下工作正常,但在 1920x1080 分辨率下屏幕出现像素化。

在我安装 nvidia 驱动程序之前,如果我没记错的话,我使用的分辨率是 1856x1392。自从安装驱动程序以来,此分辨率不再作为显示器控制面板或 nvidia-settings 中的选项出现。我尝试使用以下命令添加它:

xrandr --newmode “1856x1392” 218.06 1856 1992 2192 2528 1392 1393 1396 1440 -HSync +Vsync

进而:

xrandr --addmode HDMI-0 1856x1392

但我收到以下错误:

X Error of failed request: BadMatch (invalid parameter attributes) ....

不过我读到过 Nvidia 驱动程序不允许以这种方式使用 xrandr。

还尝试在 nvidia-settings 的高级显示配置中将 ViewPortIn、ViewPortOut 和 Panning 设置为 1856x1392。ViewPortIn 和 Panning 已设置,但 ViewPortOut 未设置。它接受 1680x1050+0+0 的 ViewPortOut。这可修复应用时的像素化问题,但屏幕会失真。

我还尝试了 /etc/X11/xorg.conf 的各种方法,尽管我不确定该文件是否正在被使用。

我尝试了三星的所有设置(电视菜单->屏幕调整->图片大小)。例如 16:9、4:3、适合屏幕等,但这对 1920x1080 的像素化没有帮助。我还检查了第二台带有 HDMI 输入的电视,问题是一样的。两台电视都没有任何过扫描设置,尽管第二台电视确实有“无缩放”设置。

理想情况下,我希望使用高于 1680×1050 的分辨率,最高可达 1920x1080。

有人可以帮忙吗?

答案1

在遵循 Mokubai 的谷歌建议时,我发现了一个意想不到的解决方案。它涉及发现 xrandr 给出的“BadMatch”错误的补救措施,通过覆盖 EDID 来完成。请参阅:https://wiki.archlinux.org/index.php/NVIDIA/Troubleshooting#xrandr_BadMatch

在对 /etc/X11/xorg.conf 进行更改(我之前使用 nvidia-settings 重新创建)并重新启动后,我使用以下命令测试了 xrandr:

xrandr --newmode “1920x1080_new” 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync

xrandr --addmode HDMI-0 “1920x1080_new” 

xrandr 的使用可能与解决方案无关,但当我再次打开 nvidia-settings 时,我发现存在各种新分辨率。1920x1080 仍然不起作用,但 1920x1200 的新条目起作用。所以问题解决了。奇怪的是,以前可以工作的 1680x1050 不再起作用,然而 1680x900(新)却起作用,而且由于纵横比的变化,似乎没有任何扭曲。

此外,完成所有这些操作后,“欠扫描”参数现在出现在 nvidia-settings 中,尽管不允许使用 1920x1080。

相关内容