gv100/ir: implement sample shading
[mesa.git] / src / gallium / drivers / nouveau / nouveau_mm.h
1 #ifndef __NOUVEAU_MM_H__
2 #define __NOUVEAU_MM_H__
3
4 union nouveau_bo_config;
5 struct nouveau_mman;
6
7 /* Since a resource can be migrated, we need to decouple allocations from
8 * them. This struct is linked with fences for delayed freeing of allocs.
9 */
10 struct nouveau_mm_allocation {
11 struct nouveau_mm_allocation *next;
12 void *priv;
13 uint32_t offset;
14 };
15
16 extern struct nouveau_mman *
17 nouveau_mm_create(struct nouveau_device *, uint32_t domain,
18 union nouveau_bo_config *);
19
20 extern void
21 nouveau_mm_destroy(struct nouveau_mman *);
22
23 extern struct nouveau_mm_allocation *
24 nouveau_mm_allocate(struct nouveau_mman *, uint32_t size,
25 struct nouveau_bo **, uint32_t *offset);
26
27 extern void
28 nouveau_mm_free(struct nouveau_mm_allocation *);
29
30 extern void
31 nouveau_mm_free_work(void *);
32
33 #endif // __NOUVEAU_MM_H__