panfrost: Pass alignments explicitly
[mesa.git] / src / panfrost / lib / pan_pool.h
index c4668af57feec72d75312c4d73aaafeb20e0b44d..08612a370656c681b0faa546743d64720d61ae70 100644 (file)
@@ -45,10 +45,13 @@ 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);
+panfrost_create_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,6 +61,17 @@ 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)
+{
+        return panfrost_pool_alloc_aligned(pool, sz, util_next_power_of_two(sz));
+}
+
 struct panfrost_transfer
 panfrost_pool_alloc(struct pan_pool *pool, size_t sz);