Merge remote branch 'main/master' into radeon-rewrite
[mesa.git] / src / mesa / drivers / dri / intel / intel_mipmap_tree.c
index b96ba72853e6a18b4a1a8f804f767fea1a1140ee..6e1e034e53d60936f237ea76495de4e4ae6da769 100644 (file)
@@ -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;
  }