《泛娱乐行业技术服务白皮书》——三、泛娱乐典型业务架构与场景——3.2 游戏类泛娱乐——3.2.2 游戏泛娱乐技术服务(9) https://developer.aliyun.com/article/1230984?groupCode=supportservice
3.2.2.3.5 验证思路
•黑屏与TDR验证
了解完基础概念,这一点也是本次解决黑屏最重要的一点,如图2所示,驱动的 兼容性是否有问题,这一点其实在专项介入早期就已经发现客户在使用解码、编码接 口上用了较为老旧的NVFBC接口(NVFBC接口是NVIDIA提供的相关渲染接口, 是厂 商提供的特定功能接口,具体可点击链接查看,偏视频渲染领域),而在最新的Win - dows Server 2012+开始NV明确表示了不再支持。客户使用FBC接口方式也从客户的 业务日志中有所发现
其次,在客户反馈的黑屏时间段里存在大量的TDR:
事件管理器中类型为Warning的Display事件,EventID为4101,所以接下来的排 查重点就聚焦在:
TDR与黑屏是否有直接关系
DDA与FBC是否为黑屏的突破点
TDR Delay验证
验证第一个问题并不困难,通过对比没有黑屏的机器可以明确的看到没有TDR信 息,同时客户自身采集的逻辑也包含了TDR数量的检测,在TDR数量少的情况下同等 黑屏次数也很少,所以第一个问题基本得到验证,在第一part的图里也可以看到关于 云游戏底层的IaaS逻辑是这样的:
当出现TDR时,意味着两种可能性,预期内的可能性是当时游戏负载较高,导致 显卡响应不过来了,在3A类型的游戏大作中渲染超2s的情况不算多见,但是也会 有,量级一般可控,量级大到导致黑屏的确实少见,而另外一种预期外的可能就是在 运行时遇到了驱动级或者不可用的函数导致等待不到GPU控制器的回复产生的超 时,为了验证这个理论,我们与GPU研发讨论后,进行了TDR Delay验证,即把TDR
的阈值从2s调整为10s,可以参考以下指引:
•切换DDA验证
调整TDRDelay后发现黑屏次数确实有两位数的下降,但总量依旧是在千级别, 证明了客户业务确实存在TDR预期内的问题,但是不是黑屏的主因,很可能是因为预 期外问题导致这些预期内的问题被放大,那么做了这个实验后就基本确认TDR问题聚 焦在预期外问题,预期外问题刚好与排查重点2有重合,因为DDA与FBC模式且好是 驱动层面中Rendering阶段核心的接口因素,基于此,我们开始了第二轮实验:对接
口进行切换,从FBC切换成DDA观察,非常有幸的是,本来我们都准备拉齐研发资 源帮客户做好切换的相关测试与验证,没想到客户集成了切换模式,切换成DDA成 本很低,所以仅用时1天就完成了50%量从FBC切换DDA的操作,下图是完成后观察 两天的结果,可以看到相对于FBC无论是次数还是发生频率都大幅下降了,基本上证 明FBC为核心问题,而TDR为判断该问题是否解决的标志:
《泛娱乐行业技术服务白皮书》——三、泛娱乐典型业务架构与场景——3.2 游戏类泛娱乐——3.2.2 游戏泛娱乐技术服务(11) https://developer.aliyun.com/article/1230982?groupCode=supportservice