[Mesa-dev] Spec bug? Transform feedback after tessellation control shader

Ilia Mirkin imirkin at alum.mit.edu
Tue Mar 17 11:35:31 PDT 2015


AFAIK you can't have TCS without TES. But you can have TES without TCS.

On Tue, Mar 17, 2015 at 2:33 PM, Marek Olšák <maraeo at gmail.com> 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"
>
> 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 at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list