Closed Bug 1688921 Opened 4 years ago Closed 4 years ago

Gpu cache requires GL_EXT_color_buffer_float or GL_EXT_copy_image

Categories

(Core :: Graphics: WebRender, defect)

Unspecified
Android
defect

Tracking

()

RESOLVED FIXED
87 Branch
Tracking Status
firefox87 --- fixed

People

(Reporter: jnicol, Assigned: jnicol)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

I'm trying to bring up webrender on a Huawei MediaPad M2 (Mali-T628).

This doesn't support GL_EXT_color_buffer_float, meaning we cannot render to RGBAF32 textures, so we use the PixelBuffer gpu cache bus method. However, we currently need to copy the old gpu cache texture to the new one whenever the GPU cache is resized. As this device does not support GL_EXT_copy_image we attempt to create the texture with an FBO, but this fails due to color_buffer_float not being supported.

When neither color_buffer_float and copy_image are supported, we should continue to use the PixelBuffer bus method, and simply re-upload the entire contents whenever the cache is resized.

Currently when the GPU cache is resized we allocate a new texture and
then copy the contents of the old texture to the new texture. This
copy requires either EXT_copy_image (for glCopyImageSubData) or
EXT_color_buffer_float (to bind the RGBAF32 texture to a framebuffer).

On devices where neither extension is supported, don't attempt to copy
the old texture. Instead mark the entire CPU-side copy of the cache as
dirty, meaning we will subsequently upload the entire contents to the
new texture. (A complete CPU-side copy is only mainted for the
PixelBuffer gpu cache bus type, not for Scatter ones. However, as the
Scatter type also requires EXT_color_buffer_float, we will only be in
this situation for PixelBuffer buses.)

Pushed by jnicol@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/b637d5833277 Support GPU cache resize when EXT_color_buffer_float is not supported. r=kvark
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 87 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: