diff options
Diffstat (limited to 'src/etnaviv/drm')
-rw-r--r-- | src/etnaviv/drm/etnaviv_cmd_stream.c | 40 | ||||
-rw-r--r-- | src/etnaviv/drm/etnaviv_drmif.h | 6 | ||||
-rw-r--r-- | src/etnaviv/drm/etnaviv_priv.h | 4 |
3 files changed, 18 insertions, 32 deletions
diff --git a/src/etnaviv/drm/etnaviv_cmd_stream.c b/src/etnaviv/drm/etnaviv_cmd_stream.c index a38aebf282c..6a218ad0bf2 100644 --- a/src/etnaviv/drm/etnaviv_cmd_stream.c +++ b/src/etnaviv/drm/etnaviv_cmd_stream.c @@ -57,7 +57,7 @@ etna_cmd_stream_priv(struct etna_cmd_stream *stream) struct etna_cmd_stream *etna_cmd_stream_new(struct etna_pipe *pipe, uint32_t size, - void (*reset_notify)(struct etna_cmd_stream *stream, void *priv), + void (*force_flush)(struct etna_cmd_stream *stream, void *priv), void *priv) { struct etna_cmd_stream_priv *stream = NULL; @@ -84,8 +84,8 @@ struct etna_cmd_stream *etna_cmd_stream_new(struct etna_pipe *pipe, stream->base.size = size; stream->pipe = pipe; - stream->reset_notify = reset_notify; - stream->reset_notify_priv = priv; + stream->force_flush = force_flush; + stream->force_flush_priv = priv; return &stream->base; @@ -106,18 +106,12 @@ void etna_cmd_stream_del(struct etna_cmd_stream *stream) free(priv); } -static void reset_buffer(struct etna_cmd_stream *stream) +void etna_cmd_stream_force_flush(struct etna_cmd_stream *stream) { struct etna_cmd_stream_priv *priv = etna_cmd_stream_priv(stream); - stream->offset = 0; - priv->submit.nr_bos = 0; - priv->submit.nr_relocs = 0; - priv->submit.nr_pmrs = 0; - priv->nr_bos = 0; - - if (priv->reset_notify) - priv->reset_notify(stream, priv->reset_notify_priv); + if (priv->force_flush) + priv->force_flush(stream, priv->force_flush_priv); } uint32_t etna_cmd_stream_timestamp(struct etna_cmd_stream *stream) @@ -180,8 +174,8 @@ static uint32_t bo2idx(struct etna_cmd_stream *stream, struct etna_bo *bo, return idx; } -static void flush(struct etna_cmd_stream *stream, int in_fence_fd, - int *out_fence_fd) +void etna_cmd_stream_flush(struct etna_cmd_stream *stream, int in_fence_fd, + int *out_fence_fd) { struct etna_cmd_stream_priv *priv = etna_cmd_stream_priv(stream); int ret, id = priv->pipe->id; @@ -230,20 +224,12 @@ static void flush(struct etna_cmd_stream *stream, int in_fence_fd, if (out_fence_fd) *out_fence_fd = req.fence_fd; -} - -void etna_cmd_stream_flush(struct etna_cmd_stream *stream) -{ - flush(stream, -1, NULL); - reset_buffer(stream); -} -void etna_cmd_stream_flush2(struct etna_cmd_stream *stream, - int in_fence_fd, - int *out_fence_fd) -{ - flush(stream, in_fence_fd, out_fence_fd); - reset_buffer(stream); + stream->offset = 0; + priv->submit.nr_bos = 0; + priv->submit.nr_relocs = 0; + priv->submit.nr_pmrs = 0; + priv->nr_bos = 0; } void etna_cmd_stream_reloc(struct etna_cmd_stream *stream, diff --git a/src/etnaviv/drm/etnaviv_drmif.h b/src/etnaviv/drm/etnaviv_drmif.h index 150eaff1943..7fb01c8a654 100644 --- a/src/etnaviv/drm/etnaviv_drmif.h +++ b/src/etnaviv/drm/etnaviv_drmif.h @@ -143,9 +143,9 @@ struct etna_cmd_stream *etna_cmd_stream_new(struct etna_pipe *pipe, uint32_t siz void *priv); void etna_cmd_stream_del(struct etna_cmd_stream *stream); uint32_t etna_cmd_stream_timestamp(struct etna_cmd_stream *stream); -void etna_cmd_stream_flush(struct etna_cmd_stream *stream); -void etna_cmd_stream_flush2(struct etna_cmd_stream *stream, int in_fence_fd, +void etna_cmd_stream_flush(struct etna_cmd_stream *stream, int in_fence_fd, int *out_fence_fd); +void etna_cmd_stream_force_flush(struct etna_cmd_stream *stream); static inline uint32_t etna_cmd_stream_avail(struct etna_cmd_stream *stream) { @@ -157,7 +157,7 @@ static inline uint32_t etna_cmd_stream_avail(struct etna_cmd_stream *stream) static inline void etna_cmd_stream_reserve(struct etna_cmd_stream *stream, size_t n) { if (etna_cmd_stream_avail(stream) < n) - etna_cmd_stream_flush(stream); + etna_cmd_stream_force_flush(stream); } static inline void etna_cmd_stream_emit(struct etna_cmd_stream *stream, uint32_t data) diff --git a/src/etnaviv/drm/etnaviv_priv.h b/src/etnaviv/drm/etnaviv_priv.h index 0c770f70540..a4b6a9df254 100644 --- a/src/etnaviv/drm/etnaviv_priv.h +++ b/src/etnaviv/drm/etnaviv_priv.h @@ -150,8 +150,8 @@ struct etna_cmd_stream_priv { uint32_t nr_bos, max_bos; /* notify callback if buffer reset happened */ - void (*reset_notify)(struct etna_cmd_stream *stream, void *priv); - void *reset_notify_priv; + void (*force_flush)(struct etna_cmd_stream *stream, void *priv); + void *force_flush_priv; void *bo_table; }; |