}
}
- /* If the server tells us that our allocation is suboptimal, we
+ /* If the server tells us that our allocation is suboptimal, we
* reallocate once.
*/
#ifdef HAVE_DRI3_MODIFIERS
* track the geometry of the drawable
*/
static int
-dri3_update_drawable(__DRIdrawable *driDrawable,
- struct loader_dri3_drawable *draw)
+dri3_update_drawable(struct loader_dri3_drawable *draw)
{
mtx_lock(&draw->mtx);
if (draw->first_init) {
&& buffer) {
/* Fill the new buffer with data from an old buffer */
- dri3_fence_await(draw->conn, draw, buffer);
if (!loader_dri3_blit_image(draw,
new_buffer->image,
buffer->image,
buffer = new_buffer;
draw->buffers[buf_id] = buffer;
}
- dri3_fence_await(draw->conn, draw, buffer);
+
+ if (buffer_type == loader_dri3_buffer_back)
+ dri3_fence_await(draw->conn, draw, buffer);
/*
* Do we need to preserve the content of a previous buffer?
front = NULL;
back = NULL;
- if (!dri3_update_drawable(driDrawable, draw))
+ if (!dri3_update_drawable(draw))
return false;
dri3_update_num_back(draw);
back = draw->buffers[id];
/* Allocate a new back if we haven't got one */
if (!back && draw->back_format != __DRI_IMAGE_FORMAT_NONE &&
- dri3_update_drawable(draw->dri_drawable, draw))
+ dri3_update_drawable(draw))
back = dri3_alloc_render_buffer(draw, draw->back_format,
draw->width, draw->height, draw->depth);