diff options
author | Rob Clark <robclark@freedesktop.org> | 2018-07-22 11:44:15 -0400 |
---|---|---|
committer | Rob Clark <robclark@freedesktop.org> | 2018-07-30 12:18:58 -0400 |
commit | fcbf206aa293af2d478e48dc45e4e8b3af0e7737 (patch) | |
tree | 8629a29aec6fd8691ebeafa7df6f7085febe4786 /freedreno/freedreno_ringbuffer.h | |
parent | 4519db23ef716f37f804485f50955c26c38a6ae6 (diff) | |
download | drm-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.h | 9 |
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); |