i965: Finalize miptrees before prepare_texture

In order to do resolves for texture views with different formats, we
need intel_texture_object::_Format to be valid.  Calling
intel_finalize_mipmap_tree can safely be done multiple times in a row
and should be a fairly cheap operation.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
This commit is contained in:
Jason Ekstrand 2017-05-26 10:57:33 -07:00
parent 9275b2233f
commit 708664159e
1 changed files with 4 additions and 0 deletions

View File

@ -253,6 +253,10 @@ intel_update_state(struct gl_context * ctx, GLuint new_state)
tex_obj = intel_texture_object(ctx->Texture.Unit[i]._Current);
if (!tex_obj || !tex_obj->mt)
continue;
/* We need inte_texture_object::_Format to be valid */
intel_finalize_mipmap_tree(brw, i);
if (intel_miptree_sample_with_hiz(brw, tex_obj->mt))
intel_miptree_all_slices_resolve_hiz(brw, tex_obj->mt);
else