summaryrefslogtreecommitdiff
path: root/freedreno/freedreno_ringbuffer.h
diff options
context:
space:
mode:
authorRob Clark <robclark@freedesktop.org>2018-07-22 11:44:15 -0400
committerRob Clark <robclark@freedesktop.org>2018-07-30 12:18:58 -0400
commitfcbf206aa293af2d478e48dc45e4e8b3af0e7737 (patch)
tree8629a29aec6fd8691ebeafa7df6f7085febe4786 /freedreno/freedreno_ringbuffer.h
parent4519db23ef716f37f804485f50955c26c38a6ae6 (diff)
downloaddrm-fcbf206aa293af2d478e48dc45e4e8b3af0e7737.tar.gz
freedreno: add fd_ringbuffer_new_object()
Add new API for reusable "state objects" which can be re-used multiple times. Backend implementation for msm will follow. (Probably not needed to support this for any device that uses kgsl backend, since this is mostly useful for a5xx+.) Signed-off-by: Rob Clark <robclark@freedesktop.org>
Diffstat (limited to 'freedreno/freedreno_ringbuffer.h')
-rw-r--r--freedreno/freedreno_ringbuffer.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/freedreno/freedreno_ringbuffer.h b/freedreno/freedreno_ringbuffer.h
index 0a3d6f77..69e7ed99 100644
--- a/freedreno/freedreno_ringbuffer.h
+++ b/freedreno/freedreno_ringbuffer.h
@@ -33,8 +33,7 @@
/* the ringbuffer object is not opaque so that OUT_RING() type stuff
* can be inlined. Note that users should not make assumptions about
- * the size of this struct.. more stuff will be added when we eventually
- * have a kernel driver that can deal w/ reloc's..
+ * the size of this struct.
*/
struct fd_ringbuffer_funcs;
@@ -52,10 +51,15 @@ struct fd_ringbuffer {
* ringbuffer data
*/
void *user;
+
+ uint32_t flags;
};
struct fd_ringbuffer * fd_ringbuffer_new(struct fd_pipe *pipe,
uint32_t size);
+struct fd_ringbuffer * fd_ringbuffer_new_object(struct fd_pipe *pipe,
+ uint32_t size);
+
void fd_ringbuffer_del(struct fd_ringbuffer *ring);
void fd_ringbuffer_set_parent(struct fd_ringbuffer *ring,
struct fd_ringbuffer *parent);
@@ -95,6 +99,7 @@ will_be_deprecated void fd_ringbuffer_emit_reloc_ring(struct fd_ringbuffer *ring
uint32_t fd_ringbuffer_cmd_count(struct fd_ringbuffer *ring);
uint32_t fd_ringbuffer_emit_reloc_ring_full(struct fd_ringbuffer *ring,
struct fd_ringbuffer *target, uint32_t cmd_idx);
+uint32_t fd_ringbuffer_size(struct fd_ringbuffer *ring);
will_be_deprecated struct fd_ringmarker * fd_ringmarker_new(struct fd_ringbuffer *ring);
will_be_deprecated void fd_ringmarker_del(struct fd_ringmarker *marker);