关于NVIDIA 的 OpenGL回退到软件模式的问题。

其实很久前就想说说这个问题了。
我一直用的NV的驱动。没用过 ATI的。这里只说说NVIDIA的。
NVIDIA的驱动很有意思,下个模拟器,可以模拟很多高级的GPU。比如最近的G80。同时也会在某些硬件不支持的情况下回到软件模式来实现。
但是这个软件回退模式是默认的。就是说你一旦用了硬件不支持的功能。就直接回退了。不会提示你的。这个问题很让人头疼。很多时候,我们显然是不想让它回退到软件模式的,因为慢的要死 0.xx个fps。没人受的了的。而且还不好调试,因为你不知道什么时候调用了哪个函数,引起了硬件不支持。今天早上改了一下那个GPU的水,发现fps从200变成0.5了。找了我一个上午。
不过估计NVIDIA也认识到这个问题。最近的NVPerfKit里能抓住是什么引起回退的。可恶的是那玩意只能在台机上用。
现在我列一下我碰到过的可能会引起回退的地方,以后会做修补;
1: FLOAT32 t的纹理是不支持LINEAR的filter的。一旦用了LINEAR的filter。就回到软件模式。
2:    NPOT纹理硬件可能不支持CLAMP以外的Address mode。 (5600上碰到过)
3:    FLOAT格式的Rendertarget是不支持硬件的BLENDING.
4:    顶点纹理只支持 R32F和RGBA32F。并且不支持NEAREST以外的任何FILTER

你可能感兴趣的:(图形)