2014-05-14 51 views
1

我正在通过我的Linux内核源drm radeon驱动程序。在那里我有一些理解上的困难,在我的显示器实际工作的设置/模式上。 (我从内核消息中可以知道使用了什么微代码,我的屏幕正在处理什么连接器和编码器,但是这并不能提示图形内容来自哪里以及它的存储位置,理解它正确的方式)。Radeon环缓冲区的使用和modesetting

首先 - 环缓冲区是一个潜在的必要性总体上让我的gfx卡工作,或者是环形缓冲区建议建立一些3D图形功能?

在内核模式设置中,环形缓冲区是唯一的用户模式设置工具还是环形缓冲区可以工作(在后台或目标中)?环形缓冲区在启动过程中被初始化(我可以在内核消息中看到环地址) - 但是实际使用它的应用程序,我无法说清楚。它是显示管理器,例如X11(如果是的话 - 显示管理器使用环形缓冲区是什么 - 正常显示或在Xlib中某些奇特的3D功能)?

总的来说,显示管理器(比如说X11)是否在用户模式设置下工作,控制台帧缓冲区是以千位为单位工作的?是否有以kms为单位使用radeon驱动程序的图形性能限制?

谢谢!

回答

0

关于环,这些基本上是一个优化来处理您的图形卡的状态变化。基本上,显卡所做的一切都是由一系列寄存器(如程序中的变量)控制的。这些寄存器可以直接由内核写入,但是这很慢。所以图形卡暴露出来。不同的环有不同的目的,所以一个可以用于图形,另一个用于视频解码。内核管理环本身,应用程序提供一系列命令来放入环中。显卡也可以让你把命令放在另一个缓冲区,然后指向那里的环执行这些命令,然后再回到环。

关于KMS,如果您使用KMS,则内核直接管理图形卡本身。 X或任何其他用户空间应用程序都不会应用您所看到的模式。相反,X向内核驱动程序发送请求以调整模式,并且内核执行更改。假设您的系统安全设置,在内核中安装驱动程序应该没有任何开销。