Without this, we have assertion failures as we fail to create our textures and subsequently
we have incomplete framebuffers. The present patch is a short-term compromise: to avoid
asserting, we just clamp texture sizes. That can result in fuzzy rendering. Ideally
(with some suitable tiling) we wouldn't have to do that.
Without this, we have assertion failures as we fail to create our textures and subsequently
we have incomplete framebuffers. The present patch is a short-term compromise: to avoid
asserting, we just clamp texture sizes. That can result in fuzzy rendering. Ideally
(with some suitable tiling) we wouldn't have to do that.
In my haste, I forgot to address review comments before pushing. This
corrects indentation in PanningPerf.java, moves GetValidLowPrecisionRegion from
Layer to TiledLayerComposer and corrects checkerboard measurement when there
isn't a low precision buffer and when the display ports don't cover the screen.
In my haste, I forgot to address review comments before pushing. This
corrects indentation in PanningPerf.java, moves GetValidLowPrecisionRegion from
Layer to TiledLayerComposer and corrects checkerboard measurement when there
isn't a low precision buffer and when the display ports don't cover the screen.
Reconcile the difference when rendering a buffer that has a different frame
resolution to the primary buffer. This is handy for low precision buffers that
are updated at a different rate to primary buffers.
The checkerboard measurement depended on the displayport coverage of the
viewport, which was calculated in LayerRenderer. When using a critical
displayport, this value changes, but this was not being accounted for.
We have all the context we need for this Gecko-side, so move this code into
LayerManagerOGL::ComputeRenderIntegrity and account for displayport coverage
correctly.
This is a rollup of the following patches
part 0: Add a dynamic cast to ColorLayer*
part 1: Add a Composer2D interface to enable implementations to more efficiently compose layer trees
part 2: Let widgets expose Composer2Ds, if they have them
part 3: Expose a layers ogl "friend" API that Composer2D will consume
part 4: Hook Composer2D into the LayerManagerOGL rendering pipeline
part 5: Implement all the goop to let widget/gonk use a Composer2D (HwcComposer2D)
This approach ends up calling BlitTextureImage three extra times instead of
changing BlitTextureImage to support rotated buffers.
Supporting rotated buffers in BlitTextureImage is somewhat tricky because of
TiledTextureImage, and calling it three more times shouldn't be too bad (it
should be better than having to repaint)
Unfortunately, the rectangle manipulation code is a bit hairy.
--HG--
extra : rebase_source : a1018a22932675b154b76533f403a1328aa29cb5
This approach ends up calling BlitTextureImage three extra times instead of
changing BlitTextureImage to support rotated buffers.
Supporting rotated buffers in BlitTextureImage is somewhat tricky because of
TiledTextureImage, and calling it three more times shouldn't be too bad (it
should be better than having to repaint)
Unfortunately, the rectangle manipulation code is a bit hairy.
--HG--
extra : rebase_source : a1018a22932675b154b76533f403a1328aa29cb5
Changes to FrameMetrics and progressive tiling caused ReusableTileStoreOGL
to basically not work anymore. Refactor to provide the same function as it did
previously taking into account the platform changes.