Get VizDisplayCompositor working behind flag in Windows desktop Chrome |
||||||||||||||
Issue descriptionMake --enable-features=VizDisplayCompositor work on Windows. This flag moves the display compositor from the browser to the GPU process.
,
Nov 22 2017
,
Dec 4 2017
,
Dec 4 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb commit 8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb Author: kylechar <kylechar@chromium.org> Date: Mon Dec 04 23:43:17 2017 viz: Register HWNDs on Windows. Add calls in VizProcessTransportFactory to register HWNDs. This code is the same as in GpuProcessTransportFactory. The registration of child HWND can happen later with viz and the display compositor in the GPU process. As a result, VizProcessTransportFactory can request calling SetParent() too early. Remember that the browser requested calling SetParent() and when the child is registered call it then. InProcessCommandBuffer assumed it was in the browser process and directly called ::SetParent(), which isn't allowed by the GPU sandbox. Use the same mechanism used by GpuCommandBufferStub to forward the SetParent() request to the browser. This requires providing the GpuChannelManager to InProcessCommandBuffer. Bug: 787099 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;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 Change-Id: I2ff351bc90a3f0871149608ad5b6457a1a6cebbc Reviewed-on: https://chromium-review.googlesource.com/779244 Reviewed-by: Antoine Labour <piman@chromium.org> Reviewed-by: Bo <boliu@chromium.org> Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org> Commit-Queue: kylechar <kylechar@chromium.org> Cr-Commit-Position: refs/heads/master@{#521524} [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/android_webview/browser/aw_render_thread_context_provider.cc [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/cc/paint/oop_pixeltest.cc [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/cc/paint/transfer_cache_unittest.cc [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/cc/test/test_in_process_context_provider.cc [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/components/viz/common/gl_helper_benchmark.cc [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/components/viz/common/gl_helper_unittest.cc [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/components/viz/common/gpu/in_process_context_provider.cc [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/components/viz/common/gpu/in_process_context_provider.h [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/components/viz/common/yuv_readback_unittest.cc [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/components/viz/service/display_embedder/gpu_display_provider.cc [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/components/viz/service/display_embedder/gpu_display_provider.h [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/content/browser/compositor/viz_process_transport_factory.cc [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/gpu/ipc/client/gpu_in_process_context_tests.cc [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/gpu/ipc/gl_in_process_context.cc [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/gpu/ipc/gl_in_process_context.h [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/gpu/ipc/in_process_command_buffer.cc [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/gpu/ipc/in_process_command_buffer.h [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/ui/compositor/test/in_process_context_provider.cc [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/ui/gfx/win/rendering_window_manager.cc [modify] https://crrev.com/8e7c5e4dc2fe0d5caa25c9815d7b0d2492d791fb/ui/gfx/win/rendering_window_manager.h
,
Feb 8 2018
,
Feb 8 2018
,
Feb 8 2018
Issue 782870 has been merged into this issue.
,
Feb 8 2018
,
Feb 9 2018
,
Feb 13 2018
,
Feb 15 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4af57f3b7617b501174d7a755c9f0f2dace85a7d commit 4af57f3b7617b501174d7a755c9f0f2dace85a7d Author: kylechar <kylechar@chromium.org> Date: Thu Feb 15 19:14:00 2018 Fix InProcessCommandBuffer::SignalQueryOnGpuThread(). With the pass through command decoder there is no QueryManager instance. It looks like CommandBufferStub was updated to take this into account but not InProcessCommandBuffer. Add equivalent logic to InProcessCommandBuffer so it doesn't crash. This was causing a crash on Windows with the VizDisplayCompositor feature. Bug: 787099 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;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 Change-Id: Iea195682548737cbfdfdb53c1521b1931fb5224f Reviewed-on: https://chromium-review.googlesource.com/921925 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Commit-Queue: kylechar <kylechar@chromium.org> Cr-Commit-Position: refs/heads/master@{#537091} [modify] https://crrev.com/4af57f3b7617b501174d7a755c9f0f2dace85a7d/gpu/ipc/in_process_command_buffer.cc
,
Feb 22 2018
,
Apr 10 2018
,
Jun 1 2018
,
Jun 1 2018
,
Jun 1 2018
,
Jun 1 2018
OOP-D is definitely working on Windows at this point. Marking this as fixed. |
||||||||||||||
►
Sign in to add a comment |
||||||||||||||
Comment 1 by kylec...@chromium.org
, Nov 21 2017