Investigate a workaroud for Flickering selection/text input(Win10 (1903)/Intel HD Graphics 530 + 620)
Categories
(Core :: Graphics: WebRender, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox70 | --- | fixed |
People
(Reporter: sotaro, Assigned: sotaro)
References
Details
Attachments
(7 files, 2 obsolete files)
3.41 KB,
patch
|
Details | Diff | Splinter Review | |
4.64 KB,
patch
|
Details | Diff | Splinter Review | |
1.22 KB,
patch
|
Details | Diff | Splinter Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
5.35 KB,
patch
|
Details | Diff | Splinter Review | |
6.17 KB,
patch
|
Details | Diff | Splinter Review | |
6.20 KB,
patch
|
Details | Diff | Splinter Review |
Chromium uses IDXGISwapChain1::Present1 () for presenting a frame. It is better to use it also in RenderCompositorANGLE.
https://cs.chromium.org/chromium/src/ui/gl/direct_composition_child_surface_win.cc?l=166
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 1•4 years ago
|
||
Assignee | ||
Comment 2•4 years ago
|
||
Assignee | ||
Comment 3•4 years ago
|
||
Attachment 9081551 [details] [diff] did not address the problem of Bug 1556634. But Attachment 9081552 [details] [diff] address the problem of Bug 1556634 for me.
Assignee | ||
Comment 4•4 years ago
|
||
:jrmuizel, can you check if Attachment 9081552 [details] [diff] works for you?
Comment 5•4 years ago
|
||
(In reply to Sotaro Ikeda [:sotaro] from comment #4)
:jrmuizel, can you check if Attachment 9081552 [details] [diff] works for you?
It does work for me.
However, from my reading of the Chrome code it looks like DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING is not used by default. This suggests that there must be some other reason that Chrome works and Firefox doesn't.
Assignee | ||
Comment 6•4 years ago
|
||
DXGI_ALPHA_MODE_PREMULTIPLIED usage also addressed the problem for me.
Assignee | ||
Comment 7•4 years ago
|
||
Attachment 9081847 [details] [diff] and Attachment 9081552 [details] [diff] addressed the problem for me. But performance seemed to become worse.
FPS of the following WebGL was degraded.
Assignee | ||
Comment 8•4 years ago
|
||
:jrmuizel, can you check if Attachment 9081847 [details] [diff] also works for you?
Comment 9•4 years ago
|
||
Attachment 9081847 [details] [diff] also works for me.
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 10•4 years ago
|
||
When partial present did not render entire back buffer, the problem seemed to go away, though part of the window was not rendered.
Assignee | ||
Comment 11•4 years ago
|
||
Assignee | ||
Comment 12•4 years ago
|
||
:jrmuizel, do we need to land PREMULTIPLIED workaround Attachment 9084980 [details] even when it regresses MotionMark performance(180 -> 70)?
Comment 13•4 years ago
|
||
I'm still inclined to take the workaround. I think we might need something better to actually ship on Intel but I think this is good enough for Nightly and maybe Beta
Assignee | ||
Comment 14•4 years ago
|
||
Ok, thank you :)
Comment 15•4 years ago
|
||
Pushed by sikeda.birchill@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/5d16fc1cebc7 Short term workaround for Intel GPU r=jrmuizel
![]() |
||
Comment 16•4 years ago
|
||
bugherder |
Comment 17•4 years ago
|
||
Alexis had the idea of using partial present with 2 rects that cover the whole screen instead of one rect. If that doesn't work we also have the option of using 2 rects and leaving one pixel unexposed.
Assignee | ||
Comment 18•4 years ago
|
||
(In reply to Jeff Muizelaar [:jrmuizel] from comment #17)
If that doesn't work we also have the option of using 2 rects and leaving one pixel unexposed.
What could we get with it? Forced partial present with current WebRender also regressed performance.
Comment 19•4 years ago
|
||
Does it regress performance the same amount as using ALPHA?
Assignee | ||
Comment 20•4 years ago
|
||
I am going to compare them.
Assignee | ||
Comment 21•4 years ago
|
||
Assignee | ||
Comment 22•4 years ago
|
||
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 24•4 years ago
|
||
(In reply to Jeff Muizelaar [:jrmuizel] from comment #17)
Alexis had the idea of using partial present with 2 rects that cover the whole screen instead of one rect.
Attachment 9085653 [details] [diff] implemented it. But it did not address the problem.
Assignee | ||
Comment 25•4 years ago
|
||
Assignee | ||
Comment 26•4 years ago
|
||
(In reply to Jeff Muizelaar [:jrmuizel] from comment #17)
If that doesn't work we also have the option of using 2 rects and leaving one pixel unexposed.
Attachment 9085653 [details] [diff] implemented it. It addressed the problem for me.
Assignee | ||
Comment 27•4 years ago
|
||
I compared MotionMark score of the followings on my laptop. [1] was best performance, then [2] was better than [3]
[1] No workaround : 160-190
[2] Using 2 rects and leaving one pixel unexposed : 100-130
[3] Use DXGI_ALPHA_MODE_PREMULTIPLIED : 80-90
build of [1]
- https://treeherder.mozilla.org/#/jobs?repo=try&revision=f6bd14f93600774fb65faba604cf1e9769c5b170
- https://treeherder.mozilla.org/#/jobs?repo=try&revision=08dae7f6ddc7338b7621e91da2d0292fbded1e9c
build of [2]
- https://treeherder.mozilla.org/#/jobs?repo=try&revision=012311ac5f3496e1c21d232dfa77d171985b0807
- https://treeherder.mozilla.org/#/jobs?repo=try&revision=3c8ecb14a7b4322d81f07bfc3591ea16877b844f
build of [3]
Description
•