From: Zou Nan hai Date: Tue, 26 Feb 2008 09:20:12 +0000 (+0800) Subject: [i915] fix texture size exceed limit case when running celestia X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9bd2cb7f90ac434ec5be7d388f899976bf902dc1;p=mesa.git [i915] fix texture size exceed limit case when running celestia --- diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c index 941f7a697c3..3209545adcb 100644 --- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c @@ -180,6 +180,7 @@ int intel_miptree_pitch_align (struct intel_context *intel, struct intel_mipmap_tree *mt, int pitch) { + GLcontext *ctx = &intel->ctx; if (!mt->compressed) { int pitch_align; @@ -201,7 +202,8 @@ int intel_miptree_pitch_align (struct intel_context *intel, * of 1024 and sometimes 512 bytes - performance can drop by several * times. Go to the next multiple of the required alignment for now. */ - if (!(pitch & 511)) + if (!(pitch & 511) && + (pitch + pitch_align) < (1 << ctx->Const.MaxTextureLevels)) pitch += pitch_align; #endif