WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
148572
[Win][HighDPI] Repaint issues after scrolling.
https://bugs.webkit.org/show_bug.cgi?id=148572
Summary
[Win][HighDPI] Repaint issues after scrolling.
peavo
Reported
2015-08-28 07:20:14 PDT
After scrolling, there are often some repaint artifacts on Windows. This can for example be seen when looking at a bugreport on bugs.webkit.org.
Attachments
Patch
(2.46 KB, patch)
2015-08-28 13:38 PDT
,
peavo
no flags
Details
Formatted Diff
Diff
Patch
(2.22 KB, patch)
2015-09-10 06:44 PDT
,
peavo
achristensen
: review-
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
peavo
Comment 1
2015-08-28 13:38:33 PDT
Created
attachment 260175
[details]
Patch
peavo
Comment 2
2015-08-28 13:39:42 PDT
(In reply to
comment #1
)
> Created
attachment 260175
[details]
> Patch
I'm not sure this is the best solution. Maybe it is better to fix this without adding another member variable to WebView?
peavo
Comment 3
2015-08-31 08:21:18 PDT
This patch is not correct because the FrameView parameter always is the main frame, giving incorrect results for scrolling frames other than the main frame.
peavo
Comment 4
2015-09-10 06:44:34 PDT
Created
attachment 260923
[details]
Patch
peavo
Comment 5
2015-09-10 08:29:33 PDT
(In reply to
comment #4
)
> Created
attachment 260923
[details]
> Patch
Fixed by repainting entire scroll area, but maybe it would be better to fix this by always rounding the device scale factor off to the nearest integer?
Alex Christensen
Comment 6
2015-09-10 09:17:26 PDT
There's got to be a better way to do this. What about just adding a pixel to each side of the rect?
peavo
Comment 7
2015-09-10 10:43:15 PDT
(In reply to
comment #6
)
> There's got to be a better way to do this. What about just adding a pixel to > each side of the rect?
Yes, I agree that we should find another way :) I may not understand you correctly, but I don't think the problem is that we haven't invalidated a large enough area. Instead, the problem seems to be that after a few calls to the scroll method, we have blitted the contents to the wrong position, so that when "normal" drawing is performed, there are glitches between the blitted areas and the areas drawn "normally". The reason for this is that repeated conversions from floating point scroll deltas to integer deltas, is accumulating the error from each conversion. Maybe there exists some WebCore methods which will give us the correct deltas in pixels so the blitted areas end up at the correct position?
Alex Christensen
Comment 8
2015-09-10 11:28:48 PDT
Comment on
attachment 260923
[details]
Patch I don't think this is a good idea. It covers up a bug and hurts performance. I think this might be specific to WinCairo because scrollNonCompositedContents takes an IntSize. I think we should actually find what is the problem and fix that.
peavo
Comment 9
2015-09-10 11:51:06 PDT
(In reply to
comment #8
)
> Comment on
attachment 260923
[details]
> Patch > > I don't think this is a good idea. It covers up a bug and hurts > performance. I think this might be specific to WinCairo because > scrollNonCompositedContents takes an IntSize. I think we should actually > find what is the problem and fix that.
Ok, I'll have a closer look :) I'm not sure that it is WinCairo only, though, since the bug is present when not in accelerated compositing mode. For me it happens with a device scale factor of 1.25, and e.g. hovering over a button after scrolling (dragging the scroll knob) on bugs.webkit.org.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug