Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(38)

Issue 883783002: [Ozone-DRI] Assume window IPC arrives before surface IPC (Closed)

Created:
5 years, 11 months ago by dnicoara
Modified:
5 years, 10 months ago
CC:
chromium-reviews, kalyank, ozone-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[Ozone-DRI] Assume window IPC arrives before surface IPC Creating a DriWindow happens before the Compositor associated with it. On DriWindow creation an IPC is sent to the GPU process to initialize the window on the GPU side. The Compositor also sends an IPC to create a surface for the window. Since the same channel is used when IPC-ing both messages, the order of IPCs should be maintained. Thus, assume that, on the GPU side, the window (delegate) is already present when trying to create a surface. Note the previous implementation was working around an issue during initialization where the channel wasn't established. The issue was that the channel in the platform was established late, so the IPCs in Chrome would be serviced before the IPCs in the Ozone platform. For clarity, these are the major steps taken at startup when creating a window: 1) PostTaskOnUI(create GpuProcessHostShim) 2) Create WindowTreeHost 3) Create DriWindow a) If channel established PostTaskOnIO(create window on GPU) 4) WindowTreeHost::OnAcceleratedWidget() 5) Create Compositor 6) PostTaskOnUI(create output surface) 7) MessageLoop::Run() 8) Execute task in (1) a) Create GpuProcessHostShim b) OnChannelEstablished i) DriWindow::OnChannelEstablished -> PostTaskOnIO(create window on GPU) 9) Execute task in (6) -> PostTaskOnIO(create surface on GPU) Note, even if the channel isn't up and running in step (8), messages will be queued internally in GpuProcessHost. Thus the messages in (8) and (9) will be queued in the correct order. BUG=none NOTRY=true Committed: https://crrev.com/60ee6c04a0c218b290581364289cae3297fa40d8 Cr-Commit-Position: refs/heads/master@{#313521}

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+20 lines, -44 lines) Patch
M ui/ozone/platform/dri/dri_gpu_platform_support.cc View 1 chunk +4 lines, -10 lines 0 comments Download
M ui/ozone/platform/dri/dri_window.h View 1 chunk +10 lines, -0 lines 0 comments Download
M ui/ozone/platform/dri/dri_window_delegate_manager.h View 1 chunk +0 lines, -3 lines 0 comments Download
M ui/ozone/platform/dri/dri_window_delegate_manager.cc View 1 chunk +0 lines, -5 lines 0 comments Download
M ui/ozone/platform/dri/gbm_surface_factory.h View 3 chunks +0 lines, -5 lines 0 comments Download
M ui/ozone/platform/dri/gbm_surface_factory.cc View 5 chunks +5 lines, -20 lines 0 comments Download
M ui/ozone/platform/dri/ozone_platform_gbm.cc View 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 7 (2 generated)
dnicoara
PTAL
5 years, 11 months ago (2015-01-27 16:51:22 UTC) #2
alexst (slow to review)
lgtm
5 years, 10 months ago (2015-01-27 21:35:45 UTC) #3
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/883783002/1
5 years, 10 months ago (2015-01-28 16:16:10 UTC) #5
commit-bot: I haz the power
Committed patchset #1 (id:1)
5 years, 10 months ago (2015-01-28 16:17:29 UTC) #6
commit-bot: I haz the power
5 years, 10 months ago (2015-01-28 16:18:10 UTC) #7
Message was sent while issue was closed.
Patchset 1 (id:??) landed as
https://crrev.com/60ee6c04a0c218b290581364289cae3297fa40d8
Cr-Commit-Position: refs/heads/master@{#313521}

Powered by Google App Engine
This is Rietveld 408576698