diff options
Diffstat (limited to 'freedreno')
-rw-r--r-- | freedreno/freedreno_ringbuffer.c | 1 | ||||
-rw-r--r-- | freedreno/msm/msm_ringbuffer.c | 12 |
2 files changed, 7 insertions, 6 deletions
diff --git a/freedreno/freedreno_ringbuffer.c b/freedreno/freedreno_ringbuffer.c index ab5d31fc..34a06d83 100644 --- a/freedreno/freedreno_ringbuffer.c +++ b/freedreno/freedreno_ringbuffer.c | |||
@@ -57,6 +57,7 @@ fd_ringbuffer_new(struct fd_pipe *pipe, uint32_t size) | |||
57 | 57 | ||
58 | void fd_ringbuffer_del(struct fd_ringbuffer *ring) | 58 | void fd_ringbuffer_del(struct fd_ringbuffer *ring) |
59 | { | 59 | { |
60 | fd_ringbuffer_reset(ring); | ||
60 | ring->funcs->destroy(ring); | 61 | ring->funcs->destroy(ring); |
61 | } | 62 | } |
62 | 63 | ||
diff --git a/freedreno/msm/msm_ringbuffer.c b/freedreno/msm/msm_ringbuffer.c index b5a50def..32ed8b49 100644 --- a/freedreno/msm/msm_ringbuffer.c +++ b/freedreno/msm/msm_ringbuffer.c | |||
@@ -204,6 +204,12 @@ static void flush_reset(struct fd_ringbuffer *ring) | |||
204 | struct msm_ringbuffer *msm_ring = to_msm_ringbuffer(ring); | 204 | struct msm_ringbuffer *msm_ring = to_msm_ringbuffer(ring); |
205 | unsigned i; | 205 | unsigned i; |
206 | 206 | ||
207 | for (i = 0; i < msm_ring->nr_bos; i++) { | ||
208 | struct msm_bo *msm_bo = to_msm_bo(msm_ring->bos[i]); | ||
209 | msm_bo->current_ring = NULL; | ||
210 | fd_bo_del(&msm_bo->base); | ||
211 | } | ||
212 | |||
207 | /* for each of the cmd buffers, clear their reloc's: */ | 213 | /* for each of the cmd buffers, clear their reloc's: */ |
208 | for (i = 0; i < msm_ring->submit.nr_cmds; i++) { | 214 | for (i = 0; i < msm_ring->submit.nr_cmds; i++) { |
209 | struct msm_ringbuffer *target_ring = to_msm_ringbuffer(msm_ring->rings[i]); | 215 | struct msm_ringbuffer *target_ring = to_msm_ringbuffer(msm_ring->rings[i]); |
@@ -280,12 +286,6 @@ static int msm_ringbuffer_flush(struct fd_ringbuffer *ring, uint32_t *last_start | |||
280 | } | 286 | } |
281 | } | 287 | } |
282 | 288 | ||
283 | for (i = 0; i < msm_ring->nr_bos; i++) { | ||
284 | struct msm_bo *msm_bo = to_msm_bo(msm_ring->bos[i]); | ||
285 | msm_bo->current_ring = NULL; | ||
286 | fd_bo_del(&msm_bo->base); | ||
287 | } | ||
288 | |||
289 | flush_reset(ring); | 289 | flush_reset(ring); |
290 | 290 | ||
291 | return ret; | 291 | return ret; |