On 04/15/2012 03:25 AM, nobled wrote:
I'm not sure if I'm missing something, but the non-compatibility
OpenGL 3.1 Specification seems pretty straightforward about this:
page 42/55 section 2.11 "Vertex Shaders":
"If the program object
has no vertex shader, or no program object is currently in use, the
results of vertex
shader execution are undefined."
page 160/173 section 3.9 "Fragment Shaders":
"If the program
object has no fragment shader, or no program object is currently in
use, the results
of fragment shader execution are undefined."
page 45/58 section 2.11.2 "Program Objects":
"If UseProgram is called with program set to 0, then the current
rendering state refers to an invalid program object, and the results
of vertex and
fragment shader execution are undefined. However, this is not an error."
Right. It looks like this language persists all the way through OpenGL 4.2.
I did a bit more spec spelunking, and it seems the only link error
required by desktop OpenGL is for geometry shaders and tessellation shaders.
"Linking will also fail if the program object contains objects
to form a geometry shader (see section 2.12), and
* the program contains no objects to form a vertex shader;
..."
"Linking can fail for a variety of reasons as specified in the
OpenGL Shading Language Specification, as well as any of the
following reasons:"
* ...
* The program object contains objects to form a tessellation
control shader (see section 2.12.1), and
- the program is not separable and contains no objects
to form a vertex shader;
..."
I'm not sure if "undefined" is used in the "undefined rendering
results" sense or the "summoning nasal demons" sense, though.
That's not defined. :p Sorry, I couldn't resist.
Here's my new proposal:
* Don't generate a linker error or warning for incomplete programs.
* For draw calls that use incomplete programs, drop the rendering
on the floor and emit a message to the debug log.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev