Merge remote branch 'main/master' into radeon-rewrite
[mesa.git] / src / mesa / drivers / dri / intel / intel_mipmap_tree.c
index f28fac8394b48c848e8cda5ef5deb14fe1348f3e..6e1e034e53d60936f237ea76495de4e4ae6da769 100644 (file)
@@ -29,7 +29,7 @@
 #include "intel_mipmap_tree.h"
 #include "intel_regions.h"
 #include "intel_chipset.h"
-#include "enums.h"
+#include "main/enums.h"
 
 #define FILE_DEBUG_FLAG DEBUG_MIPTREE
 
@@ -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;
  }