Now that we create and allocate the TextureClients in one place, we don't need to have a fallback branch in ContentClient if the TextureClient was successfully created but we failed to allocate it. Instead, we can handle this directly in TextureClient::CreateForDrawing: the method can fallback to BufferTextureClient by itself is allocation failed. This lets us remove a texture flag that didn't really have the same kind of use than the other flags which is nice. The only notable change in behaviour is that other layer types will now also automatically have a fallback to BufferTextureClient, which is, I think, much better than cancelling rendering. It is still possible to fail to allocate the BufferTextureClient, but that should protect us against cases where we are out of "special" video memory while we still have normal memory left (like the gralloc allocation issues on keon/peak).
Created attachment 8461554 [details] [diff] [review] Handle falling back to BufferTextureClient directly in TextureClient::CreateForDrawing
Attachment #8461554 - Flags: review?(sotaro.ikeda.g)
Attachment #8461554 - Flags: review?(sotaro.ikeda.g) → review+
fixed build failures and pushed to try for the platforms that failed in the last push: https://tbpl.mozilla.org/?tree=Try&rev=1ccbd9a3fdf5
hopefully the last build fix https://tbpl.mozilla.org/?tree=Try&rev=7d86dbb42717
Status: NEW → RESOLVED
Last Resolved: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla34
You need to log in before you can comment on or make changes to this bug.