Commit 7fc00a1a authored by Kramer Ge's avatar Kramer Ge Committed by Commit Bot

[ozone/wayland]Remove code handling Mutter's buffer.release

Buffers can be released out of order by viz due to surface sync, so it
is not safe to expect unreleased buffers are unused by the Wayland
compositor. Right now the feature is off on Mutter so we can remove this
code and figure out a different fix for mutter (e.g. a refactor).

Change-Id: Ie3a9dd4c42bef79adca4d9a4a8b7e67fab59c852
Bug: 1133195
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2503331Reviewed-by: default avatarRobert Kroeger <rjkroege@chromium.org>
Commit-Queue: Kramer Ge <fangzhoug@chromium.org>
Cr-Commit-Position: refs/heads/master@{#821797}
parent 4a93b46d
......@@ -359,25 +359,9 @@ class WaylandBufferManagerHost::Surface {
break;
}
}
if (!buffer)
return;
// Some Wayland compositors (e.g. Gnome) do not send buffer.release for
// buffers that are discarded from a wayland subsurface's cached state. In
// such case, later buffer.release implies buffers attached to the same
// wl_surface previously are also unuesed.
for (const auto& buff : submitted_buffers_) {
auto* submitted_buffer = GetBuffer(buff.buffer_id);
// It's possible that the first buffer is already released because
// MaybeProcessSubmittedBuffers() does not erase buffers when
// submitted_buffers_.size() is 1.
DCHECK(!submitted_buffer->released ||
submitted_buffer->buffer_id ==
submitted_buffers_.front().buffer_id);
submitted_buffer->released = true;
if (submitted_buffer == buffer)
break;
}
DCHECK(buffer);
DCHECK(!buffer->released);
buffer->released = true;
// A release means we may be able to send OnSubmission for previously
// submitted buffers.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment