static int
_wayland_tbm_client_is_active_flush_valid(struct wayland_tbm_surface_queue *queue_info)
{
- if (queue_info->width != queue_info->active_flush_width ||
- queue_info->height != queue_info->active_flush_height)
- return 0;
+
+ if (!queue_info->is_active) return 0;
+ if (!queue_info->active_flush) return 0;
+ if (queue_info->width != queue_info->active_flush_width) return 0;
+ if (queue_info->height != queue_info->active_flush_height) return 0;
return 1;
}
WL_TBM_RETURN_IF_FAIL(queue_info != NULL);
pthread_mutex_lock(&queue_info->lock);
- if (!queue_info->is_active || !queue_info->active_flush) {
- pthread_mutex_unlock(&queue_info->lock);
- return;
- }
if (!_wayland_tbm_client_is_active_flush_valid(queue_info)) {
pthread_mutex_unlock(&queue_info->lock);
pthread_mutex_unlock(&queue_info->lock);
tbm_surface_queue_set_size(surface_queue, queue_size, 1);
pthread_mutex_lock(&queue_info->lock);
- queue_info->active_flush_done = 1;
- WL_TBM_LOG("surface_queue:%p active_flush_done", surface_queue);
+ if (_wayland_tbm_client_is_active_flush_valid(queue_info)) {
+ queue_info->active_flush_done = 1;
+ WL_TBM_LOG("surface_queue:%p active_flush_done", surface_queue);
+ } else {
+ WL_TBM_LOG("surface_queue:%p active:%d (%dx%d) changed",
+ surface_queue, queue_info->is_active,
+ queue_info->width, queue_info->height);
+ }
}
pthread_mutex_unlock(&queue_info->lock);