Closed Bug 1048110 Opened 11 years ago Closed 11 years ago

Tiling doesn't handle padding correctly

Categories

(Core :: Graphics: Layers, defect)

29 Branch
x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla34

People

(Reporter: mattwoodrow, Assigned: mattwoodrow)

References

(Depends on 1 open bug)

Details

Attachments

(2 files, 1 obsolete file)

Jeff fixed this for mobile with bug 1023473, but that fix doesn't help the path we use on desktop. I want to fix this the same way we do for other backends, by padding the region we draw out to include all pixels that might potentially be sampled. This makes the extra pixels either contain real content (if some exists) or transparent if not. This isn't the same as clamping (which is what 1023473 implements) but it's much simpler and won't give us artifacts of undefined content.
This matches our RotatedBuffer etc logic for avoiding resampling issues for complex regions. We still have resampling issues for the 'outer' edges of buffers which previously were on the edge of a texture (and thus got CLAMP behaviour) and now likely exist in the middle of a tile.
Attachment #8466882 - Flags: review?(bas)
This should make sure we have a border of real content/transparent pixels around the visible region so we always sample from something sane. It could be improved slightly by not expanding edges that already sit on a tile boundary. I'll have a look into doing that.
Attachment #8466883 - Flags: feedback?(jmuizelaar)
Comment on attachment 8466882 [details] [diff] [review] Expand complex regions out if we're resampling Review of attachment 8466882 [details] [diff] [review]: ----------------------------------------------------------------- This has me a little worried. This increases the potential for overfill significantly which is bad. There's better things we can do here by using slightly more complex vertex buffers. Longer term that's in my opinion what we should be looking into. ::: gfx/layers/composite/ContentHost.h @@ +74,2 @@ > {} > + nit: whitespace ::: gfx/layers/composite/TiledContentHost.cpp @@ +342,5 @@ > if (!mLowPrecisionTiledBuffer.HasDoubleBufferedTiles()) { > mLowPrecisionTiledBuffer.ReadUnlock(); > } > } > + nit: whitespace
Attachment #8466882 - Flags: review?(bas) → review+
Attachment #8466883 - Attachment is obsolete: true
Attachment #8466883 - Flags: feedback?(jmuizelaar)
Attachment #8467439 - Flags: review?(bas)
Attachment #8467439 - Flags: review?(bas) → review+
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla34
Flags: needinfo?(matt.woodrow)
Depends on: 1051134
Depends on: 1152838
Depends on: 1446245
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: