热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

NvidiaLinux驱动的低效2D表现

NvidiaLinux驱动的低效2D表现--Linux通用技术-Linux技术与应用信息,下面是详情阅读。
之前,zx 长期的抱怨过 GeForce 6600GT 和 GeForce 8600GTS 糟糕的 Fx 及 Compiz 性能表现,这件事 werner 和 whans 都比较清楚,而且万恶的 whans 同学之前还使用过令 zx 一度眼红的 Intel 板载显卡(什么毛病)。最终发现问题出现在 Nvidia 显卡驱动的 2D 部分。这是怎么一会事呢,让 zx 来告诉你。





Linux 下典型的窗口管理器(window manager)有 Gnome 和 KDE,这两者 wm 虽然外观风格差异甚大,各自使用的绘图函数却是建立再共同的基础 X11 上的。2000 年,XFree86 上出现了 xrender 扩展,之后高质量的抗锯齿和颜色混合绘图函数渐渐替代了传统 X11 绘图函数(现在不知道 GDI 的绘图函数水准怎么样了,反正 2k 时代是没有抗锯齿绘图函数的(求证,召唤tc))。而 Nvidia 现在的驱动对这些新的带有 alpha 混合的 xrender api 的支持可以说是很糟糕的,这就导致了在处理如下工作:带有次像素平滑的字体渲染、面积较大的逐像素通道透明位图绘制时,速度非常的慢——而这正好是 Fx 和 Compiz 的典型任务。

这个问题随着 wm 技术的发展而变的越来越明显和不能忍受:譬如 zx 酷爱使用的 Gvim,在使用了稍微复杂一点的语法高亮以后,移动光标这种平淡到让人睡着的操作,都充满了跳跃感;这里就不提 Fx 里 YY 同学的毒熊空间的卷动速度了。

[好吧,不要老抱怨,有点建设性吧]
KDE 4 推出后,N 系显卡惊人的性能问题终于完全表现出来(托 plasma 的福),就连 Intel 都能在评测中数倍领先于这个 GPU 的发明者;独立显卡(2d+3d)奠基者;3dfx 衣钵的接替者(就不用说 ATI 了)。Nvidia 继续忽视下去就太不像样了,终于开始着手处理这个问题,现在已经有了一些比较可行的处理方法。

1、使用新的 Nvidia 驱动(要编译)177.67

2、修改 xorg.conf
Option "PixmapCacheSize" "1000000"
Option "AllowSHMPixmaps" "0"

3、修改启动配置文件
# nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1

第三条 zx 曾今介绍过,对 Fx 和 Compiz 确实有一定的效果,这里的第二条也是非常有道理的。

Nvidia,你还是把 linux 驱动开源吧。就你这驱动的水平,和 5 年前的情况已经不同了——那时你领先,现则变成了落后,还是远远落后。
推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文详细介绍了Vim编辑器中的三种模式(命令模式、末行模式和编辑模式)以及它们之间的操作区别和切换方法。Vim编辑器凭借其多种命令快捷键和高效率的操作方式,得到了广大厂商和用户的认可。对于想要高效操作文本的用户来说,了解这些模式的使用方法是必不可少的。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 进入配置文件目录:[rootlinuxidcresin-4.0.]#cdusrlocalresinconf查看都有哪些配置文件:[rootlinuxid ... [详细]
  • 1、打开etcsysconfiggrub,   #vimetcsysconfiggrub   内容如下: ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在MacOS系统上安装MySQL的步骤,并详细说明了如何设置MySQL服务的开机启动和如何修改MySQL的密码。通过下载MySQL的macos版本并按照提示一步一步安装,在系统偏好设置中可以找到MySQL的图标进行设置。同时,还介绍了通过终端命令来修改MySQL的密码的具体操作步骤。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • Annotation的大材小用
    为什么80%的码农都做不了架构师?最近在开发一些通用的excel数据导入的功能,由于涉及到导入的模块很多,所以开发了一个比较通用的e ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • (九)Docker常用安装
    一、总体步骤1、搜索镜像2、拉取镜像3、查看镜像4、启动镜像5、停止镜像6、移除镜像二、安装tomcat1、dockerhub上面查找tomcat镜像 dockersearchto ... [详细]
author-avatar
完颜777_870
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有