VNC 的垂直分辨率乘以 12

VNC 的垂直分辨率乘以 12

我运行 Ubuntu 11.10,配有 2 个显示器,分辨率为 3840x1080。这是通过 NVIDIA 的 TwinView 模式实现的。当我运行以下命令时:

x11vnc -safer -localhost  -once -display :0 -ncache 10 -ncache_cr -geometry 3840x1080

并使用 TightVNC 从 Windows 机器连接,我的连接列出的分辨率为 3840x12960。如果您不想计算的话,那就是 12 x 1080。VNC 连接的顶部看起来正常,但我可以向下滚动很多,并且我可以看到以前窗口的影子。

知道为什么或如何阻止这种情况吗?

答案1

我最终通过禁用客户端缓存解决了这个问题,在启动服务器时使用 -noncache 选项或取消选中 gui 中的 ncache 选项。

答案在这里找到:http://ubuntuforums.org/showthread.php?t=1337060

答案2

您的 VNC 查看器似乎不支持客户端缓存。

因此,您要么使用支持它的 VNC 查看器,要么需要消除-ncache(实验性的)选项x11vnc。如果默认情况下启用该选项,请尝试通过指定-noncache选项将其禁用。

基本上,当启用它时,它会激活客户端缓存方案,该方案将像素数据存储在 VNC 查看器端的屏幕外,以便更快地检索,并且它应该适用于任何 VNC 查看器。但是,它似乎无法在某些客户端上正常工作。


按照Ubuntu 论坛主题,这就是-ncache工作原理。

它使桌面高度比正常高度高 10 倍,并使用额外的帧缓冲区来缓存窗口及其保存的内容。

如果您无法让 KRDC 不显示该区域(例如通过调整其窗口大小),那么您就无法将 KRDC 与 一起使用x11vnc -ncache

因此,目前唯一的-ncache“支持”是查看器能够拥有滚动条并能够禁用自动滚动。或者在 unix/macosx 上使用ssvnc

看:x11vnc 可以进行像素数据的客户端缓存吗?了解更多信息。

中的 n-ncache n是用于缓存的基本帧缓冲区大小的增加因子。它是一个偶数,应该相当大,6-12,以实现良好的响应。这通常需要在客户端和服务器端分别增加约 50-100MB 的 RAM。例如,当 n=6 时,1280x1024 显示器将使用 1280x7168 的帧缓冲区:第 1024 行以下的所有内容都是像素缓冲区缓存。

相关内容