OpenGl中的计算着色器有指令限制吗?

OpenGl中的计算着色器有指令限制吗?,opengl,graphics,Opengl,Graphics,我到处找了,找不到确切的答案 顶点和片段着色器实际上对着色器的最大大小和指令数有限制,但我从未听说过计算着色器上的这些限制 由于我需要将现有的CPU路径跟踪器与许多不同的BRDF进行移植,因此我需要提前知道这是否可能是一个问题,并转移到CUDA,或者OpenGL的计算着色器是否可以很好地处理这项工作,始终存在限制。但这些限制是由执行定义的;它们不是以任何先验的可确定的方式表达的。所以你要知道它们是什么的唯一方法就是穿过它们 CUDA也有一些限制。如果我错了,请纠正我,但我记得CUDA有多达200

我到处找了,找不到确切的答案

顶点和片段着色器实际上对着色器的最大大小和指令数有限制,但我从未听说过计算着色器上的这些限制


由于我需要将现有的CPU路径跟踪器与许多不同的BRDF进行移植,因此我需要提前知道这是否可能是一个问题,并转移到CUDA,或者OpenGL的计算着色器是否可以很好地处理这项工作,始终存在限制。但这些限制是由执行定义的;它们不是以任何先验的可确定的方式表达的。所以你要知道它们是什么的唯一方法就是穿过它们


CUDA也有一些限制。

如果我错了,请纠正我,但我记得CUDA有多达200万个可能的指令,而顶点着色器的最小保证数可能短至512,是否存在数量级的差异?与顶点着色器相比,CUDA和计算着色器在指令限制方面是否绝对没有差异?顶点和片段着色器至少需要512条指令,但这是在2004年引入的(Geforce 6系列)。早在(2006年,Geforce 8系列)中,该限制就被取消为无限数量的指令。我想大概没有多少10年历史的图形卡了。@rowreble:除了BDL所说的,什么是“说明”?一个特定的GLSL需要多少指令?即使SPIR-V也不能将1:1与GPU指令关联起来。您只能根据依赖于实现的硬件来指定限制,虽然CUDA仅限于NVIDIA(因此可以指定GPU指令限制),但OpenGL与平台无关。在仍然保持平台中立的情况下,没有办法合理地指定限制。不是在现代硬件上。多亏了大家的澄清,我不知道SM4不再有限制