Closed Bug 1436020 Opened 6 years ago Closed 6 years ago

During SanityTest, verifyLayersRendering() always failed with WebRender

Categories

(Core :: Graphics: WebRender, defect, P1)

defect

Tracking

()

RESOLVED FIXED
mozilla60
Tracking Status
firefox60 --- fixed

People

(Reporter: sotaro, Assigned: sotaro)

References

Details

Attachments

(1 file, 4 obsolete files)

Created based on Bug 1435693 comment 6.
Assignee: nobody → sotaro.ikeda.g
See Also: → 1435693
The verifyLayersRendering() was failed on my PC, because I enabled WebRender Profiler UI.
(In reply to Sotaro Ikeda [:sotaro] from comment #1)
> The verifyLayersRendering() was failed on my PC, because I enabled WebRender Profiler UI.

When WebRender Profiler UI was disabled, the verifyLayersRendering() was always passed.
From Comment 2, it seems better to disable WebRender Profiler during verifyLayersRendering().
(In reply to Sotaro Ikeda [:sotaro] from comment #3)
> From Comment 2, it seems better to disable WebRender Profiler during
> verifyLayersRendering().

Correction:
it seems better to disable WebRender Profiler during takeWindowSnapshot().
Attachment #8948922 - Flags: review?(matt.woodrow)
Comment on attachment 8948922 [details] [diff] [review]
patch - Disable WebRender profiler during taking snap shot of sanity test

Review of attachment 8948922 [details] [diff] [review]:
-----------------------------------------------------------------

Do we ever want to show the WebRender profiler UI when taking a snapshot?

I think we should just disable the profiler overlay for all snapshots (in the C++ code), so that callers don't have to deal with prefs.
(In reply to Matt Woodrow (:mattwoodrow) from comment #6)
> Comment on attachment 8948922 [details] [diff] [review]
> patch - Disable WebRender profiler during taking snap shot of sanity test
> 
> I think we should just disable the profiler overlay for all snapshots (in
> the C++ code), so that callers don't have to deal with prefs.

Yea, it seems like a reasonable approach.
Attachment #8948922 - Flags: review?(matt.woodrow)
Attachment #8948922 - Attachment is obsolete: true
attachment 8949307 [details] [diff] [review] locally defines WebRender's DebugFlags. It should be defined in webrender_ffi_generated.h. I tried to update webrender_ffi_generated.h as to include DebugFlags types. But even with default gecko source, `rustup run nightly cbindgen toolkit/library/rust/ --crate webrender_bindings -o gfx/webrender_bindings/webrender_ffi_generated.h` failed with error on Linux and on Windows :(

DebugFlags was update in WebRender and is going to be imported to gecko.
 https://github.com/servo/webrender/pull/2382

By the way WebRenderDebugPrefChangeCallback() also defines DebugFlags types locally.
https://dxr.mozilla.org/mozilla-central/source/gfx/thebes/gfxPlatform.cpp#598
Attachment #8949307 - Flags: feedback?(nical.bugzilla)
(In reply to Sotaro Ikeda [:sotaro] from comment #9)
> But even with default gecko source, `rustup run nightly cbindgen
> toolkit/library/rust/ --crate webrender_bindings -o
> gfx/webrender_bindings/webrender_ffi_generated.h` failed with error on Linux
> and on Windows :(

I got following error with default m-c source.

> rustup run nightly cbindgen toolkit/library/rust/ --crate webrender_bindings -o gfx/webrender_bindings/webrender_ffi_generated.h
ERROR: Parsing crate `webrender`:``:
unparsed tokens after crate: "
ERROR: Couldn't generate bindings for toolkit/library/rust/.
:rhunt, is there a tip for updating webrender_ffi_generated.h?
Flags: needinfo?(rhunt)
Apply this patch on your tree temporarily: https://hg.mozilla.org/try/rev/e3f85ef18dca6d6bfc842bb1dbaa9bb188c1d0a5 then run cbindgen, and then undo the patch.

This has been fixed in upstream cbindgen by using the latest version of syn, but there are other problems so it hasn't been published yet.
Flags: needinfo?(rhunt)
Thanks!
Comment on attachment 8949307 [details] [diff] [review]
patch - Disable WebRender profiler UI during readback

Review of attachment 8949307 [details] [diff] [review]:
-----------------------------------------------------------------

Looks good to me, but maybe we should just disable all debug flags when taking the screenshot? Just setting them all to zero and restore them after the call. That way you don't even need to worry about maintaining the constants by hand.
Attachment #8949307 - Flags: feedback?(nical.bugzilla) → feedback+
(In reply to Nicolas Silva [:nical] from comment #14)
> 
> Looks good to me, but maybe we should just disable all debug flags when
> taking the screenshot? Just setting them all to zero and restore them after
> the call. That way you don't even need to worry about maintaining the
> constants by hand.

Thanks for the advice, it is simpler!
Attachment #8949307 - Attachment is obsolete: true
Attachment #8950497 - Flags: review?(nical.bugzilla)
Attachment #8950497 - Flags: review?(nical.bugzilla) → review+
Bug 1437949 is going to re-add RendererOGL::Update(). Then it seems better to update the patch as to restore DebugFlag.
Attachment #8950497 - Attachment is obsolete: true
(In reply to Sotaro Ikeda [:sotaro] from comment #17)
> Bug 1437949 is going to re-add RendererOGL::Update(). Then it seems better
> to update the patch as to restore DebugFlag.

I change my mind. I am going to handle Bug 1437949 related side effect as a follow up.
Attachment #8950497 - Attachment is obsolete: false
Attachment #8950826 - Attachment is obsolete: true
Rebased.
Attachment #8950497 - Attachment is obsolete: true
Attachment #8951125 - Flags: review+
Pushed by sikeda@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/1647b6d2973f
Disable WebRender profiler UI during readback r=nical
https://hg.mozilla.org/mozilla-central/rev/1647b6d2973f
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla60
Blocks: 1437442
No longer blocks: 1437442
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: