我在linux内核源代码中浏览drm radeon驱动程序。在我的显示器实际工作的设置/模式上,我有一些理解上的困难。 (从内核消息我可以告诉我使用什么微码,我的屏幕正在处理什么连接器和编码器。但是这并没有给我一个暗示图形内容来自哪里以及它存储在哪里或者我不能以正确的方式理解它。)
首先 - 环形缓冲区是否能够让我的gfx卡正常运行,或者环形缓冲区是否建议建立一些3D图形功能?
环形缓冲区是唯一的用户模式设置实用程序,还是环形缓冲区在内核模式设置中是否有效(在后台或目标中)?环形缓冲区在启动期间被初始化(我可以看到内核消息中的环地址) - 但实际使用它的是什么应用程序,我无法分辨。它是显示管理器,例如X11(如果是 - 显示管理器使用环形缓冲区 - 正常显示或Xlib中的某些奇特的3D功能)?
总的来说,显示管理器(比如X11)是否可以在用户模式设置中工作,而控制台帧缓冲区的工作速度是以公里为单位?在kms中使用radeon驱动程序是否存在图形性能限制?
谢谢!
答案 0 :(得分:0)
关于响铃,这些基本上是处理图形卡状态变化的优化。基本上,显卡所做的一切都是由一系列寄存器(如程序中的变量)控制的。这些寄存器可以由内核直接写入,但这非常慢。所以显卡暴露了戒指。不同的环具有不同的目的,因此可以用于图形,而另一个用于视频解码。内核管理环本身,应用程序提供一系列命令放入环中。图形卡还允许您将命令放在另一个缓冲区中,然后将环指向那里以执行这些命令,然后再返回到环。
关于KMS,如果您使用KMS,则内核直接管理图形卡本身。 X和任何其他用户空间应用程序都不适用您看到的模式。相反,X向内核驱动程序发送请求以调整模式,内核实现更改。假设您的系统安全设置,在内核中安装驱动程序应该没有任何开销。