lima: track write submits of context (v3)
[mesa.git] / src / gallium / drivers / lima / lima_submit.h
index 216e0fee83d935df4a1956d8feccfa3337eeceb1..8afc7015db8c96d81453ee22ad850fea7014fd2d 100644 (file)
 #include <stdbool.h>
 #include <stdint.h>
 
+#include <util/u_dynarray.h>
+
 struct lima_context;
-struct lima_submit;
 struct lima_bo;
+struct pipe_surface;
+
+struct lima_submit_key {
+   struct pipe_surface *cbuf;
+   struct pipe_surface *zsbuf;
+};
+
+struct lima_submit {
+   int fd;
+   struct lima_context *ctx;
+
+   struct util_dynarray gem_bos[2];
+   struct util_dynarray bos[2];
+
+   struct lima_submit_key key;
+};
+
+struct lima_submit *lima_submit_get(struct lima_context *ctx);
+
+bool lima_submit_add_bo(struct lima_submit *submit, int pipe,
+                        struct lima_bo *bo, uint32_t flags);
+void *lima_submit_create_stream_bo(struct lima_submit *submit, int pipe,
+                                   unsigned size, uint32_t *va);
 
-struct lima_submit *lima_submit_create(struct lima_context *ctx, uint32_t pipe);
-void lima_submit_free(struct lima_submit *submit);
-bool lima_submit_add_bo(struct lima_submit *submit, struct lima_bo *bo, uint32_t flags);
-bool lima_submit_start(struct lima_submit *submit, void *frame, uint32_t size);
-bool lima_submit_wait(struct lima_submit *submit, uint64_t timeout_ns);
-bool lima_submit_has_bo(struct lima_submit *submit, struct lima_bo *bo, bool all);
-bool lima_submit_add_in_sync(struct lima_submit *submit, int fd);
-bool lima_submit_get_out_sync(struct lima_submit *submit, int *fd);
+bool lima_submit_init(struct lima_context *ctx);
+void lima_submit_fini(struct lima_context *ctx);
 
 #endif