Gpu cache requires GL_EXT_color_buffer_float or GL_EXT_copy_image
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox87 | --- | fixed |
People
(Reporter: jnicol, Assigned: jnicol)
References
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.
Assignee | ||
Comment 1•4 years ago
|
||
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.)
Comment 3•4 years ago
|
||
bugherder |
Description
•