+void __fd_gmem_destroy(struct fd_gmem_stateobj *gmem);
+
+static inline void
+fd_gmem_reference(struct fd_gmem_stateobj **ptr, struct fd_gmem_stateobj *gmem)
+{
+ struct fd_gmem_stateobj *old_gmem = *ptr;
+
+ if (pipe_reference(&(*ptr)->reference, &gmem->reference))
+ __fd_gmem_destroy(old_gmem);
+
+ *ptr = gmem;
+}
+
+struct fd_gmem_cache {
+ struct hash_table *ht;
+ struct list_head lru;
+};
+
+struct fd_batch;
+
+void fd_gmem_render_tiles(struct fd_batch *batch);
+unsigned fd_gmem_estimate_bins_per_pipe(struct fd_batch *batch);
+bool fd_gmem_needs_restore(struct fd_batch *batch, const struct fd_tile *tile,
+ uint32_t buffers);
+
+struct pipe_screen;
+void fd_gmem_screen_init(struct pipe_screen *pscreen);
+void fd_gmem_screen_fini(struct pipe_screen *pscreen);