Closed Bug 1649296 Opened 4 years ago Closed 2 years ago

Text is blurry in Responsive Design Mode with full zoom > 100% (with WebRender disabled)

Categories

(DevTools :: Responsive Design Mode, defect, P4)

defect

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: botond, Unassigned)

References

(Depends on 1 open bug, Blocks 1 open bug, Regression)

Details

(Keywords: regression)

STR

  1. Run Firefox nightly
  2. Load https://en.m.wikipedia.org/wiki/Main_Page
  3. Enter Responsive Design Mode
  4. Increase the full-zoom to 150%

Expected results

The text on the page gets re-rendered at the increased zoom level and looks sharp, comparable to viewing the page at 150% outside of RDM.

Actual results

The text appears to be scaled up without re-rendering, resulting in a blurry look.

Hmm.. it's staying sharp for me. Could be a platform or prefs issue? Here's the ones that I have set to non-default values that could possibly be relevant. I'm on macOS:

apz.allow_zooming true
apz.minimap.enabled true
devtools.responsive.touchSimulation.enabled true
devtools.responsive.viewport.pixelRatio 2
devtools.responsive.browserUI.enabled true
gfx.webrender.all true

Does any of this change the outcome for you?

Flags: needinfo?(botond)
Assignee: nobody → bwerth

Yes, disabling WebRender fixes the issue!

Adjusting bug title to reflect that this is specific to non-WebRender.

Flags: needinfo?(botond)
Summary: Text is blurry in Responsive Design Mode with full zoom > 100% → Text is blurry in Responsive Design Mode with full zoom > 100% (with WebRender disabled)

This is a regression. I'm working on a regression window.

Keywords: regression

Regression window points to bug 1633938.

Regressed by: 1633938
Has Regression Range: --- → yes
Blocks: rdm-touch
Severity: -- → S3
Priority: -- → P3
Status: NEW → ASSIGNED

(In reply to Botond Ballo [:botond] from comment #2)

Yes, disabling WebRender fixes the issue!

Adjusting bug title to reflect that this is specific to non-WebRender.

I re-tested with gfx.webrender.all false and still can't reproduce (on macOS). Platform-specific to Linux? Maybe include a video in case I'm not following your steps correctly.

Flags: needinfo?(botond)

Unfortunately, gfx.webrender.all=false does not disable WebRender if it's enabled by default, you have to use gfx.webrender.force-disabled=true (see bug 1585091).

Note, you can always check whether WebRender is actually enabled by going to about:support and checking Graphics -> Features -> Compositing. If WebRender is enabled, it will say "WebRender", otherwise it will say something else (e.g. "Basic" or "OpenGL").

Flags: needinfo?(botond)

(In reply to Botond Ballo [:botond] from comment #6)

Unfortunately, gfx.webrender.all=false does not disable WebRender if it's enabled by default, you have to use gfx.webrender.force-disabled=true (see bug 1585091).

Note, you can always check whether WebRender is actually enabled by going to about:support and checking Graphics -> Features -> Compositing. If WebRender is enabled, it will say "WebRender", otherwise it will say something else (e.g. "Basic" or "OpenGL").

Great, I can reproduce now. Thank you. So the root cause is likely some path in APZ that isn't being hit, where the textures would be resampled when zoom is applied. Must be confused by the layer context(?). I'll go looking for it. Any insights you can provide into how those paths work will likely reduce the time it will take me to find a solution.

While APZ does have the ability to scale up a rendered texture in the compositor, I would expect this to come into play only during pinch-zooming (and then only temporarily). For full-zoom changes, I would expect the main-thread to repaint at a new scale that factors in the full-zoom from the get-go.

So, I think the place to start looking is the place where the main thread chooses a scale at which to rasterize content and takes into account transforms. For non-WebRender, I believe that's around here.

WebRender is the future. I'm marking this as lower priority.

Priority: P3 → P4

I'm getting pulled onto other things. Taking myself off for now.

Assignee: bwerth → nobody
Status: ASSIGNED → NEW

This was fixed by the removal of Basic compositing in favor of Software Webrender.

Status: NEW → RESOLVED
Closed: 2 years ago
Depends on: sw-wr
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.