OSDN Git Service

freedreno/msm: remove reset of linked rings
authorRob Clark <robclark@freedesktop.org>
Thu, 11 Oct 2018 17:51:14 +0000 (13:51 -0400)
committerRob Clark <robclark@freedesktop.org>
Sat, 13 Oct 2018 21:22:49 +0000 (17:22 -0400)
The msm_cmd isn't refcount'd, so with stateobj rb's that have
independent lifecycle, this is no longer a safe thing to do.
Really, now that there is a bo-cache for rb's, fd_ringbuffer_reset()
should be deprecated because it adds a bunch of pointless complexity.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
freedreno/freedreno_ringbuffer.h
freedreno/msm/msm_ringbuffer.c

index 3e951dc..bc41a31 100644 (file)
@@ -102,6 +102,7 @@ struct fd_ringbuffer *fd_ringbuffer_ref(struct fd_ringbuffer *ring);
 void fd_ringbuffer_del(struct fd_ringbuffer *ring);
 void fd_ringbuffer_set_parent(struct fd_ringbuffer *ring,
                struct fd_ringbuffer *parent);
+will_be_deprecated
 void fd_ringbuffer_reset(struct fd_ringbuffer *ring);
 int fd_ringbuffer_flush(struct fd_ringbuffer *ring);
 /* in_fence_fd: -1 for no in-fence, else fence fd
index a919088..304be11 100644 (file)
@@ -324,14 +324,6 @@ static void flush_reset(struct fd_ringbuffer *ring)
                fd_bo_del(&msm_bo->base);
        }
 
-       /* for each of the cmd buffers, clear their reloc's: */
-       for (i = 0; i < msm_ring->submit.nr_cmds; i++) {
-               struct msm_cmd *target_cmd = msm_ring->cmds[i];
-               if (!target_cmd)
-                       continue;
-               target_cmd->nr_relocs = 0;
-       }
-
        msm_ring->submit.nr_cmds = 0;
        msm_ring->submit.nr_bos = 0;
        msm_ring->nr_cmds = 0;