Commit 1fc6c072 authored by vikas soni's avatar vikas soni Committed by Commit Bot

Revert "ui/gl: Ensure surface reparenting during surface destruction."

This reverts commit 879b5cdf.

Reason for revert: investigating a browser hang during video playback.
Reverting this CL seems to be fixing the hang. Will reland this change
with a fix to cache surfaces.

Original change's description:
> ui/gl: Ensure surface reparenting during surface destruction.
>
> When destroying a surface, it is important to also detach it from its
> parent to ensure the surface is deleted.
>
> Bug: 1076258
> TBR=sunnyps@chromium.org
>
> Change-Id: I27987a6340e92a1f6d717ada5d74d40e5f6e2e38
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2172124
> Reviewed-by: Khushal <khushalsagar@chromium.org>
> Commit-Queue: Khushal <khushalsagar@chromium.org>
> Auto-Submit: Khushal <khushalsagar@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#763670}

TBR=sunnyps@chromium.org,khushalsagar@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 1076258, 1105508
Change-Id: I5d632aecd01ccc8c4aa873cd297dd511bec7036f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2341235Reviewed-by: default avatarvikas soni <vikassoni@chromium.org>
Reviewed-by: default avatarKhushal <khushalsagar@chromium.org>
Commit-Queue: vikas soni <vikassoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#795998}
parent e8f3c57b
......@@ -50,9 +50,6 @@ using pASurfaceTransaction_delete = void (*)(ASurfaceTransaction*);
using pASurfaceTransaction_apply = int64_t (*)(ASurfaceTransaction*);
using pASurfaceTransaction_setOnComplete =
void (*)(ASurfaceTransaction*, void* ctx, ASurfaceTransaction_OnComplete);
using pASurfaceTransaction_reparent = void (*)(ASurfaceTransaction*,
ASurfaceControl* surface_control,
ASurfaceControl* new_parent);
using pASurfaceTransaction_setVisibility = void (*)(ASurfaceTransaction*,
ASurfaceControl*,
int8_t visibility);
......@@ -147,7 +144,6 @@ struct SurfaceControlMethods {
LOAD_FUNCTION(main_dl_handle, ASurfaceTransaction_delete);
LOAD_FUNCTION(main_dl_handle, ASurfaceTransaction_apply);
LOAD_FUNCTION(main_dl_handle, ASurfaceTransaction_setOnComplete);
LOAD_FUNCTION(main_dl_handle, ASurfaceTransaction_reparent);
LOAD_FUNCTION(main_dl_handle, ASurfaceTransaction_setVisibility);
LOAD_FUNCTION(main_dl_handle, ASurfaceTransaction_setZOrder);
LOAD_FUNCTION(main_dl_handle, ASurfaceTransaction_setBuffer);
......@@ -179,7 +175,6 @@ struct SurfaceControlMethods {
pASurfaceTransaction_delete ASurfaceTransaction_deleteFn;
pASurfaceTransaction_apply ASurfaceTransaction_applyFn;
pASurfaceTransaction_setOnComplete ASurfaceTransaction_setOnCompleteFn;
pASurfaceTransaction_reparent ASurfaceTransaction_reparentFn;
pASurfaceTransaction_setVisibility ASurfaceTransaction_setVisibilityFn;
pASurfaceTransaction_setZOrder ASurfaceTransaction_setZOrderFn;
pASurfaceTransaction_setBuffer ASurfaceTransaction_setBufferFn;
......@@ -355,14 +350,8 @@ SurfaceControl::Surface::Surface(ANativeWindow* parent, const char* name) {
}
SurfaceControl::Surface::~Surface() {
if (surface_) {
// It is important to detach the surface from the tree before deleting it.
Transaction transaction;
transaction.SetParent(*this, nullptr);
transaction.Apply();
if (surface_)
SurfaceControlMethods::Get().ASurfaceControl_releaseFn(surface_);
}
}
SurfaceControl::SurfaceStats::SurfaceStats() = default;
......@@ -492,13 +481,6 @@ void SurfaceControl::Transaction::SetOnCompleteCb(
transaction_, ack_ctx, &OnTransactionCompletedOnAnyThread);
}
void SurfaceControl::Transaction::SetParent(const Surface& surface,
const Surface* new_parent) {
SurfaceControlMethods::Get().ASurfaceTransaction_reparentFn(
transaction_, surface.surface(),
new_parent ? new_parent->surface() : nullptr);
}
void SurfaceControl::Transaction::Apply() {
TRACE_EVENT_ASYNC_BEGIN0("gpu,benchmark", "SurfaceControlTransaction", id_);
SurfaceControlMethods::Get().ASurfaceTransaction_applyFn(transaction_);
......
......@@ -130,7 +130,6 @@ class GL_EXPORT SurfaceControl {
void SetOnCompleteCb(
OnCompleteCb cb,
scoped_refptr<base::SingleThreadTaskRunner> task_runner);
void SetParent(const Surface& surface, const Surface* new_parent);
void Apply();
......
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