Lines Matching refs:back
130 DRI2BufferPtr back;
174 assert(info->front != info->back);
176 info->back, info->front,
178 info->front->flags = info->back->flags;
226 DRI2BufferPtr back)
237 DBG(("%s: draw size=%dx%d, back buffer handle=%d size=%dx%d, is-scanout? %d, active?=%d, pitch=%d, front pitch=%d\n",
239 get_private(back)->bo->handle,
240 get_private(back)->size & 0xffff, get_private(back)->size >> 16,
241 get_private(back)->bo->scanout,
242 get_private(back)->bo->active_scanout,
243 back->pitch, front_pitch(draw)));
263 reuse = size == get_private(back)->size;
265 reuse = get_private(back)->bo->scanout >= scanout;
268 bo = get_private(back)->bo;
270 DBG(("%s: back buffer handle=%d, active?=%d, refcnt=%d\n",
271 __FUNCTION__, bo->handle, bo->active_scanout, get_private(back)->refcnt));
273 DBG(("%s: reuse unattached back\n", __FUNCTION__));
274 get_private(back)->stale = false;
302 if (get_private(back)->bo->scanout &&
304 DBG(("%s: requesting scanout compatible back\n", __FUNCTION__));
310 get_private(back)->bo->tiling,
322 if (USE_ASYNC_SWAP && back->flags) {
330 DBG(("%s: filling new buffer with old back\n", __FUNCTION__));
332 draw, get_private(back)->bo, 0, 0,
335 flags = back->flags;
340 if (reuse && get_private(back)->bo->refcnt == 1 + get_private(back)->bo->active_scanout) {
344 c->bo = ref(get_private(back)->bo);
345 c->name = back->name;
346 c->flags = back->flags;
356 assert(bo != get_private(back)->bo);
357 kgem_bo_destroy(&sna->kgem, get_private(back)->bo);
359 get_private(back)->bo = bo;
360 get_private(back)->size = draw->height << 16 | draw->width;
361 back->pitch = bo->pitch;
362 back->name = name;
363 back->flags = flags;
365 assert(back->pitch);
366 assert(back->name);
369 get_private(back)->stale = false;
414 mark_stale(DRI2BufferPtr back)
423 get_private(back)->bo->handle, xorg_can_triple_buffer()));
424 get_private(back)->stale = xorg_can_triple_buffer();
448 DBG(("%s: replacing back buffer on window %ld\n", __FUNCTION__, draw->id));
454 DBG(("%s: reusing back buffer handle=%d, name=%d, pitch=%d, age=%d\n",
688 DBG(("%s: creating back buffer %dx%d, suitable for scanout? %d\n",
1708 assert((info->front == NULL && info->back == NULL) || info->front != info->back);
1710 _sna_dri2_destroy_buffer(info->sna, info->draw, info->back);
1947 struct kgem_bo *bo = get_private(info->back)->bo;
1956 assert(get_private(info->front)->size == get_private(info->back)->size);
1978 DBG(("%s: marked handle=%d as scanout, swap front (handle=%d, name=%d) and back (handle=%d, name=%d)\n",
1981 get_private(info->back)->bo->handle, info->back->name));
1993 info->front->flags = info->back->flags;
1994 info->front->name = info->back->name;
1995 info->front->pitch = info->back->pitch;
2000 info->back->flags = tmp_flags;
2001 info->back->name = tmp_name;
2002 info->back->pitch = tmp_pitch;
2003 get_private(info->back)->bo = tmp_bo;
2004 mark_stale(info->back);
2007 assert(get_private(info->back)->bo->refcnt);
2008 assert(get_private(info->front)->bo != get_private(info->back)->bo);
2019 DRI2BufferPtr back,
2046 if (front->cpp != back->cpp) {
2047 DBG(("%s: no, format mismatch, front = %d, back = %d\n",
2048 __FUNCTION__, front->cpp, back->cpp));
2080 if (!get_private(back)->bo->scanout) {
2086 if (get_private(back)->size != get_private(front)->size) {
2128 if (get_private(back)->bo->tiling > I915_TILING_X) {
2129 DBG(("%s -- no, tiling mismatch: front %d, back=%d, want-tiled?=%d\n",
2132 get_private(back)->bo->tiling,
2137 if (get_private(front)->bo->pitch != get_private(back)->bo->pitch) {
2138 DBG(("%s -- no, pitch mismatch: front %d, back=%d\n",
2141 get_private(back)->bo->pitch));
2159 DRI2BufferPtr back)
2170 if (front->cpp != back->cpp) {
2171 DBG(("%s: no, format mismatch, front = %d, back = %d\n",
2172 __FUNCTION__, front->cpp, back->cpp));
2204 DBG(("%s: back size=%x, front size=%x\n",
2205 __FUNCTION__, get_private(back)->size, get_private(front)->size));
2206 if (get_private(back)->size != get_private(front)->size) {
2207 DBG(("%s: no, back buffer %dx%d does not match front buffer %dx%d\n",
2209 get_private(back)->size & 0x7fff, (get_private(back)->size >> 16) & 0x7fff,
2260 DRI2BufferPtr back)
2277 if (front->cpp != back->cpp) {
2278 DBG(("%s: no, format mismatch, front = %d, back = %d\n",
2279 __FUNCTION__, front->cpp, back->cpp));
2334 if (get_private(back)->size != (draw->height << 16 | draw->width)) {
2346 sna_dri2_xchg(DrawablePtr draw, DRI2BufferPtr front, DRI2BufferPtr back)
2356 back_bo = get_private(back)->bo;
2359 DBG(("%s: win=%ld, exchange front=%d/%d,ref=%d and back=%d/%d,ref=%d, pixmap=%ld %dx%d\n",
2362 back_bo->handle, back->name, get_private(back)->refcnt,
2384 get_private(back)->bo = front_bo;
2385 mark_stale(back);
2393 front->name = back->name;
2394 back->name = tmp;
2397 front->pitch = back->pitch;
2398 back->pitch = tmp;
2401 back->flags;
2402 back->flags = tmp;
2408 assert(back_bo->pitch == get_private(back)->bo->pitch);
2413 static void sna_dri2_xchg_crtc(struct sna *sna, DrawablePtr draw, xf86CrtcPtr crtc, DRI2BufferPtr front, DRI2BufferPtr back)
2418 DBG(("%s: exchange front=%d/%d and back=%d/%d, win id=%lu, pixmap=%ld %dx%d\n",
2421 get_private(back)->bo->handle, back->name,
2426 assert(can_xchg_crtc(sna, draw, crtc, front, back));
2433 sna_shadow_set_crtc(sna, crtc, get_private(back)->bo);
2450 tmp->cpp = back->cpp;
2451 tmp->format = back->format;
2456 get_private(back)->bo->tiling,
2468 get_private(tmp)->size = get_private(back)->size;
2479 struct kgem_bo *back_bo = get_private(back)->bo;
2485 get_private(back)->bo = front_bo;
2487 mark_stale(back);
2495 front->name = back->name;
2496 back->name = tmp;
2499 front->pitch = back->pitch;
2500 back->pitch = tmp;
2503 front->flags = back->flags;
2504 back->flags = tmp;
2527 if (can_xchg(chain->sna, chain->draw, chain->front, chain->back)) {
2528 sna_dri2_xchg(chain->draw, chain->front, chain->back);
2530 chain->front, chain->back)) {
2532 chain->front, chain->back);
2536 assert(get_private(chain->back)->bo != get_private(chain->front)->bo);
2601 assert((info->front == NULL && info->back == NULL) || info->front != info->back);
2606 if (can_flip(sna, draw, info->front, info->back, info->crtc) &&
2613 if (can_xchg(info->sna, draw, info->front, info->back)) {
2614 sna_dri2_xchg(draw, info->front, info->back);
2617 info->front, info->back)) {
2619 info->front, info->back);
2650 DBG(("%s: swapping back handle=%d [name=%d, active=%d] for pending handle=%d [name=%d, active=%d], front handle=%d [name=%d, active=%d]\n",
2652 get_private(info->back)->bo->handle, info->back->name, get_private(info->back)->bo->active_scanout,
2659 current_back.bo = get_private(info->back)->bo;
2660 current_back.size = get_private(info->back)->size;
2661 current_back.name = info->back->name;
2662 current_back.flags = info->back->flags;
2664 get_private(info->back)->bo = info->pending.bo;
2665 get_private(info->back)->size = info->pending.size;
2666 info->back->name = info->pending.name;
2667 info->back->pitch = info->pending.bo->pitch;
2668 info->back->flags = info->pending.flags;
2671 assert(get_private(info->back)->bo != get_private(info->front)->bo);
2673 if (can_xchg(info->sna, info->draw, info->front, info->back))
2674 sna_dri2_xchg(info->draw, info->front, info->back);
2676 info->front, info->back))
2678 info->front, info->back);
2683 get_private(info->back)->bo,
2684 info->back->name,
2685 get_private(info->back)->size,
2686 info->back->flags);
2688 get_private(info->back)->bo = current_back.bo;
2689 get_private(info->back)->size = current_back.size;
2690 info->back->name = current_back.name;
2691 info->back->pitch = current_back.bo->pitch;
2692 info->back->flags = current_back.flags;
2694 DBG(("%s: restored current back handle=%d [name=%d, active=%d], active=%d], front handle=%d [name=%d, active=%d]\n",
2696 get_private(info->back)->bo->handle, info->back->name, get_private(info->back)->bo->active_scanout,
2763 assert(info->front != info->back);
2764 if (can_xchg(info->sna, info->draw, info->front, info->back)) {
2765 sna_dri2_xchg(info->draw, info->front, info->back);
2767 info->front, info->back)) {
2769 info->front, info->back);
2784 DBG(("%s: current event front=%d [name=%d, active?=%d], back=%d [name=%d, active?=%d]\n", __FUNCTION__,
2786 get_private(chain->back)->bo->handle, chain->back->name, get_private(chain->back)->bo->active_scanout));
2816 DBG(("%s: setting handle=%d as pending blit (current event front=%d, back=%d)\n", __FUNCTION__,
2817 get_private(info->back)->bo->handle,
2819 get_private(chain->back)->bo->handle));
2820 chain->pending.bo = ref(get_private(info->back)->bo);
2821 chain->pending.size = get_private(info->back)->size;
2822 chain->pending.name = info->back->name;
2823 chain->pending.flags = info->back->flags;
2827 /* Prevent us from handing it back on next GetBuffers */
2903 if (can_flip(sna, chain->draw, chain->front, chain->back, chain->crtc) &&
3116 DRI2BufferPtr front, DRI2BufferPtr back,
3134 assert(info->front != info->back);
3140 if (info->back != back) {
3141 assert(info->back != NULL);
3142 _sna_dri2_destroy_buffer(sna, draw, info->back);
3143 info->back = sna_dri2_reference_buffer(back);
3145 assert(info->front != info->back);
3147 sna_dri2_xchg(draw, front, back);
3173 assert(front != back);
3175 info->back = sna_dri2_reference_buffer(back);
3194 DBG(("%s: flip failed, falling back\n", __FUNCTION__));
3206 sna_dri2_get_back(sna, draw, back);
3237 assert(front != back);
3239 info->back = sna_dri2_reference_buffer(back);
3288 DRI2BufferPtr back, CARD64 *target_msc, CARD64 divisor,
3298 DBG(("%s: draw=%lu %dx%d, pixmap=%ld %dx%d, back=%u (refs=%d/%d, flush=%d, active=%d, stale=%d) , front=%u (refs=%d/%d, flush=%d, active=%d)\n",
3304 get_private(back)->bo->handle,
3305 get_private(back)->refcnt,
3306 get_private(back)->bo->refcnt,
3307 get_private(back)->bo->flush,
3308 get_private(back)->bo->active_scanout,
3309 get_private(back)->stale,
3322 assert(front != back);
3323 assert(get_private(front) != get_private(back));
3326 assert(get_private(back)->refcnt);
3336 if (get_private(back)->stale) {
3337 DBG(("%s: stale back buffer\n", __FUNCTION__));
3341 assert(get_private(back)->bo != get_private(front)->bo);
3343 assert(get_private(back)->bo->refcnt);
3346 assert(!get_private(back)->bo->active_scanout);
3394 if (can_flip(sna, draw, front, back, crtc) &&
3395 sna_dri2_schedule_flip(client, draw, crtc, front, back,
3410 assert(front != back);
3412 info->back = sna_dri2_reference_buffer(back);
3449 if (can_xchg(sna, draw, front, back)) {
3450 sna_dri2_xchg(draw, front, back);
3452 __sna_dri2_copy_region(sna, draw, NULL, back, front, 0);
3453 front->flags = back->flags;
3478 if (info->back == NULL)
3479 info->back = sna_dri2_reference_buffer(back);
3563 * current_msc to ensure we return a reasonable value back