X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fdrivers%2Fdri%2Fintel%2Fintel_mipmap_tree.c;h=6e1e034e53d60936f237ea76495de4e4ae6da769;hb=407e8ae5b167b0193e1e5b1266a5d61ed836dfb5;hp=b96ba72853e6a18b4a1a8f804f767fea1a1140ee;hpb=ecadb51bbcb972a79f3ed79e65a7986b9396e757;p=mesa.git diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c index b96ba72853e..6e1e034e53d 100644 --- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c @@ -103,7 +103,8 @@ intel_miptree_create(struct intel_context *intel, GLuint last_level, GLuint width0, GLuint height0, - GLuint depth0, GLuint cpp, GLuint compress_byte) + GLuint depth0, GLuint cpp, GLuint compress_byte, + GLboolean expect_accelerated_upload) { struct intel_mipmap_tree *mt; @@ -111,16 +112,17 @@ intel_miptree_create(struct intel_context *intel, first_level, last_level, width0, height0, depth0, cpp, compress_byte); /* - * pitch == 0 indicates the null texture + * pitch == 0 || height == 0 indicates the null texture */ - if (!mt || !mt->pitch) + if (!mt || !mt->pitch || !mt->total_height) return NULL; mt->region = intel_region_alloc(intel, mt->cpp, mt->pitch, mt->total_height, - mt->pitch); + mt->pitch, + expect_accelerated_upload); if (!mt->region) { free(mt); @@ -163,7 +165,7 @@ intel_miptree_create_for_region(struct intel_context *intel, mt->pitch = region->pitch; #endif - mt->region = region; + intel_region_reference(&mt->region, region); return mt; }