打游戏问题
Tofloor
poster avatar
Hello
deepin
2020-07-08 04:41
Author
我打cs时候按压shift和ctirl键会呼出dock希望能够改进下

某些游戏运行会强制关闭dde的特效模式不知道为啥,某些时候被关闭了很难再次打开。如果能解决就好了。我不希望某些全屏游戏运行关闭我的特效
Reply Favorite View the author
All Replies
avatar
Hello
deepin
2020-07-08 04:44
#1
@jinge 帮忙反馈一下
Reply View the author
avatar
Hello
deepin
2020-07-08 04:45
#2
https://bbs.deepin.org/user/48640 这次应该能够@成功了
Reply View the author
avatar
masz
deepin
2020-07-09 17:31
#3
这个不止CS,所有游戏都这个鸟样,即便选择 一直隐藏或者智能隐藏,也会时不时弹出来。几次就是这样死于非命
Reply View the author
avatar
神末shenmo
deepin
Spark-App
Q&A Team
2020-07-09 19:24
#4
卸载下dock玩游戏吧,至于特效,可以打游戏的时候用ukwm顶一下
Reply View the author
avatar
tn123
deepin
2020-07-09 20:01
#5
还能玩游戏!?刚知道,在哪儿下载,好安装不?
Reply View the author
avatar
mcaoser
deepin
2020-07-09 21:07
#6
shift加ctrl是不是唤出了输入法?如果是的话,改一下输入法的切换方式不知行不行,因为我很少玩游戏
Reply View the author
avatar
SamLukeYes
deepin
2020-07-09 21:42
#7
特效模式打不开会不会是窗管的问题?你确定是在用kwin吗?
Reply View the author
avatar
舞天逸尘
deepin
2020-07-10 08:14
#8
我之前就反映了,没人鸟。玩游戏基本要窗口化玩,全屏按shift,任务栏就出来了,只能重新缩小再进。而15.11就没有这个问题,快捷键真是个问题。steam游戏只要打开,窗口特效自动没有了。
Reply View the author
avatar
libowu03
deepin
2020-07-10 17:14
#9
https://bbs.deepin.org/post/196852
还能玩游戏!?刚知道,在哪儿下载,好安装不?

steam上有许多linux支持的游戏,cs go就是支持linux的,不过大部分需要购买.
Reply View the author
avatar
wvb
deepin
2020-07-10 18:08
#10
https://bbs.deepin.org/post/196852
steam上有许多linux支持的游戏,cs go就是支持linux的,不过大部分需要购买.

CS-go已经免费了,完美在运营
Reply View the author
avatar
hu60
deepin
2020-07-14 14:05
#11
本帖最后由 hu60 于 2020-7-14 06:17 编辑

为了能正常打游戏,我都已经被逼写出这样的脚本了:
  1. cat /usr/local/bin/nodock
Copy the Code

  1. #!/bin/sh
  2. sudo mv /usr/bin/dde-dock /usr/bin/dde-nodock
  3. killall dde-dock
Copy the Code

  1. cat /usr/local/bin/redock
Copy the Code

  1. #!/bin/sh
  2. sudo mv /usr/bin/dde-nodock /usr/bin/dde-dock
Copy the Code


希望官方早日修复这个问题。

这是我给项目提的反馈:
https://github.com/linuxdeepin/dde-dock/issues/284

以及展现问题的视频:
https://www.bilibili.com/video/BV1yK4y1s7kG/
Reply View the author
avatar
hu60
deepin
2020-07-14 14:18
#12
本帖最后由 hu60 于 2020-7-14 07:58 编辑

至于特效消失,是游戏或者全屏应用程序向窗口管理器(kwin)发送了消息,告诉它“我要全屏运行,请停止桌面合成”(用于实现“窗口特效”的技术称为“桌面合成”)。
但后来游戏退出时,却因为某种原因没有发送“我已结束运行,请恢复桌面合成”,于是窗口管理器就一直启用不了桌面合成(窗口特效)了。

如果不想游戏停止桌面合成,可以在 ~/.config/kwinrc 的 [Compositing] 后面添加如下设置:
  1. WindowsBlockCompositing=false
  2. UnredirectFullscreen=true
Copy the Code

第一行是不让程序禁用桌面合成,第二行是不对全屏窗口进行合成(防止全屏游戏卡顿、撕裂)。
如果没有第二行只有第一行,全屏游戏肯定会有明显的卡顿、撕裂,不如没有第一行时顺滑。

注销重新登录或执行以下命令生效:
  1. killall kwin_x11
Copy the Code

如果启用这些选项后,游戏画面明显的卡顿、撕裂,你可以删除这些选项。

------------------------------------------------------

我经过仔细对比,发现 UnredirectFullscreen=true 选项作用似乎不大,画面还是有撕裂。完全不加这两行时,全屏游戏出现的撕裂还是少的多。

所以不建议修改这些选项了,还是让游戏禁用桌面合成吧。如果游戏退出后窗口特效真的没出现,执行一下 killall kwin_x11 就能回来了。
Reply View the author
avatar
hu60
deepin
2020-07-14 15:51
#13
本帖最后由 hu60 于 2020-7-14 08:35 编辑

找到一些资料,这篇2011年的文章详细解释了为什么 UnredirectFullscreen=true (取消重定向全屏窗口)对游戏没什么用,以及为什么在游戏期间彻底停止桌面合成(窗口特效)是最好的。
是英文的,可以用机器翻译来看。
https://blog.martin-graesslin.com/blog/2011/04/turning-compositing-off-in-the-right-way/

全文机器翻译摘录,简单校对:

2011年4月3日由马丁FLÖSER

以正确的方式关闭合成

我有一个梦想:始终合成桌面的梦想。有一些使用合​​成的用例,一些没有使用合成的用例。对于用户而言,很难知道他当前需要什么,并且在决定自己时会做得很糟糕。一个很好的例子是关闭合成以节省更多的电池时间。我个人怀疑关闭合成功能不会节省电池,反而会导致更多的电量消耗。您可能会问,这怎么可能?禁用合成后,Plasma将开始更改所有SVG的背景,在最坏的情况下会导致所有SVG的重新渲染。这是昂贵的,并且将比使用合成技术消耗更多的电池。

另一个示例是全屏应用程序。当前,KWin支持取消重定向全屏窗口。这意味着屏幕不再合成,但是合成所需的资源,即OpenGL上下文和特效系统仍在运行。对于像Web浏览器或Office套件这样的应用程序,它是完全没有用的,而对于像游戏这样的OpenGL应用程序,仅取消重定向就可能不够用。如果您的显卡驱动不支持同时启用两个OpenGL上下文,则可能会看到伪影,或者KWin会崩溃。对于游戏,只有一种适当的解决方案:关闭合成。观看Full-HD视频的情况也是如此:通常,图形卡的功能不足以同时进行合成和GPU加速解码。

现在,KWin支持此解决方案:暂停合成。只需按Alt + Shift + F12(或对于更多技术用户:使用脚本通过DBus更改状态)即可暂停合成。这将移除OpenGL上下文,关闭特效系统,然后您将回到无特效的旧式X桌面。当然,我们不能要求用户知道知道他们什么时候应该暂停合成。所以,我们需要一个更好的系统。

这就是Thomas最近一直在研究的内容。首先,他消除了禁用特效和暂停特效之间的区别。如果禁用特效,它将仅挂起它们,并且重新启动后特效系统也将处于挂起状态,这应该会让用户理解起来更容易。Thomas正在进行的第二部分工作是允许应用程序阻止合成。太棒了 假设我们要在VLC中观看视频。切换到全屏模式后,VLC会立即设置X属性,以告诉KWin“现在请不要合成”。KWin将暂停合成并保持状态,直到没有窗口阻止合成为止。所以,全屏后的VLC就可以独占GPU了。您可能会问,这与“取消重定向全屏窗口”有什么区别?想象在全屏播放时,其他窗口突然弹出一个通知。如果使用“取消重定向全屏窗口”,通知显示时合成将再次开始,导致丑陋的闪烁并从VLC中夺走重要资源。使用新解决方案时,通知不会导致重新开始合成,VLC仍然一切正常。另一方面,Web浏览器不会阻止合成,因为这不是用户想要的。在这里,我们需要合成系统的全部优势,因为它不是一项和观看视频或播放3D射击游戏一样的任务。我真的希望视频播放器、游戏和Wine能够使用我们的新产品,并且我们还将推荐它作为NETWM规范的补充。

虽然最后一块可能会变得困难。尽管Plasma完全支持无需合成,但与本月发布的两个新桌面Shell相比,世界看起来有所不同。以我的拙见,从根本上来说,两者都存在缺陷,即无法合成。我对GNOME Shell的最大担忧是从一开始就需要OpenGL(我与GCDS的Owen Taylor谈到了这一部分)。除了GNOME Panel,没有任何后备。至少因为您要观看全高清视频,至少切换我的桌面Shell对我来说是不可接受的。现在,Canonical在Unity中犯了同样的基本错误。它还需要一个OpenGL合成器(在这种情况下为Compiz)。尽管如今的Compiz支持非OpenGL,但我不知道它的性能以及Unity是否支持它。目前的后备还是GNOME Panel,将来也许是Unity2D?另一方面,Plasma仅需要切换SVG的呈现(这是样式的一部分),并且将失去某些功能,例如任务栏工具提示中的缩略图,Present Windows特效或Desktop Grid,系统的基本工作保持不变。又看到了实现正确的抽象层的一个好处。

现在有了Thomas的工作,我相信我们将能够在4.8中删除打开/关闭合成的UI,只是因为不再需要它了。具体的应用程序将负责为用户提供正确的用户体验。当需要合成时,它打开;当合成不好时,它关闭。用户将不再需要担心状态,可以删除诸如“取消重定向全屏窗口”之类的丑陋补丁。我期待着这种改进的桌面合成方式

所以我们现在有了这种改进的桌面合成方式。

不过他们没料到,有时候程序会意外退出,或者因为什么奇怪的原因,没有机会恢复被自己暂停的合成,于是除非重启,否则合成就再也开不了了,“始终合成桌面的梦想”也因此完全无法实现。

但究其原因,X11窗口合成的中间步骤太多,性能太差,不支持“独占全屏”不支持“直接渲染”,才是我们频繁需要“以正确的方式关闭合成”的根本原因。

也许只有彻底切换成与Windows桌面工作原理更类似的Wayland,才能彻底解决Linux窗口合成的种种可靠性问题。
Reply View the author
avatar
jingle
deepin
2020-07-14 17:01
#14
https://bbs.deepin.org/post/196852
为了能正常打游戏,我都已经被逼写出这样的脚本了:

谢谢反馈,现在 github issues  有专门负责处理
Reply View the author