开源 ATI R600/700 3D 驱动已接近可用状态
ATI 的开源驱动虽然一直在紧锣密鼓的开发,然而性能一直不佳,尤其是对高端显卡,甚至无法开启 3D 特效,这样很多有心支持开源驱动的 A 卡用户望而却步。
今天从 AMD 的 John Bridgman传出消息,Linux 版开源 R600/700 驱动即将可用,虽然很慢,但确实如此。在发行文档,程序员指南和示例代码发布几个月后,他们的 Mesa 驱动终于开始做有用的事,而不是单纯的渲染三角形。
Radeon 驱动重写派生出的 ATI R600/700 3D 驱动现在在 Mesa 的一个分支中。而也不在 Mainline 中的 DRM 代码也被所有级别的 3D 支持所需。Bridgman 在他的 blog 中提到,他们的测试样例中有大约 25% 已经通过,不过其他的大多数样例不是崩溃就是渲染错误。
这个 3D 驱动现在对 ATI Radeon HD 2000/3000/4000系列显卡的用户还不是特别有用,毕竟它还没有达到 glxgears milestone(注:大概是硬件加速 Glxgears 的意思)。不过,夏末的时候它有可能达到应用的地步了。
大致理清了 Linux 应用、驱动、设备的关系
今天嵌入式实验课,研究了一下老师写的 TC 驱动程序(就是利用定时计数器让 LED 狂闪),加上以前看的一点入门的设备驱动知识,大致理清了 Linux 应用、驱动、设备三者的关系,不知道想得对不对。
首先,有 Udev 的话,插入设备时系统会自动在 /dev 目录下生成设备文件,我们的板子上好像没有 Udev,所以自己 mknod,也好指定主设备号。
然后,写驱动,用 register_chrdev 函数注册一个设备驱动,传入的三个参数分别为 主设备号、设备名、文件操作。文件操作是一个之前定义的 file_operations 结构体,用来保存各种设备操作的函数的指针,其中重要的一个设备操作是 ioctl,其中传入的操作类型 cmd 是个 int 类型的参数,也就是说,对于设备的操作类型可以有 2 的 32 次方种……
最后,应用程序首先打开 /dev 目录下的设备文件,然后用 ioctl 函数调用驱动中的文件操作,传入的三个参数分别为:设备文件的文件标识符,操作类型,传入的参数。
这样,应用程序就可以通过操作设备文件来操作设备了!
呵呵,不知道理解得对不对,有什么谬误欢迎指点。
