我可以使用模板缓冲区阻止GPU片段停顿吗?

时间:2013-12-20 14:32:48

标签: opengl fragment shader gpu stencil-buffer

我在片段着色器上进行了一些重载计算,这在多次传递中都有。但是在某些片段上,结果只在一次传递后就绪,而对于其他片段,则需要更多传递。

因此,很多片段在一段时间后会丢弃,但正如我们所知,这些线程可能会停止,直到所有其他片段都完成为止。

我在想。由于某些opengl版本,可以从片段着色器写入模板缓冲区。当我知道我不需要对特定片段进行另一次传递时,我可以写入模板缓冲区。在下一个渲染过程中,我可以打开模板测试以防止这些碎片再次计算。

我的问题:这会阻止拖延问题吗?这些线程是否可用于执行更多仍待处理的片段,以便每次传递比下一次传递更快,因为每次传递都会消除下一次传递的片段?

换句话说,我说我需要计算16x16纹理。在第一遍中,我将不得不计算256个片段(假设我有16个核心,这意味着16个周期)。例如,在第一次通过之后,我知道我只需要在128个片段上进一步计算,并且我已经标记了在模板缓冲区中完成的片段,第二次传递将执行两倍的速度(因此:16个片段上的128个片段)核心= 8个周期而不是16个)?

我希望问题很明确......

0 个答案:

没有答案