I am not a fan of adding a million extra extension checks. I understand that we can't enable the extension universally due to the OpenGL 2.0 requirement. Add this to the list of arguments for making this extension exclusive to core profile... which I have been saying since before a single line of DSA code was written. :(
If that means I have to go and re-write all the piglit tests, fine. On 05/11/2015 10:27 AM, Fredrik Höglund wrote: > Signed-off-by: Fredrik Höglund <fred...@kde.org> > --- > src/mesa/main/transformfeedback.c | 42 > +++++++++++++++++++++++++++++++++++++++ > 1 file changed, 42 insertions(+) > > diff --git a/src/mesa/main/transformfeedback.c > b/src/mesa/main/transformfeedback.c > index 103011c..642fa96 100644 > --- a/src/mesa/main/transformfeedback.c > +++ b/src/mesa/main/transformfeedback.c > @@ -706,6 +706,13 @@ _mesa_TransformFeedbackBufferBase(GLuint xfb, GLuint > index, GLuint buffer) > struct gl_transform_feedback_object *obj; > struct gl_buffer_object *bufObj; > > + if (!ctx->Extensions.ARB_direct_state_access) { > + _mesa_error(ctx, GL_INVALID_OPERATION, > + "glTransformFeedbackBufferBase(GL_ARB_direct_state_access " > + "is not supported)"); > + return; > + } > + > obj = lookup_transform_feedback_object_err(ctx, xfb, > > "glTransformFeedbackBufferBase"); > if(!obj) { > @@ -729,6 +736,13 @@ _mesa_TransformFeedbackBufferRange(GLuint xfb, GLuint > index, GLuint buffer, > struct gl_transform_feedback_object *obj; > struct gl_buffer_object *bufObj; > > + if (!ctx->Extensions.ARB_direct_state_access) { > + _mesa_error(ctx, GL_INVALID_OPERATION, > + "glTransformFeedbackBufferRange(GL_ARB_direct_state_access > " > + "is not supported)"); > + return; > + } > + > obj = lookup_transform_feedback_object_err(ctx, xfb, > > "glTransformFeedbackBufferRange"); > if(!obj) { > @@ -1045,6 +1059,13 @@ _mesa_CreateTransformFeedbacks(GLsizei n, GLuint > *names) > { > GET_CURRENT_CONTEXT(ctx); > > + if (!ctx->Extensions.ARB_direct_state_access) { > + _mesa_error(ctx, GL_INVALID_OPERATION, > + "glCreateTransformFeedbacks(GL_ARB_direct_state_access " > + "is not supported)"); > + return; > + } > + > create_transform_feedbacks(ctx, n, names, true); > } > > @@ -1215,6 +1236,13 @@ _mesa_GetTransformFeedbackiv(GLuint xfb, GLenum pname, > GLint *param) > struct gl_transform_feedback_object *obj; > GET_CURRENT_CONTEXT(ctx); > > + if (!ctx->Extensions.ARB_direct_state_access) { > + _mesa_error(ctx, GL_INVALID_OPERATION, > + "glGetTransformFeedbackiv(GL_ARB_direct_state_access " > + "is not supported)"); > + return; > + } > + > obj = lookup_transform_feedback_object_err(ctx, xfb, > "glGetTransformFeedbackiv"); > if(!obj) { > @@ -1241,6 +1269,13 @@ _mesa_GetTransformFeedbacki_v(GLuint xfb, GLenum > pname, GLuint index, > struct gl_transform_feedback_object *obj; > GET_CURRENT_CONTEXT(ctx); > > + if (!ctx->Extensions.ARB_direct_state_access) { > + _mesa_error(ctx, GL_INVALID_OPERATION, > + "glGetTransformFeedbacki_v(GL_ARB_direct_state_access " > + "is not supported)"); > + return; > + } > + > obj = lookup_transform_feedback_object_err(ctx, xfb, > "glGetTransformFeedbacki_v"); > if(!obj) { > @@ -1270,6 +1305,13 @@ _mesa_GetTransformFeedbacki64_v(GLuint xfb, GLenum > pname, GLuint index, > struct gl_transform_feedback_object *obj; > GET_CURRENT_CONTEXT(ctx); > > + if (!ctx->Extensions.ARB_direct_state_access) { > + _mesa_error(ctx, GL_INVALID_OPERATION, > + "glGetTransformFeedbacki64_v(GL_ARB_direct_state_access " > + "is not supported)"); > + return; > + } > + > obj = lookup_transform_feedback_object_err(ctx, xfb, > "glGetTransformFeedbacki64_v"); > if(!obj) { > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev