On Wednesday, June 17, 2015 01:01:15 AM Marek Olšák wrote: > From: Marek Olšák <marek.ol...@amd.com> > > --- > src/mesa/main/api_validate.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c > index 401120a..9a5ac69 100644 > --- a/src/mesa/main/api_validate.c > +++ b/src/mesa/main/api_validate.c > @@ -69,6 +69,25 @@ check_valid_to_render(struct gl_context *ctx, const char > *function) > return false; > } > > + /* The spec argues that this is allowed because a tess ctrl shader > + * without a tess eval shader can be used with transform feedback. > + * However, glBeginTransformFeedback doesn't allow GL_PATCHES and > + * therefore doesn't allow tessellation. > + * > + * Further investigation showed that this is indeed a spec bug and > + * a tess ctrl shader without a tess eval shader shouldn't have been > + * allowed, because there is no API in GL 4.0 that can make use this > + * to produce something useful. > + * > + * Also, all vendors except one don't support a tess ctrl shader > without > + * a tess eval shader anyway. > + */ > + if (ctx->TessCtrlProgram._Current && !ctx->TessEvalProgram._Current) { > + _mesa_error(ctx, GL_INVALID_OPERATION, > + "%s(tess eval shader is missing)", function); > + return false; > + } > + > /* Section 7.3 (Program Objects) of the OpenGL 4.5 Core Profile spec > * says: > * >
This makes sense to me - the TCS always generates patches, and I don't see any way to record those with transform feedback. And nothing else can use patches. So...effectively you need a TES. It sounds like they were leaving the door open for a vendor extension that allowed transform feedback on patches, but nobody has written such an extension yet.
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev