It shouldn't be necessary to flush the context within the driver implementation because the old context is explicitly flushed in _mesa_make_current which is called a little further on. It is useful to only have a single place that flushes when switching contexts to make it easier to later implement the GL_KHR_context_flush_control extension. The flush in intelMakeCurrent was added in committags/18.0-branchpoint5505865to implement the GLX semantics that the context should be flushed when it is released. When the commit was made there was no flush in _mesa_make_current because it was only added later in93102b4c. I think that later commit effectively makes the first commit redundant. Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Signed-off-by: Neil Roberts <neil@linux.intel.com>
| @@ -626,21 +626,12 @@ intelMakeCurrent(__DRIcontext * driContextPriv, | |||
| __DRIdrawable * driReadPriv) | |||
| { | |||
| struct intel_context *intel; | |||
| GET_CURRENT_CONTEXT(curCtx); | |||
| if (driContextPriv) | |||
| intel = (struct intel_context *) driContextPriv->driverPrivate; | |||
| else | |||
| intel = NULL; | |||
| /* According to the glXMakeCurrent() man page: "Pending commands to | |||
| * the previous context, if any, are flushed before it is released." | |||
| * But only flush if we're actually changing contexts. | |||
| */ | |||
| if (intel_context(curCtx) && intel_context(curCtx) != intel) { | |||
| _mesa_flush(curCtx); | |||
| } | |||
| if (driContextPriv) { | |||
| struct gl_context *ctx = &intel->ctx; | |||
| struct gl_framebuffer *fb, *readFb; | |||
| @@ -1171,21 +1171,12 @@ intelMakeCurrent(__DRIcontext * driContextPriv, | |||
| __DRIdrawable * driReadPriv) | |||
| { | |||
| struct brw_context *brw; | |||
| GET_CURRENT_CONTEXT(curCtx); | |||
| if (driContextPriv) | |||
| brw = (struct brw_context *) driContextPriv->driverPrivate; | |||
| else | |||
| brw = NULL; | |||
| /* According to the glXMakeCurrent() man page: "Pending commands to | |||
| * the previous context, if any, are flushed before it is released." | |||
| * But only flush if we're actually changing contexts. | |||
| */ | |||
| if (brw_context(curCtx) && brw_context(curCtx) != brw) { | |||
| _mesa_flush(curCtx); | |||
| } | |||
| if (driContextPriv) { | |||
| struct gl_context *ctx = &brw->ctx; | |||
| struct gl_framebuffer *fb, *readFb; | |||