X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fdrivers%2Fdri%2Fi965%2Fintel_tex_validate.c;h=0bf0393803fc5867a6f5fadae33906c53c95f6fb;hb=e1e73443c572b5432ef66a923fe64b73467f411b;hp=d8497a681e305593207e0a4909758beddbba83d3;hpb=aff7f335c1505127081d073d977e92d04b49afb0;p=mesa.git diff --git a/src/mesa/drivers/dri/i965/intel_tex_validate.c b/src/mesa/drivers/dri/i965/intel_tex_validate.c index d8497a681e3..0bf0393803f 100644 --- a/src/mesa/drivers/dri/i965/intel_tex_validate.c +++ b/src/mesa/drivers/dri/i965/intel_tex_validate.c @@ -98,15 +98,15 @@ intel_finalize_mipmap_tree(struct brw_context *brw, GLuint unit) return true; } + /* Immutable textures should not get this far -- they should have been + * created in a validated state, and nothing can invalidate them. + */ + assert(!tObj->Immutable); + firstImage = intel_texture_image(tObj->Image[0][tObj->BaseLevel]); /* Check tree can hold all active levels. Check tree matches * target, imageFormat, etc. - * - * For pre-gen4, we have to match first_level == tObj->BaseLevel, - * because we don't have the control that gen4 does to make min/mag - * determination happen at a nonzero (hardware) baselevel. Because - * of that, we just always relayout on baselevel change. */ if (intelObj->mt && (!intel_miptree_match_image(intelObj->mt, &firstImage->base.Base) || @@ -137,7 +137,8 @@ intel_finalize_mipmap_tree(struct brw_context *brw, GLuint unit) depth, true, 0 /* num_samples */, - INTEL_MIPTREE_TILING_ANY); + INTEL_MIPTREE_TILING_ANY, + false); if (!intelObj->mt) return false; } @@ -168,6 +169,7 @@ intel_finalize_mipmap_tree(struct brw_context *brw, GLuint unit) intelObj->validated_first_level = validate_first_level; intelObj->validated_last_level = validate_last_level; + intelObj->_Format = intelObj->mt->format; intelObj->needs_validate = false; return true;