Black rects at the bound when scrolling long pages of text

RESOLVED INCOMPLETE

Status

()

defect
RESOLVED INCOMPLETE
6 years ago
5 years ago

People

(Reporter: jimm, Unassigned)

Tracking

26 Branch
x86_64
Windows 8.1
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [metro] [gfx] r=ff31)

Reporter

Description

6 years ago
Despite all our fixes I'm still seeing this quite a bit on certain pages. A good test case is the alice in wonderland gutenberg page or a tbpl log. 

http://www.gutenberg.org/files/11/11-h/11-h.htm
Reporter

Updated

6 years ago
Whiteboard: [triage] → [triage][metro]
Whiteboard: [triage][metro] → [triage] [metro] [gfx]
Sounds like checkerboarding. Displayport heuristics can be tuned further, but perhaps a better solution for the longer term is to turn on tiling and start using the critical display port in APZC (thereby allowing a much larger displayport).
Depends on: 942750
Whiteboard: [triage] [metro] [gfx] → [metro] [triage] [gfx]
Whiteboard: [metro] [triage] [gfx] → [metro] [gfx]
Reporter

Comment 2

6 years ago
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #1)
> Sounds like checkerboarding. Displayport heuristics can be tuned further,
> but perhaps a better solution for the longer term is to turn on tiling and
> start using the critical display port in APZC (thereby allowing a much
> larger displayport).

What's the "critical display port"? Would this help to make sure the display port calculated in CalculatePendingDisplayPort better matches what will be on the screen in the next composition update?
(In reply to Jim Mathies [:jimm] from comment #2)
> What's the "critical display port"? Would this help to make sure the display
> port calculated in CalculatePendingDisplayPort better matches what will be
> on the screen in the next composition update?

When tiling is enabled, the critical displayport is basically the set of tiles that we designate as being needed immediately to avoid checkerboarding. The displayport is then a larger area outside that, which can be drawn more "at leisure" (i.e. during idle time). The displayport may also be drawn at a lower resolution - I forget the exact details now but Chris Lord would be able to provide more info. Either way it's not currently relevant since we don't have tiling enabled.
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #3)
> (In reply to Jim Mathies [:jimm] from comment #2)
> > What's the "critical display port"? Would this help to make sure the display
> > port calculated in CalculatePendingDisplayPort better matches what will be
> > on the screen in the next composition update?
> 
> When tiling is enabled, the critical displayport is basically the set of
> tiles that we designate as being needed immediately to avoid
> checkerboarding. The displayport is then a larger area outside that, which
> can be drawn more "at leisure" (i.e. during idle time). The displayport may
> also be drawn at a lower resolution - I forget the exact details now but
> Chris Lord would be able to provide more info. Either way it's not currently
> relevant since we don't have tiling enabled.

Basically this. The critical displayport is drawn as it currently is now, the larger displayport will always be drawn progressively, one tile at a time, and at a lower resolution (the idea being that you'd only ever see it for very short periods). It requires progressive rendering to be enabled.
Reporter

Comment 5

6 years ago
(In reply to Chris Lord [:cwiiis] from comment #4)
> (In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #3)
> > (In reply to Jim Mathies [:jimm] from comment #2)
> > > What's the "critical display port"? Would this help to make sure the display
> > > port calculated in CalculatePendingDisplayPort better matches what will be
> > > on the screen in the next composition update?
> > 
> > When tiling is enabled, the critical displayport is basically the set of
> > tiles that we designate as being needed immediately to avoid
> > checkerboarding. The displayport is then a larger area outside that, which
> > can be drawn more "at leisure" (i.e. during idle time). The displayport may
> > also be drawn at a lower resolution - I forget the exact details now but
> > Chris Lord would be able to provide more info. Either way it's not currently
> > relevant since we don't have tiling enabled.
> 
> Basically this. The critical displayport is drawn as it currently is now,
> the larger displayport will always be drawn progressively, one tile at a
> time, and at a lower resolution (the idea being that you'd only ever see it
> for very short periods). It requires progressive rendering to be enabled.

Hey Bas, you mentioned in a gfx meeting a while back something about tiling and d2d. I assuming this is the same as Chris's "progressive rendering". Are there any bugs filed on getting this running for Windows? I'd like to put together a tracking bug we could follow on tiling for the metro browser.
Flags: needinfo?(bas)
(In reply to Jim Mathies [:jimm] from comment #5)
> Hey Bas, you mentioned in a gfx meeting a while back something about tiling
> and d2d. I assuming this is the same as Chris's "progressive rendering". Are
> there any bugs filed on getting this running for Windows? I'd like to put
> together a tracking bug we could follow on tiling for the metro browser.

Tiling is not progressive rendering. Progressive rendering is a feature we've built on top of tiling that allows page updates to be split into batches of tiles and for it to yield between renders to improve latency and allow for rendering to be cancelled in favour of more recent requests.

Tiling itself is just the layer image buffer being split into multiple, small(ish) tiles instead of just one contiguous buffer. This allows for more efficient resizing and updating (for the most part).

Leaving the needinfo for the other questions.
Jim, we have the priority list line item for tiling on desktop platforms, but we only currently have a bug 916812 for the Mac, and as far as I know, we don't have one for Windows.  Let me know if you put the Windows tiling bug in, and I'll add it to the priority list as a reference as well.
Flags: needinfo?(bas)
Reporter

Comment 8

6 years ago
(In reply to Milan Sreckovic [:milan] from comment #7)
> Jim, we have the priority list line item for tiling on desktop platforms,
> but we only currently have a bug 916812 for the Mac, and as far as I know,
> we don't have one for Windows.  Let me know if you put the Windows tiling
> bug in, and I'll add it to the priority list as a reference as well.

I haven't filed it, I wouldn't know what to file. :)
I filed bug 967158 for tiling on metro.
While tiling would help, the only way to guarantee never seeing checkerboard is to actually stop our code from ever showing unrendered content. We should consider this... Marking bug 967502 as blocking.
Depends on: 967502
Depends on: 968505
Whiteboard: [metro] [gfx] → [metro] [gfx] r=ff31
I'm going to close this bug since checkerboarding is something we have to live with. We already have other bugs on file for helping to reduce it and we are not actively working on Metro so this bug specifically is unlikely to see any action.
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.