views_examples_exe has major drawing issues |
||||||||||
Issue descriptionTrying to run views_examples_exe on my Windows debug checkout fails a DCHECK with this stack: cc::LayerTreeHostImpl::CreateAndSetRenderer() Line 2194 cc::LayerTreeHostImpl::InitializeRenderer(cc::OutputSurface * output_surface) Line 2395 cc::SingleThreadProxy::SetOutputSurface(cc::OutputSurface * output_surface) Line 161 cc::LayerTreeHost::SetOutputSurface(std::unique_ptr<cc::OutputSurface,std::default_delete<cc::OutputSurface> > surface) Line 497 ui::Compositor::SetOutputSurface(std::unique_ptr<cc::OutputSurface,std::default_delete<cc::OutputSurface> > output_surface) Line 286 ui::InProcessContextFactory::CreateOutputSurface(base::WeakPtr<ui::Compositor> compositor) Line 194 ui::Compositor::RequestNewOutputSurface() Line 509 cc::LayerTreeHost::RequestNewOutputSurface() Line 510 cc::SingleThreadProxy::RequestNewOutputSurface() Line 140 ...stuff below this point is just base::Callback... The created output surface does not have the delegated_rendering capability. I don't know what this means or how to fix it.
,
Aug 31 2016
,
Sep 2 2016
It needs to pass a non-null surface_manager_ to the InProcessContextFactory probably.
,
Sep 2 2016
Oh I made it do that already recently: https://cs.chromium.org/chromium/src/ui/views/examples/examples_main.cc?rcl=0&l=74
,
Sep 2 2016
But it sounds like this branch isn't going the right way: https://cs.chromium.org/chromium/src/ui/compositor/test/in_process_context_factory.cc?rcl=0&l=170
,
Sep 2 2016
pkasting: I assume you're after https://chromium.googlesource.com/chromium/src/+/be9c59ee04d8297a3a8bc5c0ef8ecb843d3914be ?
,
Sep 2 2016
@7: I tried updating (to get that change) and rebuilding, and now the .exe runs without a DCHECK but the window is empty; on resizing the window, it draws, but everything is vertically flipped. Could what you pointed out in comment 5 be at all related? Does this sound like a compositor issue?
,
Sep 2 2016
If its drawing, then the branch in #5 is going the right way now. I would have expected a crash after that change from #7 if it was going the wrong way. So I don't think that's related anymore. Upside down means https://cs.chromium.org/chromium/src/cc/output/output_surface.h?rcl=1472831237&l=80 that bool is wrong for your platform. DirectOutputSurface https://cs.chromium.org/chromium/src/ui/compositor/test/in_process_context_factory.cc?rcl=1472831237&l=52 should set it in its constructor. I'm not sure where else DirectOutputSurface would be used. I guess you could try linux as well and see if it should be flipped there. https://cs.chromium.org/chromium/src/ui/compositor/test/in_process_context_factory.h?rcl=1472831237&l=40 I only see that being used for views_examples and aura_demo (which is broken for other unrelated reasons i learnt recently). Not drawing until resize.. I'm not sure what is wrong there. Would require some debugging to see. Maybe nothing is telling the compositor to draw or that there is damage or something. Resize would do both of those. I'm not going to spend time debugging that at this point probably though.. this executable isn't much used, it's been broken for probably more than a year without anyone noticing. I'm happy to help you if you got questions though. Would you like to own this bug or should we close it?
,
Sep 7 2016
,
Sep 7 2016
I wanted to just kill the .exe. Scott says this is useful and he wants to keep it, so I'm going to turn this over to him to fix or find a better owner for.
,
Nov 8 2016
sky: ping
,
Nov 8 2016
I'm not going to have time to look into this any time soon. views_examples works fine on other platforms and is definitely used, so we shouldn't nuke it. I suspect the fix isn't that tricky, but I could be wrong.
,
Dec 16 2016
,
Jan 31 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/511c2ded54ef4c20b0013cf7057217c1971f3bb4 commit 511c2ded54ef4c20b0013cf7057217c1971f3bb4 Author: sky <sky@chromium.org> Date: Tue Jan 31 07:34:13 2017 Gets views_examples drawing again Two things were missing: . the output surface needs to be marked flipped. . The display wasn't initially sized. BUG= 640748 TEST=none R=fsamuel@chromium.org Review-Url: https://codereview.chromium.org/2661123003 Cr-Commit-Position: refs/heads/master@{#447203} [modify] https://crrev.com/511c2ded54ef4c20b0013cf7057217c1971f3bb4/ui/compositor/test/in_process_context_factory.cc
,
Jan 31 2017
The patch I just landed gets views_examples showing something on win7, but not on win10...
,
Jan 31 2017
What does it show on win10? Does it draw once then not again, like its a damage problem?
,
Jan 31 2017
An empty white window comes up, and on resize the newly exposed areas are black.
,
Jan 31 2017
Does it work with --disable-direct-composition ? I'm not sure what implementations this test is using, but maybe it's missing an implementation of DidCreateAcceleratedSurfaceChildWindow, so the rendering window isn't being reparented to the browser window.
,
Feb 1 2017
In particular, InProcessCommandBuffer::DidCreateAcceleratedSurfaceChildWindow should probably be implemented as ::SetParent(child_window, parent_window);
,
Feb 7 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/16305b01e5fa25c11eff50d34238bc6576781fa4 commit 16305b01e5fa25c11eff50d34238bc6576781fa4 Author: brettw <brettw@chromium.org> Date: Tue Feb 07 20:10:18 2017 Fix in-process compositing on Windows 10. DidCreateAcceleratedSurfaceChildWindow was not being implemented so the rendering window wasn't being reparented to the browser window. BUG= 640748 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/2673433002 Cr-Commit-Position: refs/heads/master@{#448713} [modify] https://crrev.com/16305b01e5fa25c11eff50d34238bc6576781fa4/gpu/ipc/in_process_command_buffer.cc
,
Feb 7 2017
|
||||||||||
►
Sign in to add a comment |
||||||||||
Comment 1 by pkasting@chromium.org
, Aug 24 2016