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•7 years ago
|
| Assignee | ||
Comment 1•7 years ago
|
||
| Assignee | ||
Comment 2•7 years ago
|
||
| Assignee | ||
Comment 3•7 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•7 years ago
|
||
:jrmuizel, can you check if Attachment 9081552 [details] [diff] works for you?
Comment 5•7 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•7 years ago
|
||
DXGI_ALPHA_MODE_PREMULTIPLIED usage also addressed the problem for me.
| Assignee | ||
Comment 7•7 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•7 years ago
|
||
:jrmuizel, can you check if Attachment 9081847 [details] [diff] also works for you?
Comment 9•7 years ago
|
||
Attachment 9081847 [details] [diff] also works for me.
| Assignee | ||
Updated•7 years ago
|
| Assignee | ||
Comment 10•7 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•7 years ago
|
||
| Assignee | ||
Comment 12•7 years ago
|
||
:jrmuizel, do we need to land PREMULTIPLIED workaround Attachment 9084980 [details] even when it regresses MotionMark performance(180 -> 70)?
Comment 13•7 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•7 years ago
|
||
Ok, thank you :)
Comment 15•7 years ago
|
||
Comment 16•7 years ago
|
||
| bugherder | ||
Comment 17•7 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•7 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•7 years ago
|
||
Does it regress performance the same amount as using ALPHA?
| Assignee | ||
Comment 20•7 years ago
|
||
I am going to compare them.
| Assignee | ||
Comment 21•7 years ago
|
||
| Assignee | ||
Comment 22•7 years ago
|
||
| Assignee | ||
Updated•7 years ago
|
| Assignee | ||
Comment 24•7 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•7 years ago
|
||
| Assignee | ||
Comment 26•7 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•7 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
•