Lines Matching defs:sna

35 #include "sna.h"
52 static inline void mark_dri3_pixmap(struct sna *sna, struct sna_pixmap *priv, struct kgem_bo *bo)
56 sna->kgem.flush = 1;
62 sna_watch_flush(sna, 1);
64 kgem_bo_submit(&sna->kgem, bo);
65 kgem_bo_unclean(&sna->kgem, bo);
68 static void sna_sync_flush(struct sna *sna, struct sna_pixmap *priv)
92 kgem_bo_submit(&sna->kgem, bo);
93 kgem_bo_unclean(&sna->kgem, bo);
100 struct sna *sna = to_sna_from_screen(fence->pScreen);
104 sna_accel_flush(sna);
115 struct sna *sna = to_sna_from_screen(screen);
120 funcs->CreateFence = sna->dri3.create_fence;
121 sna->dri3.create_fence(screen, fence, initially_triggered);
122 sna->dri3.create_fence = funcs->CreateFence;
130 sna_sync_open(struct sna *sna, ScreenPtr screen)
147 sna->dri3.create_fence = funcs->CreateFence;
176 struct sna *sna = to_sna_from_screen(screen);
201 bo = kgem_create_for_prime(&sna->kgem, fd, (uint32_t)stride * height);
206 list_for_each_entry(priv, &sna->dri3.pixmaps, cow_list) {
223 kgem_bo_destroy(&sna->kgem, bo);
237 sna_sync_flush(sna, priv);
243 if (!kgem_check_surface_size(&sna->kgem,
268 pixmap->devPrivate.ptr = kgem_bo_map__cpu(&sna->kgem, priv->cpu_bo);
276 priv->create = kgem_can_create_2d(&sna->kgem,
280 list_add(&priv->cow_list, &sna->dri3.pixmaps);
282 mark_dri3_pixmap(sna, priv, bo);
289 kgem_bo_destroy(&sna->kgem, bo);
298 struct sna *sna = to_sna_from_screen(screen);
305 if (pixmap == sna->front && sna->flags & SNA_TEAR_FREE) {
333 if (bo->tiling && !sna->kgem.can_fence) {
342 fd = kgem_bo_export_to_prime(&sna->kgem, bo);
350 list_move(&priv->cow_list, &sna->dri3.pixmaps);
352 mark_dri3_pixmap(sna, priv, bo);
372 bool sna_dri3_open(struct sna *sna, ScreenPtr screen)
376 if (!sna_sync_open(sna, screen))
379 list_init(&sna->dri3.pixmaps);
383 void sna_dri3_close(struct sna *sna, ScreenPtr screen)
391 funcs->CreateFence = sna->dri3.create_fence;