Lines Matching refs:ring
42 struct fd_ringbuffer *ring;
44 ring = pipe->funcs->ringbuffer_new(pipe, size);
45 if (!ring)
48 ring->size = size;
49 ring->pipe = pipe;
50 ring->start = ring->funcs->hostptr(ring);
51 ring->end = &(ring->start[size/4]);
53 ring->cur = ring->last_start = ring->start;
55 return ring;
58 drm_public void fd_ringbuffer_del(struct fd_ringbuffer *ring)
60 ring->funcs->destroy(ring);
67 drm_public void fd_ringbuffer_set_parent(struct fd_ringbuffer *ring,
70 ring->parent = parent;
73 drm_public void fd_ringbuffer_reset(struct fd_ringbuffer *ring)
75 uint32_t *start = ring->start;
76 if (ring->pipe->id == FD_PIPE_2D)
77 start = &ring->start[0x140];
78 ring->cur = ring->last_start = start;
79 if (ring->funcs->reset)
80 ring->funcs->reset(ring);
84 drm_public int fd_ringbuffer_flush(struct fd_ringbuffer *ring)
86 return ring->funcs->flush(ring, ring->last_start);
89 drm_public uint32_t fd_ringbuffer_timestamp(struct fd_ringbuffer *ring)
91 return ring->last_timestamp;
94 drm_public void fd_ringbuffer_reloc(struct fd_ringbuffer *ring,
97 ring->funcs->emit_reloc(ring, reloc);
101 fd_ringbuffer_emit_reloc_ring(struct fd_ringbuffer *ring,
105 assert(target->ring == end->ring);
106 ring->funcs->emit_reloc_ring(ring, target, end);
109 drm_public struct fd_ringmarker * fd_ringmarker_new(struct fd_ringbuffer *ring)
119 marker->ring = ring;
133 marker->cur = marker->ring->cur;
144 struct fd_ringbuffer *ring = marker->ring;
145 return ring->funcs->flush(ring, marker->cur);