Don't you have to add the checks either way? And should these have just been
if (ctx->API != CORE && (ctx->API != COMPAT || ctx->Version < 20)) { ... } And removing compat will just reduce these checks to if (ctx->API != CORE) ? Cheers, -ilia On Thu, May 14, 2015 at 2:55 PM, Ian Romanick <i...@freedesktop.org> wrote: > 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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev