summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/intel/intel_mipmap_tree.c21
-rw-r--r--src/mesa/drivers/dri/intel/intel_mipmap_tree.h15
2 files changed, 36 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
index 19f151f4fa3..33247d2ced0 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
@@ -171,6 +171,27 @@ intel_miptree_create_for_region(struct intel_context *intel,
return mt;
}
+struct intel_mipmap_tree*
+intel_miptree_create_for_renderbuffer(struct intel_context *intel,
+ gl_format format,
+ uint32_t tiling,
+ uint32_t cpp,
+ uint32_t width,
+ uint32_t height)
+{
+ struct intel_region *region;
+ struct intel_mipmap_tree *mt;
+
+ region = intel_region_alloc(intel->intelScreen,
+ tiling, cpp, width, height, true);
+ if (!region)
+ return NULL;
+
+ mt = intel_miptree_create_for_region(intel, GL_TEXTURE_2D, format, region);
+ intel_region_release(&region);
+ return mt;
+}
+
void
intel_miptree_reference(struct intel_mipmap_tree **dst,
struct intel_mipmap_tree *src)
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
index e29b9431939..611519d18d5 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
@@ -151,6 +151,21 @@ intel_miptree_create_for_region(struct intel_context *intel,
gl_format format,
struct intel_region *region);
+/**
+ * Create a miptree appropriate as the storage for a non-texture renderbuffer.
+ * The miptree has the following properties:
+ * - The target is GL_TEXTURE_2D.
+ * - There are no levels other than the base level 0.
+ * - Depth is 1.
+ */
+struct intel_mipmap_tree*
+intel_miptree_create_for_renderbuffer(struct intel_context *intel,
+ gl_format format,
+ uint32_t tiling,
+ uint32_t cpp,
+ uint32_t width,
+ uint32_t height);
+
int intel_miptree_pitch_align (struct intel_context *intel,
struct intel_mipmap_tree *mt,
uint32_t tiling,