我正在使用FBO对非常大的输出图像进行屏幕外平铺渲染。为了获得最佳性能,我试图创建最大的FBO(以及瓦片大小)。为此,我使用GL_MAX_RENDERBUFFER_SIZE_EXT来检索最大可能的大小然后减少它,以便我的FBO不会填充超过可用VRAM的1/16。
这样做似乎可以确保我的渲染器永远不会因内存不足或FBO错误而失败;然而,有足够大的FBO(在一个简单的测试案例中为2002x1202),我有时会得到一个奇怪的结果。在我的Quadro 8600M以及另一台Quadro FX 1700上,我会看到扫描线的条带,其中没有任何东西被渲染或者一些像素被渲染出错误的颜色。如果我将FBO的大小限制为较小的值(例如500x500),则不会发生这种情况。
这会给任何人敲响任何铃声吗?我有点难过。
(我使用的是Windows XP Professional SP3)
答案 0 :(得分:0)
听起来像是一个驱动程序“bug”。
如果可能的话,我会尝试在其他硬件(ATI)上重现。还可以在Quadro硬件上尝试不同的驱动程序版本。
同时检查您的总帐错误代码,或运行类似glDebugger的内容。