WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 103079
[EFL][WK2] MiniBrowser rendering should not get blurry when scrolled down with different scale values
https://bugs.webkit.org/show_bug.cgi?id=103079
Summary
[EFL][WK2] MiniBrowser rendering should not get blurry when scrolled down wit...
WebKit Review Bot
Reported
2012-11-22 09:33:58 PST
[EFL][WK2] MiniBrowser rendering gets blurry when scroll down with scale != 1.0 Requested by rafaelbrandao on #webkit.
Attachments
Test case
(6.74 KB, text/html)
2012-11-27 06:16 PST
,
Kenneth Rohde Christiansen
no flags
Details
Patch
(10.33 KB, patch)
2012-11-28 03:54 PST
,
Kenneth Rohde Christiansen
hausmann
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Rafael Brandao
Comment 1
2012-11-22 09:35:42 PST
How to reproduce: 1. Run MiniBrowser on
http://uol.com.br
(or any other site that forces scale to be different than 1.0) 2. Observe the font rendered with this initial state. 3. Scroll down with mouse wheel once. 4. Now compare the font rendered with the previous state. There are differences.
Kenneth Rohde Christiansen
Comment 2
2012-11-22 09:40:33 PST
I can confirm this scrolling with the wheel. I also notice that at specific steps (say every 5 steps on google.com searching for 'hest') the text becomes clear again.
Rafael Brandao
Comment 3
2012-11-26 08:41:50 PST
I've found out so far that rendering the debugging lines (when using WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS=1) does not get blurry, while the repaint counter does (the rectangle and the number on it). Does this ring any bell? I'm still trying to understand how rendering works.
Kalyan
Comment 4
2012-11-26 19:49:57 PST
(In reply to
comment #3
)
> I've found out so far that rendering the debugging lines (when using WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS=1) does not get blurry, while the repaint counter does (the rectangle and the number on it). Does this ring any bell? I'm still trying to understand how rendering works.
Difference between two: Debugging lines: Debugging lines being drawn are nothing but quads with a line width and particular color drawn using shaders. In case of repaintcounter: We use an intermediate surface(cairo_image_surface) to draw the contents of repaint counter. The contents of surface are than copied into a texture.
Kenneth Rohde Christiansen
Comment 5
2012-11-27 05:59:33 PST
Description is wrong, it works fine with scale 0.5, 0.75, 0.80, and event 0.85, but a scale such as 0.86 triggers it though
Kenneth Rohde Christiansen
Comment 6
2012-11-27 06:05:01 PST
With scale 0.86 y pos 0 is sharp and so it y pos 200 and 400 (didn't test 300) - same with scale 0.81. But with scale 0.816327 it is sharp at 0, 120, 240, 360
Rafael Brandao
Comment 7
2012-11-27 06:16:49 PST
(In reply to
comment #6
)
> With scale 0.86 y pos 0 is sharp and so it y pos 200 and 400 (didn't test 300) - same with scale 0.81. > > But with scale 0.816327 it is sharp at 0, 120, 240, 360
Hm, *that* is interesting. :-)
Kenneth Rohde Christiansen
Comment 8
2012-11-27 06:16:50 PST
Created
attachment 176253
[details]
Test case
Kenneth Rohde Christiansen
Comment 9
2012-11-27 06:31:22 PST
im wrong, changed scroll step to 1. 0.35: 0 looks fine, then 1 (off like 2 pixels), 2 (off like 1 pixel), 3 (perfect), etc. 0.816327: 0 perfect 1 worse 2 worse 3 worse 4 better 5 better 6 perfect ... 11 perfect It looks like the same font is being painted on top with an offset
Kenneth Rohde Christiansen
Comment 10
2012-11-27 06:32:49 PST
At 0.90 every 10 steps are fine.
Kenneth Rohde Christiansen
Comment 11
2012-11-27 06:34:04 PST
Trick to scroll per 1 pixel, modify Source/WebKit2/Shared/efl/WebEventFactory.cpp 158 deltaX *= 1; //static_cast<float>(Scrollbar::pixelsPerLineStep()); 159 deltaY *= 1; //static_cast<float>(Scrollbar::pixelsPerLineStep());
Kenneth Rohde Christiansen
Comment 12
2012-11-27 07:26:36 PST
It should be noted that while scrolling the tiles are not updated, so this is not a font issue AFAIK
Kenneth Rohde Christiansen
Comment 13
2012-11-27 08:10:26 PST
This seems to be from the fact that we send wheel events to the web process, it sends back css positions, which doesn't align to device pixels positions. Ie. we are told to move 10 css pixels but move 8.12339 instead with a scale of 0.812339. Instead of storing css scroll position, we should store the page position, as we also want the user to pan page in device units in the near future.
Rafael Brandao
Comment 14
2012-11-27 11:51:37 PST
I will need to work on something else right now, Kenneth is almost there on this bug so please take it! :-)
Kenneth Rohde Christiansen
Comment 15
2012-11-28 03:54:14 PST
Created
attachment 176449
[details]
Patch
Kenneth Rohde Christiansen
Comment 16
2012-11-28 05:10:47 PST
Landed in 136000
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