微软在今年E3期间除了有两场游戏发布会之外,
其实还有一系列针对游戏开发的Xfest影片,分享一些游戏技术与开发技巧,
有兴趣的可以在以下网址下收看
Xfest 2022
https://www.youtube.com/watch?v=4aBEi4SbPlQ&list=
PLRs2lXTYCDQ3uPs2PBJoc69ET6LrM_EK5
https://tinyurl.com/2bw2kp4w
其中,微软发表一项今年开始导入Xbox Cloud Gaming云端游戏串流技术-Direct Capture
https://www.youtube.com/watch?v=-WIXftoHCl4
影片有中文字幕,虽然是机翻,但大致可以看懂。
Xbox云端游戏串流,从游戏中的一帧游戏画面从渲染完成到被编码成串流画面,
以往是要完整走完硬件HDMI显示的流程
https://i.imgur.com/m3yP5MT.jpg
present queue (0-66ms) -> 显示 -> 显示回写 (8.3ms)
根据游戏不同,游戏画面在显示前会有一个伫列,有些游戏有双重甚至三重缓冲,
会占用0到66ms不等的时间。而在萤幕显示之后,还有一个固定8.3ms的显示回写,
才能进入串流编码,因此走完整个HDMI显示流程会有8.3至74.3ms不等的延迟,
但2022年,微软推出新技术Direct Capture,游戏画面被编码成串流画面前,
可以直接绕过整个HDMI流程
https://i.imgur.com/jiM2cKn.jpg
https://i.imgur.com/OyOfrvR.jpg
Direct Capture处理时间为2-12ms,可以节省至多72.3ms的延迟,
绕过硬件显示流程,能避免垂直同步、双重/三重缓冲所造成的等待时间,
免了那台根本不存在云端资料中心的显示器所需的缩放处理时间。
而Direct Capture可以自动应用在许多云端游戏上,
但目前技术还有一些限制,某些游戏需要开发者作点变更才能使用
https://i.imgur.com/ewirHY0.png
如目前只支援到1440P的最高分辨率,不支援动态分辨率、HDR等,
但这些限制会随技术进步逐渐改进。
另外微软也堆如何降低游戏延迟,对开发者作出一些建议
目前Xbox云端游戏,PC支援的最高分辨率为1080P,移动设备则是720P,
所以游戏原生分辨率超过上述分辨率,在串流中都需要缩放处理,增加处理时间,
若想强化云端游戏体验,微软建议可以降低分辨率,除了免去缩放处理时间,
也能在运算资源投在强化游戏画面