From: Jesse Barnes Date: Mon, 11 Jan 2010 20:23:29 +0000 (-0500) Subject: Merge branch 'master' of ssh://people.freedesktop.org/~jbarnes/mesa X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c6ef705e414c8e93ee471f50d15ada3492a9b067;p=mesa.git Merge branch 'master' of ssh://people.freedesktop.org/~jbarnes/mesa Conflicts due to DRI1 removal: src/mesa/drivers/dri/intel/intel_context.c src/mesa/drivers/dri/intel/intel_screen.c --- c6ef705e414c8e93ee471f50d15ada3492a9b067 diff --cc src/mesa/drivers/dri/intel/intel_context.h index c7b72358362,61d0be3a5b0..07207bfbec9 --- a/src/mesa/drivers/dri/intel/intel_context.h +++ b/src/mesa/drivers/dri/intel/intel_context.h @@@ -410,8 -443,11 +410,9 @@@ extern GLboolean intelInitContext(struc void *sharedContextPrivate, struct dd_function_table *functions); -extern void intelGetLock(struct intel_context *intel, GLuint flags); - extern void intelFinish(GLcontext * ctx); extern void intelFlush(GLcontext * ctx); + extern void intel_flush(GLcontext * ctx, GLboolean needs_mi_flush); extern void intelInitDriverFunctions(struct dd_function_table *functions); diff --cc src/mesa/drivers/dri/intel/intel_screen.c index 5165716e092,8251e91ace7..e240957197d --- a/src/mesa/drivers/dri/intel/intel_screen.c +++ b/src/mesa/drivers/dri/intel/intel_screen.c @@@ -113,10 -236,40 +113,36 @@@ static const __DRItexBufferExtension in intelSetTexBuffer2, }; + static void + intelDRI2Flush(__DRIdrawable *drawable) + { + struct intel_context *intel = drawable->driContextPriv->driverPrivate; + + if (intel->gen < 4) + INTEL_FIREVERTICES(intel); + + if (intel->batch->map != intel->batch->ptr) + intel_batchbuffer_flush(intel->batch); + } + + static void + intelDRI2FlushInvalidate(__DRIdrawable *drawable) + { + intelDRI2Flush(drawable); + drawable->validBuffers = GL_FALSE; + } + + static const struct __DRI2flushExtensionRec intelFlushExtension = { + { __DRI2_FLUSH, __DRI2_FLUSH_VERSION }, + intelDRI2Flush, + intelDRI2FlushInvalidate, + }; + static const __DRIextension *intelScreenExtensions[] = { &driReadDrawableExtension, - &driCopySubBufferExtension.base, - &driSwapControlExtension.base, - &driFrameTrackingExtension.base, - &driMediaStreamCounterExtension.base, &intelTexOffsetExtension.base, &intelTexBufferExtension.base, + &intelFlushExtension.base, NULL }; diff --cc src/mesa/drivers/dri/intel/intel_tex_image.c index 307669f87ec,a8f7e6c456e..6f41eafd0ef --- a/src/mesa/drivers/dri/intel/intel_tex_image.c +++ b/src/mesa/drivers/dri/intel/intel_tex_image.c @@@ -742,9 -749,10 +742,10 @@@ intelSetTexBuffer2(__DRIcontext *pDRICt if (!intelObj) return; - intel_update_renderbuffers(pDRICtx, dPriv); + if (!dPriv->validBuffers) + intel_update_renderbuffers(pDRICtx, dPriv); - rb = intel_fb->color_rb[0]; + rb = intel_get_renderbuffer(fb, BUFFER_FRONT_LEFT); /* If the region isn't set, then intel_update_renderbuffers was unable * to get the buffers for the drawable. */