2017-06-30 51 views
1

我已經看遍了,無法找到確定的答案OpenGl中的計算着色器是否有指令限制?

頂點和片段着色器確實對着色器的最大尺寸和指令數量有限制,但我從未聽說過這些限制在計算着色器

因爲我需要的端口與許多不同的BRDFs我需要預先知道這可能是一個問題,並移動到CUDA或者OpenGL的計算着色器可以處理的工作就好了現有的CPU路徑示蹤

回答

2

總是有限制。但是這些限制是由實現定義的;他們不以任何先驗可確定的方式表達。所以你要找出它們的唯一方法就是穿越它們。

CUDA也有限制。

+0

如果我錯了,糾正我,但我記得CUDA有多達2百萬的可能的入侵,而頂點着色器的miminum保證數可能短至512,是不是有數量級的差異? 與頂點着色器相比,CUDA和計算着色器的指令限制是否完全沒有區別? –

+3

[着色器模型3](https://msdn.microsoft.com/en-us/library/windows/desktop/bb509656(v = vs.85).aspx)需要至少512條頂點和片段着色器指令,但這是在2004年推出的(Geforce 6系列)。已經在[Shader Model 4](https://msdn.microsoft.com/en-us/library/windows/desktop/bb509657(v = vs.85).aspx)(2006,Geforce 8 Series)中解除了限制以無限數量的指示。我想可能不會有很多10年前的圖形卡。 – BDL

+0

@RowRebel:加入BDL說的什麼是「指令」? GLSL的特定部分需要多少條指令?即使SPIR-V也不會將1:1與GPU指令相關聯。您只能根據實現相關的硬件指定限制,而CUDA僅支持NVIDIA(因此可以指定GPU指令限制),而OpenGL則與平臺無關。沒有辦法合理地指定限制,同時仍然是平臺中立的。不在現代硬件上。 –