Gl multiple render targets and/or geometry shader feedback loops


    Mar 27 2013 | 3:32 am
    Hello. Has anyone been able to get geometry shader GPU-only feedback loops in Max 6? Meaning, the ability to generate data in a geometry shader and then use that same data on the next render pass *and* that data stays on the GPU...its isn't passed back to the CPU.
    This might be related to multiple render targets. I'm now to this place in the rabbit hole...and particle systems.

    • Oct 11 2014 | 4:30 am
      It would help to know the GLSL version supported by Cycling. I asked but was unable to get a response in the Jitter forum. I did some testing using the "# version YYY" command that goes inside the shader. For example, version 1.2 of GLSL would be "120" for YYY. If that is all that is supported, then the GLSL is 8 years out of date according to this page of GLSL releases:
      My testing indicates that "120" (Open GL v. 2.1) is supported. If someone knows something to the contrary, please let us know. I think feedback loops through buffer handling may be possible within the GPU with the later GLSL releases, but I am not positive of this.
    • Oct 11 2014 | 5:16 pm
      @diablodale: I noticed on an older message that you stated:
      "Max 6.1 and earlier do not support tessellation shaders. They only supportGLSL is 1.2. You might be able to get features of higher levels of GLSL using the "#extension GL_xxxxx : enable" statement in a shader."
      I found only one example on the web of such use in Max but I am sure there are others. Andrew Benson created an explosion effect and he includes #extension GL_EXT_geometry_shader4 : enable to use a geometry shader.
      I would like to try what you are requesting, but the above leads to the question: how does one know what extensions to put in a JXS shader based on the GLSL syntax required to achieve an effect? For instance, the above GL_EXT extension should handle any GLSL syntax that is involved with geometry shading. However, there are hundreds of extensions possible. Is it a matter of which are supported by my Nvidia card? If so, I have the GLSL 4.1 pdf manual (this is what is supported on my card) but I am still unsure of what #extensions to put in a JXS based on capability within the language. I tried "#extension all: enable" but Max didn't like that - that might have been a perfect solution. The OpenGL Extensions Viewer certainly helps to know what is supported in a general way.