View Full Version : OpenGL Specification 4.0 and 4.1 error

12-08-2010, 02:22 PM
A thread in the Advanced OpenGL forum discusses an error in the OpenGL 4.0 and 4.1 specification:

Further discussion of this issue belongs here in this forum.

To summarize:

I am a bit confused about tessellation levels as described in the OpenGL specification, as well as their implementation. I'm hoping that someone here can help.

First, Figure 2.7 in the 4.1 core specification seems to indicate that Outer Level 0 (OL0) determines the number of isolines, each of which has a constant value for v. The number of subdivisions along a particular isoline then is determined by Outer Level 1 (OL1). However, near the bottom of page 120, it says, "each strip has a constant v coordinate....the number of segments in each strip is derived from the first outer tessellation level."

The latter statement doesn't seem to jive with the Figure. Am I interpreting this correctly?

In addition, when testing this out on a ATI 5670, Outer Level 0 seems to be the one that determines the number of segments in a given isoline. Therefore, it seems to follow the latter interpretation.

Your interpretation is correct, and the OpenGL specification is in error. This same error exists in both the core 4.0 and core 4.1 OpenGL specifications.

I also tried the same test on my Vaio laptop (NVIDIA 425M), and found that the tess levels were reversed. gl_TessLevelOuter[0] controlled the number of isolines, and gl_TessLevelOuter[1] determined the number of segments per line strip. Looks like NVIDIA decided to follow the Figure instead of the text.

the OpenGL Specification is in error (and Nvidia and AMD have each interpreted that error in opposite and incompatible ways). This error in the specification needs to be corrected quickly, and either AMD or Nvidia needs to change their driver accordingly, or soon the specification error will be cast in concrete in order to maintain backwards compatibility....

[Nvidia's] interpretation is probably wrong (I believe repeated text ought to supersede a single figure).