Intel GPU集成显卡一贯都是孱弱的代名词,不过这几年的HD Graphics系列每一代都能看到巨大的进步,尽管无法和AMD APU相提并论但的确能看到踏踏实实的进步,尤其是在CPU连年进展缓慢的情况下,更显得难能可贵。
GDC 2013大会上,Intel就宣布Haswell GPU将会增加支持两个新的DirectX API扩展。第一个是“PixelSync”(像素同步),其实“顺序无关透明”(Order Independent Transparency/OIT)技术的Intel版本,还是软硬件结合的。
OIT技术意在快速整理渲染对象的透明度,使之以正确的顺序进行渲染,能带来不错的效果,并节省GPU资源。
尽管该技术通常都和DX11联系在一起,但并非DX11的一部分,只是通过DX11 API来实现而已。Intel宣称,现有的OIT技术对显存和显存带宽的需求是无止境的,随着着色器复杂度的提高会急剧增加,Haswell和其它整合图形核心恰恰又在这方面力不从心,因此需要在带宽效率上改进才行。
PixelSync在硬件方面就是简单地在Haswell GPU上开启可编程混合操作。Intel在其中放置了新的硬件单元,可以通过PixelSync扩展强制锁定显存访问的序列,对于特定代码,让任何运行在相同像素上的着色器串行执行,而不是并行执行。这种限制仅仅用于重叠像素,所以对其它部分的代码不会影响性能。
软件方面是Intel自己的一套算法,通过高质量压缩来降低显存占用,从而提供可以接受的性能。对此感兴趣的可以参看这份文档。
Intel 宣称已经有两名顶级开发者将会支持PixelSync,其一是Codemasters游戏制作人、负责过《超级房车赛2》的Clive Moody,他对此非常兴奋,其二是英国游戏开发商Creative Assembly,《全面战争:罗马2》里就会用到此技术。
第二个扩展是“InstantAccess”(即时访问),也就是Intel版本的“零拷贝”(Zero Copy),有点融合统一寻址的意思。AMD Llano APU里就已经有了这个东西。
Intel 集成显卡一直在共享系统内存,但是CPU、GPU各自独立,并不能直接访问对方的寻址空间,所以GPU如果需要用到CPU内存里的什么东西,就必须首先建立一份自己的拷贝,这个过程很消耗时间、拖慢性能。随着异构计算的兴起,CPU、GPU同时利用内存里的相同数据已经是大势所趋。
有了InstantAccess,Intel显卡驱动就能提供一个关于GPU显存位置的指针,CPU可以直接访问它。CPU无需拷贝就能使用GPU地址,用完之后再还回去。