[webkit-reviews] review granted: [Bug 173152] [Win][HighDPI] Repaint glitches when scrolling. : [Attachment 312426] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Jan 17 09:17:28 PST 2019


Brent Fulgham <bfulgham at webkit.org> has granted Per Arne Vollan
<pvollan at apple.com>'s request for review:
Bug 173152: [Win][HighDPI] Repaint glitches when scrolling.
https://bugs.webkit.org/show_bug.cgi?id=173152

Attachment 312426: Patch

https://bugs.webkit.org/attachment.cgi?id=312426&action=review




--- Comment #7 from Brent Fulgham <bfulgham at webkit.org> ---
Comment on attachment 312426
  --> https://bugs.webkit.org/attachment.cgi?id=312426
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=312426&action=review

>>>>>> Source/WebKit/win/WebView.cpp:954
>>>>>> +	// FIXME: This is inefficient, we should be able to blit the
scroll rectangle in this case as well.
>>>>> 
>>>>> Is this due to a bug in the CA accelerated compositing code path? Or is
there a bug in BitBlt in the Windows code?
>>>> 
>>>> I believe the problem is the conversion from logical scroll delta to
scroll delta in pixel coordinates. When the scale factor is non-integral, this
conversion is not correct, since we clamp the result. I would prefer a better
fix than the current patch :)
>>> 
>>> Would we be better off using some of the subpixel layout rounding functions
Zalan created? Maybe if we took the ceiling of the calculated pixels we would
always be drawing enough, without drawing too much?
>>> 
>>> For example, what if instead of "clampTo<int>" we used std::ceil?
>>> 
>>> Also, maybe we could adjust the clipRect like we do the scrollViewRect:
>>> 
>>> FloatRect rawClipRect(logicalClipRect);
>>> rawClipRect.scale(scaleFactor);
>>> FloatRect clipRect = enclosingIntRect(rawClipRect);
>>> 
>>> Or something like that?
>> 
>> Thank you, Brent! I will try out these ideas.
> 
> Did any of those ideas work?

I spoke with Per Arne in person. It doesn't look like the other ideas work, so
we should proceed with this for now.

Can you please change the FIME to reference a bugzilla that documents the need
to improve the logic for this case?


More information about the webkit-reviews mailing list