diff options
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/i965/intel_span.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_span.c b/src/mesa/drivers/dri/i965/intel_span.c index 60fbeccdc54..fdb594b8f00 100644 --- a/src/mesa/drivers/dri/i965/intel_span.c +++ b/src/mesa/drivers/dri/i965/intel_span.c @@ -207,6 +207,7 @@ do { \ void intelSpanRenderStart( GLcontext *ctx ) { struct intel_context *intel = intel_context(ctx); + int i; if (intel->need_flush) { LOCK_HARDWARE(intel); @@ -226,11 +227,19 @@ void intelSpanRenderStart( GLcontext *ctx ) intel_region_map(intel, intel->front_region); intel_region_map(intel, intel->back_region); intel_region_map(intel, intel->depth_region); + + for (i = 0; i < ctx->Const.MaxTextureCoordUnits; i++) { + if (ctx->Texture.Unit[i]._ReallyEnabled) { + struct gl_texture_object *texObj = ctx->Texture.Unit[i]._Current; + intel_tex_map_images(intel, intel_texture_object(texObj)); + } + } } void intelSpanRenderFinish( GLcontext *ctx ) { struct intel_context *intel = intel_context( ctx ); + int i; _swrast_flush( ctx ); @@ -240,6 +249,13 @@ void intelSpanRenderFinish( GLcontext *ctx ) intel_region_unmap(intel, intel->back_region); intel_region_unmap(intel, intel->depth_region); + for (i = 0; i < ctx->Const.MaxTextureCoordUnits; i++) { + if (ctx->Texture.Unit[i]._ReallyEnabled) { + struct gl_texture_object *texObj = ctx->Texture.Unit[i]._Current; + intel_tex_unmap_images(intel, intel_texture_object(texObj)); + } + } + UNLOCK_HARDWARE( intel ); } |