Lines Matching full:back
679 * Find an idle back buffer. If there isn't one, then
697 /* Reuse current back buffer if it's idle */ in dri3_find_back()
705 /* Check whether we need to reuse the current back buffer as new back. in dri3_find_back()
720 * Unigine Superposition hits this and this allows to use 2 back buffers in dri3_find_back()
838 struct loader_dri3_buffer *back; in loader_dri3_copy_sub_buffer() local
849 back = dri3_find_back_alloc(draw); in loader_dri3_copy_sub_buffer()
850 if (!back) in loader_dri3_copy_sub_buffer()
856 /* Update the linear buffer part of the back buffer in loader_dri3_copy_sub_buffer()
860 back->linear_buffer, in loader_dri3_copy_sub_buffer()
861 back->image, in loader_dri3_copy_sub_buffer()
862 0, 0, back->width, back->height, in loader_dri3_copy_sub_buffer()
867 dri3_fence_reset(draw->conn, back); in loader_dri3_copy_sub_buffer()
869 back->pixmap, in loader_dri3_copy_sub_buffer()
873 dri3_fence_trigger(draw->conn, back); in loader_dri3_copy_sub_buffer()
880 back->image, in loader_dri3_copy_sub_buffer()
886 back->pixmap, in loader_dri3_copy_sub_buffer()
893 dri3_fence_await(draw->conn, draw, back); in loader_dri3_copy_sub_buffer()
932 * Copy back to the tiled buffer we use for rendering. in loader_dri3_wait_x()
998 * Make the current back buffer visible using the present extension
1007 struct loader_dri3_buffer *back; in loader_dri3_swap_buffers_msc() local
1016 * GLX pixmaps may be created with a config that includes back buffers and in loader_dri3_swap_buffers_msc()
1019 * It is possible to create a pbuffer with back buffers and to swap the in loader_dri3_swap_buffers_msc()
1020 * front and back buffers by calling glXSwapBuffers. in loader_dri3_swap_buffers_msc()
1024 * If surface is a back-buffered window surface, then the color buffer is in loader_dri3_swap_buffers_msc()
1041 back = dri3_find_back_alloc(draw); in loader_dri3_swap_buffers_msc()
1043 if (!back) in loader_dri3_swap_buffers_msc()
1056 back->linear_buffer, in loader_dri3_swap_buffers_msc()
1057 back->image, in loader_dri3_swap_buffers_msc()
1058 0, 0, back->width, back->height, in loader_dri3_swap_buffers_msc()
1062 /* If we need to preload the new back buffer, remember the source. in loader_dri3_swap_buffers_msc()
1064 * the back buffer across a call to this function. in loader_dri3_swap_buffers_msc()
1069 /* Exchange the back and fake front. Even though the server knows about these in loader_dri3_swap_buffers_msc()
1070 * buffers, it has no notion of back and fake front. in loader_dri3_swap_buffers_msc()
1076 draw->buffers[LOADER_DRI3_FRONT_ID] = back; in loader_dri3_swap_buffers_msc()
1086 dri3_fence_reset(draw->conn, back); in loader_dri3_swap_buffers_msc()
1131 /* If we need to populate the new back, but need to reuse the back in loader_dri3_swap_buffers_msc()
1141 back->busy = 1; in loader_dri3_swap_buffers_msc()
1142 back->last_swap = draw->send_sbc; in loader_dri3_swap_buffers_msc()
1167 back->pixmap, in loader_dri3_swap_buffers_msc()
1175 back->sync_fence, in loader_dri3_swap_buffers_msc()
1188 draw->recv_sbc = back->last_swap = draw->send_sbc; in loader_dri3_swap_buffers_msc()
1191 * locally blit back buffer image to it is enough. Otherwise front buffer in loader_dri3_swap_buffers_msc()
1197 back->image, in loader_dri3_swap_buffers_msc()
1200 dri3_copy_area(draw->conn, back->pixmap, in loader_dri3_swap_buffers_msc()
1209 /* Schedule a server-side back-preserving blit if necessary. in loader_dri3_swap_buffers_msc()
1212 * b) We need to preserve the back buffer, in loader_dri3_swap_buffers_msc()
1235 * relying on it receiving back control immediately. in loader_dri3_swap_buffers_msc()
1252 * By waiting here on a new buffer and only then returning back to the client in loader_dri3_swap_buffers_msc()
1267 struct loader_dri3_buffer *back = dri3_find_back_alloc(draw); in loader_dri3_query_buffer_age() local
1272 if (back && back->last_swap != 0) in loader_dri3_query_buffer_age()
1273 ret = draw->send_sbc - back->last_swap + 1; in loader_dri3_query_buffer_age()
1721 * Otherwise, we'll get a BadWindow error back from this request which in dri3_detect_drawable_is_window()
2038 * Find a front or back buffer, allocating new ones as necessary
2142 * a tradeoff. If we're ok with the wait we can reduce the number of back in dri3_get_buffer()
2168 * Free the front bufffer or all of the back buffers. Used
2214 struct loader_dri3_buffer *front, *back; in loader_dri3_get_buffers() local
2219 buffers->back = NULL; in loader_dri3_get_buffers()
2226 /* Free no longer needed back buffers */ in loader_dri3_get_buffers()
2230 back = draw->buffers[buf_id]; in loader_dri3_get_buffers()
2231 if (!back || !back->last_swap || draw->cur_blit_source == buf_id) in loader_dri3_get_buffers()
2234 buffer_age = draw->send_sbc - back->last_swap + 1; in loader_dri3_get_buffers()
2274 back = dri3_get_buffer(driDrawable, in loader_dri3_get_buffers()
2278 if (!back) in loader_dri3_get_buffers()
2284 back = NULL; in loader_dri3_get_buffers()
2295 if (back) { in loader_dri3_get_buffers()
2297 buffers->back = back->image; in loader_dri3_get_buffers()
2364 * Find a backbuffer slot - potentially allocating a back buffer
2366 * \param draw[in,out] Pointer to the drawable for which to find back.
2367 * \return Pointer to a new back buffer or NULL if allocation failed or was
2370 * Find a potentially new back buffer, and if it's not been allocated yet and
2376 struct loader_dri3_buffer *back; in dri3_find_back_alloc() local
2383 back = draw->buffers[id]; in dri3_find_back_alloc()
2384 /* Allocate a new back if we haven't got one */ in dri3_find_back_alloc()
2385 if (!back && draw->back_format != __DRI_IMAGE_FORMAT_NONE && in dri3_find_back_alloc()
2387 back = dri3_alloc_render_buffer(draw, draw->back_format, in dri3_find_back_alloc()
2390 if (!back) in dri3_find_back_alloc()
2393 dri3_set_render_buffer(draw, id, back); in dri3_find_back_alloc()
2395 /* If necessary, prefill the back with data. */ in dri3_find_back_alloc()
2398 back != draw->buffers[draw->cur_blit_source]) { in dri3_find_back_alloc()
2402 dri3_fence_await(draw->conn, draw, back); in dri3_find_back_alloc()
2404 back->image, in dri3_find_back_alloc()
2408 back->last_swap = source->last_swap; in dri3_find_back_alloc()
2412 return back; in dri3_find_back_alloc()