Lines Matching refs:screen

34 nouveau_fence_new(struct nouveau_screen *screen, struct nouveau_fence **fence,  in nouveau_fence_new()  argument
41 (*fence)->screen = screen; in nouveau_fence_new()
86 struct nouveau_screen *screen = fence->screen; in nouveau_fence_emit() local
95 if (screen->fence.tail) in nouveau_fence_emit()
96 screen->fence.tail->next = fence; in nouveau_fence_emit()
98 screen->fence.head = fence; in nouveau_fence_emit()
100 screen->fence.tail = fence; in nouveau_fence_emit()
102 screen->fence.emit(&screen->base, &fence->sequence); in nouveau_fence_emit()
112 struct nouveau_screen *screen = fence->screen; in nouveau_fence_del() local
116 if (fence == screen->fence.head) { in nouveau_fence_del()
117 screen->fence.head = fence->next; in nouveau_fence_del()
118 if (!screen->fence.head) in nouveau_fence_del()
119 screen->fence.tail = NULL; in nouveau_fence_del()
121 for (it = screen->fence.head; it && it->next != fence; it = it->next); in nouveau_fence_del()
123 if (screen->fence.tail == fence) in nouveau_fence_del()
124 screen->fence.tail = it; in nouveau_fence_del()
137 nouveau_fence_update(struct nouveau_screen *screen, boolean flushed) in nouveau_fence_update() argument
141 u32 sequence = screen->fence.update(&screen->base); in nouveau_fence_update()
143 if (screen->fence.sequence_ack == sequence) in nouveau_fence_update()
145 screen->fence.sequence_ack = sequence; in nouveau_fence_update()
147 for (fence = screen->fence.head; fence; fence = next) { in nouveau_fence_update()
156 if (sequence == screen->fence.sequence_ack) in nouveau_fence_update()
159 screen->fence.head = next; in nouveau_fence_update()
161 screen->fence.tail = NULL; in nouveau_fence_update()
175 struct nouveau_screen *screen = fence->screen; in nouveau_fence_signalled() local
178 nouveau_fence_update(screen, FALSE); in nouveau_fence_signalled()
186 struct nouveau_screen *screen = fence->screen; in nouveau_fence_wait() local
195 if (fence == screen->fence.current) in nouveau_fence_wait()
196 nouveau_fence_new(screen, &screen->fence.current, FALSE); in nouveau_fence_wait()
199 nouveau_pushbuf_kick(screen->pushbuf, screen->pushbuf->channel); in nouveau_fence_wait()
202 nouveau_fence_update(screen, FALSE); in nouveau_fence_wait()
215 screen->fence.sequence_ack, screen->fence.sequence); in nouveau_fence_wait()
221 nouveau_fence_next(struct nouveau_screen *screen) in nouveau_fence_next() argument
223 if (screen->fence.current->state < NOUVEAU_FENCE_STATE_EMITTING) in nouveau_fence_next()
224 nouveau_fence_emit(screen->fence.current); in nouveau_fence_next()
226 nouveau_fence_ref(NULL, &screen->fence.current); in nouveau_fence_next()
228 nouveau_fence_new(screen, &screen->fence.current, FALSE); in nouveau_fence_next()