twerdster
twerdster

Reputation: 5017

What is the code limit size of a vertex or fragment shader in OpenGL 2+

I plan on writing a program that will take some paraemeters as input and will generate its own fragment shader string which will then be compiled, linked and used as a fragment shader (it will only be done once at the start of a program). Im not an expert in computer graphics so I dont know if this is standard practice but I definitely think it has the potential for some interesting applications - not necessarily graphics applications but possibly computational ones.

My question is what is the code size limit of a shader in OpenGL i.e. how much memory can OpenGL reasonably allocate to a program on the graphics processor?

Upvotes: 3

Views: 3434

Answers (1)

Nicol Bolas
Nicol Bolas

Reputation: 473352

There is no code size limit. OK, there is, but:

  1. OpenGL doesn't give you a way to query it because:
  2. Such a number would be meaningless, since it does not translate to anything you can directly control in GLSL.

A long GLSL shader might compile while a short shader can't. Why? Because the compiler may have been able to optimize the long shader down to size, while the short shader expanded to lots of opcodes. In short, GLSL is too high-level to be able to effectively quantify such limitations.

In any case, given the limitations of GL 2.x-class hardware, you probably won't hit any length limitations unless you're trying to do so or are doing GPGPU work.

Upvotes: 4

Related Questions