首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libkwinnvidiahack4包是做什么的?

libkwinnvidiahack4包是做什么的?
EN

Ask Ubuntu用户
提问于 2013-08-14 19:40:37
回答 1查看 322关注 0票数 4

我刚刚偶然发现了包裹libkwinnvidiahack4

(还有libkwinactivenvidiahack4

)。根据我的描述,它为KDE窗口管理器和一个Nvidia二进制图形驱动程序提供了一些“黑客”。

此包包含nvidia卡用于KDE窗口管理器的库。此包是KDE工作区模块的一部分。

然而,这种描述缺乏它的实际作用。我使用KDE/Kubuntu,并安装了Nvidia图形驱动程序。安装这些软件包有什么好处?他们干些什么?

我已经安装了libkwinnvidiahack4包(可能是自动安装的),但我不确定它负责什么。

在changelogs (apt-get changelog libkwinnvidiahack4)中运行,给出一个条目(从其中获取的几个片段)的kde-workspace变更日志:

  • 将libkwinnvidiahack4移动到自己的包中
  • 添加包
    • kde-窗口管理器-活动
    • kde-窗口管理器-活动-gles
    • libkwinactiveglutils1
    • libkwinactiveglesutils1
    • libkwinactiveeffects1abi3
    • libkwinactivenvidiahack4

  • 窗口管理器/-gles依赖于libkwinnvidiahack4
  • 不要安装/usr/lib/libkwinnvidiahack.so。没有人应该联系到libkwinnvidiahack。现在kde窗口管理器没有任何可链接的内容,而是依赖于libkdecorations4和libkwineffects1,而不是kde管理器。

这也解释不了为什么要添加这些包以及它们是做什么的。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2013-08-22 22:02:05

在谷歌搜索了一段时间之后,我发现了这个职位

这个文件的唯一目的是按链接顺序比(nvidia的) libGL晚,从而由它之前的动态链接器初始化,允许它很快地设置__GL_YIELD=NOTHING,使libGL能够注意到它。

考虑到这句话来自某位麦格莱斯林,马丁是这一领域的主要维护者,这也是一个可靠的来源。

实际上,看看源代码

代码语言:javascript
复制
apt-get source libkwinnvidiahack4

这实际上是kde工作区模块。

kwin/nvidiahack.cpp是有问题的源模块--它本身就是一个小模块。

由于这个黑客仍然在13.04 -是核心构建的一部分,是的,它仍然需要,它的目的是确保库链接的OpenGL组件的KDE是按照正确的功能顺序。

就模块所做的工作而言,它似乎定义了运行时环境变量__GL_YIELD

来自自由喷头规格

OpenGL屈服行为有几种情况下,NVIDIA OpenGL驱动程序需要等待外部状态更改才能继续。为了避免在这些情况下占用太多的CPU时间,驱动程序有时会产生这样的结果,这样内核就可以在驱动程序等待时调度其他进程来运行。例如,当在命令缓冲区中等待空闲空间时,如果在一定次数的迭代之后空闲空间没有可用,则驱动程序将在继续循环之前屈服。默认情况下,驱动程序调用sched_yield()来执行此操作。但是,如果CPU上有其他的、优先级相同的进程争用时间,则这会导致调用进程被排定一段相对较长的时间。这方面的一个例子是,基于OpenGL的复合管理器正在移动和重新绘制窗口,而X服务器试图在窗口移动时更新窗口,这两者都是CPU密集型操作。您可以使用__GL_YIELD环境变量来解决这些调度问题。这个变量允许用户指定驱动程序想要输出时应该做什么。

因此,黑客永远不要等待,并且总是在OpenGL复合表面上进行绘制--很可能是为了阻止图形工件的出现。

票数 5
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/332668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档