All users were logged out of Bugzilla on October 13th, 2018

BasicTextureImage doesn't handle partial updates correctly

RESOLVED FIXED

Status

()

RESOLVED FIXED
8 years ago
8 years ago

People

(Reporter: vlad, Assigned: vlad)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment, 1 obsolete attachment)

Created attachment 458137 [details] [diff] [review]
fix offsets

BasicTextureImage creates a surface for a sub-region of its total area, but doesn't set surface offsets correctly.  Thus the context is always rendered to as if it were at 0,0, leading to incorrect rendering.  This wasn't visible before retained layers, because we'd always only render the full layer and never a partial area on it.  The attached patch fixes things.

While looking into this, the code at http://hg.mozilla.org/mozilla-central/file/def9068a4446/gfx/layers/opengl/ThebesLayerOGL.cpp#l147 breaks my head a little, specifically the MoveBy and Translate.  I don't have anything specific there, but it's worth a closer look.
Attachment #458137 - Flags: review?(jones.chris.g)
Created attachment 458151 [details] [diff] [review]
fix offsets, v2

There was something quirky going on there, though not what I thought it was.  The second part of the problem was that BeginUpdate was modifying the passed-in region (to request a full rectangle repaint), but that request was being ignored.  We need to take that into account.

With this patch I can render everything I've tried with the GL layers backend with no errors.
Attachment #458137 - Attachment is obsolete: true
Attachment #458151 - Flags: review?(jones.chris.g)
Attachment #458137 - Flags: review?(jones.chris.g)
Comment on attachment 458151 [details] [diff] [review]
fix offsets, v2

Thanks.

I'm now thoroughly confused about your if-bracing style.  The \n's eliminated here, I added because of your review comments.
Attachment #458151 - Flags: review?(jones.chris.g) → review+
http://hg.mozilla.org/mozilla-central/rev/94a7bfb72dfa
Status: NEW → RESOLVED
Last Resolved: 8 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.