panfrost: Rename panfrost_create_pool() into panfrost_pool_init()
[mesa.git] / src / panfrost / lib / pan_pool.h
index c4668af57feec72d75312c4d73aaafeb20e0b44d..23dba284425d7884336b8c8db1a36820d95f4198 100644 (file)
@@ -45,10 +45,15 @@ struct pan_pool {
 
         /* Within the topmost transient BO, how much has been used? */
         unsigned transient_offset;
+
+        /* BO flags to use in the pool */
+        unsigned create_flags;
 };
 
-struct pan_pool
-panfrost_create_pool(void *memctx, struct panfrost_device *dev);
+void
+panfrost_pool_init(struct pan_pool *pool, void *memctx,
+                   struct panfrost_device *dev, unsigned create_flags,
+                   bool prealloc);
 
 /* Represents a fat pointer for GPU-mapped memory, returned from the transient
  * allocator and not used for much else */
@@ -58,10 +63,25 @@ struct panfrost_transfer {
         mali_ptr gpu;
 };
 
+struct panfrost_transfer
+panfrost_pool_alloc_aligned(struct pan_pool *pool, size_t sz, unsigned alignment);
+
+/* Default to self-alignment */
+
+static inline struct panfrost_transfer
+panfrost_pool_alloc(struct pan_pool *pool, size_t sz)
+{
+        assert(sz == util_next_power_of_two(sz));
+        return panfrost_pool_alloc_aligned(pool, sz, sz);
+}
+
 struct panfrost_transfer
 panfrost_pool_alloc(struct pan_pool *pool, size_t sz);
 
 mali_ptr
 panfrost_pool_upload(struct pan_pool *pool, const void *data, size_t sz);
 
+mali_ptr
+panfrost_pool_upload_aligned(struct pan_pool *pool, const void *data, size_t sz, unsigned alignment);
+
 #endif