Lines Matching refs:back

673  * Find an idle back buffer. If there isn't one, then
687 /* Check whether we need to reuse the current back buffer as new back.
704 * Unigine Superposition hits this and this allows to use 2 back buffers
813 struct loader_dri3_buffer *back;
824 back = dri3_find_back_alloc(draw);
825 if (!back)
831 /* Update the linear buffer part of the back buffer
835 back->linear_buffer,
836 back->image,
837 0, 0, back->width, back->height,
842 dri3_fence_reset(draw->conn, back);
844 back->pixmap,
848 dri3_fence_trigger(draw->conn, back);
855 back->image,
861 back->pixmap,
868 dri3_fence_await(draw->conn, draw, back);
907 * Copy back to the tiled buffer we use for rendering.
967 * Make the current back buffer visible using the present extension
976 struct loader_dri3_buffer *back;
984 * GLX pixmaps may be created with a config that includes back buffers and
987 * It is possible to create a pbuffer with back buffers and to swap the
988 * front and back buffers by calling glXSwapBuffers.
992 * If surface is a back-buffered window surface, then the color buffer is
1009 back = dri3_find_back_alloc(draw);
1011 if (!back)
1024 back->linear_buffer,
1025 back->image,
1026 0, 0, back->width, back->height,
1030 /* If we need to preload the new back buffer, remember the source.
1032 * the back buffer across a call to this function.
1037 /* Exchange the back and fake front. Even though the server knows about these
1038 * buffers, it has no notion of back and fake front.
1044 draw->buffers[LOADER_DRI3_FRONT_ID] = back;
1054 dri3_fence_reset(draw->conn, back);
1099 /* If we need to populate the new back, but need to reuse the back
1109 back->busy = 1;
1110 back->last_swap = draw->send_sbc;
1135 back->pixmap,
1143 back->sync_fence,
1156 draw->recv_sbc = back->last_swap = draw->send_sbc;
1159 * locally blit back buffer image to it is enough. Otherwise front buffer
1165 back->image,
1168 dri3_copy_area(draw->conn, back->pixmap,
1177 /* Schedule a server-side back-preserving blit if necessary.
1180 * b) We need to preserve the back buffer,
1211 struct loader_dri3_buffer *back = dri3_find_back_alloc(draw);
1215 ret = (!back || back->last_swap == 0) ? 0 :
1216 draw->send_sbc - back->last_swap + 1;
1698 * Otherwise, we'll get a BadWindow error back from this request which
2015 * Find a front or back buffer, allocating new ones as necessary
2119 * a tradeoff. If we're ok with the wait we can reduce the number of back
2145 * Free the front bufffer or all of the back buffers. Used
2197 struct loader_dri3_buffer *front, *back;
2202 buffers->back = NULL;
2205 back = NULL;
2212 /* Free no longer needed back buffers */
2255 back = dri3_get_buffer(driDrawable,
2259 if (!back)
2275 if (back) {
2277 buffers->back = back->image;
2342 * Find a backbuffer slot - potentially allocating a back buffer
2344 * \param draw[in,out] Pointer to the drawable for which to find back.
2345 * \return Pointer to a new back buffer or NULL if allocation failed or was
2348 * Find a potentially new back buffer, and if it's not been allocated yet and
2355 struct loader_dri3_buffer *back;
2362 back = draw->buffers[id];
2363 /* Allocate a new back if we haven't got one */
2364 if (!back && draw->back_format != __DRI_IMAGE_FORMAT_NONE &&
2366 back = dri3_alloc_render_buffer(draw, draw->back_format,
2369 if (!back)
2372 draw->buffers[id] = back;
2374 /* If necessary, prefill the back with data according to swap_method mode. */
2377 back != draw->buffers[draw->cur_blit_source]) {
2381 dri3_fence_await(draw->conn, draw, back);
2383 back->image,
2387 back->last_swap = source->last_swap;
2391 return back;