当前位置:首页 > 电子产品 > 正文

Valve讲述《L4D2》在Linux平台为什么更快

Valve公司不仅是第一个进军Linux平台的主流游戏开发商,他们在Linux平台的努力也没有白费,测试显示《Left4Dead2》游戏在Linux平台下要比Windows平台还要快,日前Valve公司详细讲述了他们是如何在Linux平台优化游戏性能的。

Valve公司技术人员RichGeldreich在SIGGRAPH2012大会上发表了“Linux平台的《Left4Dead2》:OpenGL模式下如何从6帧到300帧”的演讲,公布了他们在Linux平台下优化Source引擎的原理。他称使用GTX680显卡上的Source引擎在OpenGLAPI的性能平均比D3D9API要高11%,如果进一步减少D3D到OpenGL的间接损失,那么游戏性能至少还能再提高5%。

Valve讲述《L4D2》在Linux平台为什么更快  第1张

Source引擎在Linux平台的OpenGLAPI下是通过一个无延迟、本地优化的抽象层将D3D调用转换成OpenGL,但是这与Linux的Wine软件转换D3D调用为OpenGL调用的方式不同,Source引擎将D3D9调用转换成OpenGL指令的过程是动态的。

目前的进程是支持ShaderModel2.0b标准,SM3.0即将得以支持,Vavle的目标是把D3D与OpenGL之间的映射达到接近1:1的水平,也就是基本没有间接损失。

D3D与OpenGL的转换过程中,调用OpenGL的CPU周期与转换时的间接损失比损失大约是50/50,对于单线程图形驱动来说,80%的是GL调用,20%是间接损失。但是总的来说,即便多了额外的抽象层,OpenGL依然比D3D要快。

此外,NVIDIA的Linux驱动团队在提高驱动程序的多线程能力上也下了很多功夫。

Valve正和主要的显卡供应商Intel、AMD和NIVIDA一起努力进行驱动支持及优化工作,因为Valve公司的Linux团队原来在OpenGL上缺乏足够的经验。

Valve公司所做的优化工作还有GL模型下的多线程支持、去除大多数调用中的glXMakeCurrent,修正线程使用、减少D3D到GL转换代码中的间接损失、改进距离追踪、改进动态缓冲器更新以及编译器优化等。

其他详细内容未来几天内将在Valve公司的官网Linux博客上公布。

来源:Phoronix

你可能想看: