New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 653181 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
not on Chrome anymore
Closed: Dec 2016
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug

Blocking:
issue 733465



Sign in to add a comment

Switch GPU main thread MessagePump to a non-UI one

Project Member Reported by stanisc@chromium.org, Oct 5 2016

Issue description

As a result of fixing  issue 604551  the D3D surface window has been moved to a separate thread so the bulk of input messages are now handled outside of the main thread.

However there is still two top level windows on the main thread which requires it to run the UI message pump:
1) A hidden popup window which is created as an initial parent of D3D surface window.
2) A hidden IME (Input Method Editor) window which it seems is injected there by the OS.

I've read that the system might broadcast some system messages like to all top level windows and I suspect those can still interfere with the main thread message pump.

So it would be better to move the hidden parent of D3D surface window off the main thread too. And it seems doing that would also get rid of the IME window.
Once we've done that we should be able to switch the message pump type from UI to default. We should also consider switching the decoder thread message pump type at the same time. 

 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 5 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/be69cdd7300df9d72a94679632b4e05ea73f2bf2

commit be69cdd7300df9d72a94679632b4e05ea73f2bf2
Author: stanisc <stanisc@chromium.org>
Date: Wed Oct 05 21:13:17 2016

Move parent of D3D surface window off the main GPU thread

Currently the parent of D3D surface window is still created
on the main thread which requires us to run UI message pump
there. This change moves the creation and destruction of
the parent window to the dedicated window thread.

BUG= 653181 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2394693002
Cr-Commit-Position: refs/heads/master@{#423293}

[modify] https://crrev.com/be69cdd7300df9d72a94679632b4e05ea73f2bf2/gpu/ipc/service/child_window_surface_win.cc
[modify] https://crrev.com/be69cdd7300df9d72a94679632b4e05ea73f2bf2/gpu/ipc/service/child_window_surface_win.h

Labels: OS-Windows
Project Member

Comment 3 by bugdroid1@chromium.org, Oct 27 2016

Labels: merge-merged-2840
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/be69cdd7300df9d72a94679632b4e05ea73f2bf2

commit be69cdd7300df9d72a94679632b4e05ea73f2bf2
Author: stanisc <stanisc@chromium.org>
Date: Wed Oct 05 21:13:17 2016

Move parent of D3D surface window off the main GPU thread

Currently the parent of D3D surface window is still created
on the main thread which requires us to run UI message pump
there. This change moves the creation and destruction of
the parent window to the dedicated window thread.

BUG= 653181 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2394693002
Cr-Commit-Position: refs/heads/master@{#423293}

[modify] https://crrev.com/be69cdd7300df9d72a94679632b4e05ea73f2bf2/gpu/ipc/service/child_window_surface_win.cc
[modify] https://crrev.com/be69cdd7300df9d72a94679632b4e05ea73f2bf2/gpu/ipc/service/child_window_surface_win.h

Comment 4 by dimu@google.com, Nov 4 2016

Labels: -merge-merged-2840
[Automated comment] removing mislabelled merge-merged-2840
Project Member

Comment 5 by bugdroid1@chromium.org, Nov 8 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5599ccdfa0d4167f13880db3560d8ad829157069

commit 5599ccdfa0d4167f13880db3560d8ad829157069
Author: stanisc <stanisc@chromium.org>
Date: Tue Nov 08 23:33:44 2016

Switch main GPU thread to Default Message Pump

Since all windows has been moved from the main GPU thread
to a separate dedicated thread there is no need to run
UI message pump on the main thread.

This change switches the main GPU thread, on OS_WIN only,
to MessagePumpDefault. This should make MessagePumpForGpu
unnecessary. I am going to remove it in a separate change.

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel

BUG= 653181 

Review-Url: https://codereview.chromium.org/2432013004
Cr-Commit-Position: refs/heads/master@{#430758}

[modify] https://crrev.com/5599ccdfa0d4167f13880db3560d8ad829157069/content/gpu/gpu_main.cc

Labels: Merge-Request-55

Comment 7 by dimu@chromium.org, Nov 18 2016

Labels: -Merge-Request-55 Merge-Approved-55 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M55 (branch: 2883)
Project Member

Comment 8 by bugdroid1@chromium.org, Nov 18 2016

Labels: -merge-approved-55 merge-merged-2883
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/670b912948b9218a82afbe411c305f10561f1588

commit 670b912948b9218a82afbe411c305f10561f1588
Author: Stanislav Chiknavaryan <stanisc@chromium.org>
Date: Fri Nov 18 23:23:01 2016

Switch main GPU thread to Default Message Pump

Since all windows has been moved from the main GPU thread
to a separate dedicated thread there is no need to run
UI message pump on the main thread.

This change switches the main GPU thread, on OS_WIN only,
to MessagePumpDefault. This should make MessagePumpForGpu
unnecessary. I am going to remove it in a separate change.

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel

BUG= 653181 

Review-Url: https://codereview.chromium.org/2432013004
Cr-Commit-Position: refs/heads/master@{#430758}
(cherry picked from commit 5599ccdfa0d4167f13880db3560d8ad829157069)

Review URL: https://codereview.chromium.org/2514033003 .

Cr-Commit-Position: refs/branch-heads/2883@{#616}
Cr-Branched-From: 614d31daee2f61b0180df403a8ad43f20b9f6dd7-refs/heads/master@{#423768}

[modify] https://crrev.com/670b912948b9218a82afbe411c305f10561f1588/content/gpu/gpu_main.cc

Status: Fixed (was: Assigned)

Comment 10 by kbr@chromium.org, Jun 15 2017

Blocking: 733465

Sign in to add a comment