Did you mean "Khronos Public Bugzilla"? Marek
On Tue, Mar 17, 2015 at 7:58 PM, Ian Romanick <i...@freedesktop.org> wrote: > On 03/17/2015 11:33 AM, Marek Olšák wrote: >> Hi, >> >> The GL 4.5 Core spec is inconsistent. The "11.1.2.1 Output Variables" >> section says that transform feedback is allowed after a tessellation >> control shader if a tessellation evaluation shader isn't present: >> >> "Each program object can specify a set of output variables from one >> shader to be recorded in transform feedback mode (see section 13.2). >> The variables that can be recorded are those emitted by the first >> active shader, in order, from the following list: >> * geometry shader >> * tessellation evaluation shader >> * tessellation control shader >> * vertex shader" >> >> Even glTransformFeedbackVaryings allows it: >> >> "If the set of output variables to record in transform feedback mode >> is specified by TransformFeedbackVaryings, a program will fail to link >> if: >> * the count specified by TransformFeedbackVaryings is non-zero, but the >> program object has no vertex, tessellation control, tessellation evaluation, >> or >> geometry shader;" >> >> However, the "13.2 Transform Feedback" section doesn't mention any >> tessellation control shader: >> >> "The data captured in transform feedback mode depends on the active >> programs on each of the shader stages. If a program is active for the >> geometry shader stage, transform feedback captures the vertices of >> each primitive emitted by the geometry shader. Otherwise, if a program >> is active for the tessellation evaluation shader stage, transform >> feedback captures each primitive produced by the tessellation >> primitive generator, whose vertices are processed by the tessellation >> evaluation shader. Otherwise, transform feedback captures each >> primitive processed by the vertex shader." >> >> Also, glBeginTransformFeedback doesn't allow GL_PATCHES, which is the >> only output primitive type of the tessellation control shader: >> >> "primitiveMode must be TRIANGLES, LINES, or POINTS, and specifies the >> output type of primitives that will be recorded into the buffer >> objects bound for transform feedback" > > And to make matters worse, the ARB_tessellation_shader spec has the > following issue. The resolution of this issue seems to contradict the > rest of the extension spec. > > (8) Should coupling of tessellation control and evaluation shaders be > required? > > RESOLVED: No. A tessellation control shader without an evaluation > shader might be used in conjunction with transform feedback to generate > regular transformed patches. Also, if the set of patches provided by > the application is already in a form usable by the tessellator, the > tessellation control shader may be bypassed. In this use case, the > application would be required to provide default tessellation levels via > the PatchParameterfv API, since no shader would be available to compute > them. > > It may be useful to have a patch produced by a tessellation control > shader to be fed directly to a geometry shader that performs some > operation on full patches, rather than individual triangles of a > tessellated patch. However, such capability is not provided in this > extension. > > This definitely smells like a spec bug. You should submit a bug in the > internal Khronos bugzilla and CC my @intel address. > >> The question is: Is transform feedback really allowed after the >> tessellation control shader? I hope not, because our hardware can't do >> it. >> >> Thanks, >> >> Marek >> >> PS: The spec mentions "tesellation shader" twice. There is no >> "tesellation shader" in OpenGL even if you ignore the bad spelling. >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev