diff --git a/freedreno/freedreno_drmif.h b/freedreno/freedreno_drmif.h index 02dcfd25..15ae0756 100644 --- a/freedreno/freedreno_drmif.h +++ b/freedreno/freedreno_drmif.h @@ -32,6 +32,15 @@ #include #include +#if defined(__GNUC__) +# define deprecated __attribute__((__deprecated__)) +#else +# define deprecated +#endif + +/* an empty marker for things that will be deprecated in the future: */ +#define will_be_deprecated + struct fd_bo; struct fd_pipe; struct fd_device; diff --git a/freedreno/freedreno_ringbuffer.c b/freedreno/freedreno_ringbuffer.c index 9d987aaf..be802965 100644 --- a/freedreno/freedreno_ringbuffer.c +++ b/freedreno/freedreno_ringbuffer.c @@ -112,6 +112,16 @@ fd_ringbuffer_emit_reloc_ring(struct fd_ringbuffer *ring, ring->funcs->emit_reloc_ring(ring, target->ring, submit_offset, size); } +uint32_t +fd_ringbuffer_emit_reloc_ring_full(struct fd_ringbuffer *ring, + struct fd_ringbuffer *target, uint32_t cmd_idx) +{ + uint32_t size = offset_bytes(target->cur, target->start); + assert(cmd_idx == 0); + ring->funcs->emit_reloc_ring(ring, target, 0, size); + return size; +} + struct fd_ringmarker * fd_ringmarker_new(struct fd_ringbuffer *ring) { struct fd_ringmarker *marker = NULL; @@ -124,7 +134,7 @@ struct fd_ringmarker * fd_ringmarker_new(struct fd_ringbuffer *ring) marker->ring = ring; - fd_ringmarker_mark(marker); + marker->cur = marker->ring->cur; return marker; } diff --git a/freedreno/freedreno_ringbuffer.h b/freedreno/freedreno_ringbuffer.h index 578cdb24..643f50b7 100644 --- a/freedreno/freedreno_ringbuffer.h +++ b/freedreno/freedreno_ringbuffer.h @@ -75,14 +75,16 @@ struct fd_reloc { }; void fd_ringbuffer_reloc(struct fd_ringbuffer *ring, const struct fd_reloc *reloc); -void fd_ringbuffer_emit_reloc_ring(struct fd_ringbuffer *ring, +will_be_deprecated void fd_ringbuffer_emit_reloc_ring(struct fd_ringbuffer *ring, struct fd_ringmarker *target, struct fd_ringmarker *end); +uint32_t fd_ringbuffer_emit_reloc_ring_full(struct fd_ringbuffer *ring, + struct fd_ringbuffer *target, uint32_t cmd_idx); -struct fd_ringmarker * fd_ringmarker_new(struct fd_ringbuffer *ring); -void fd_ringmarker_del(struct fd_ringmarker *marker); -void fd_ringmarker_mark(struct fd_ringmarker *marker); -uint32_t fd_ringmarker_dwords(struct fd_ringmarker *start, +will_be_deprecated struct fd_ringmarker * fd_ringmarker_new(struct fd_ringbuffer *ring); +will_be_deprecated void fd_ringmarker_del(struct fd_ringmarker *marker); +will_be_deprecated void fd_ringmarker_mark(struct fd_ringmarker *marker); +will_be_deprecated uint32_t fd_ringmarker_dwords(struct fd_ringmarker *start, struct fd_ringmarker *end); -int fd_ringmarker_flush(struct fd_ringmarker *marker); +will_be_deprecated int fd_ringmarker_flush(struct fd_ringmarker *marker); #endif /* FREEDRENO_RINGBUFFER_H_ */