Universal filtering support for WR shared texture cache entries
Categories
(Core :: Graphics: WebRender, enhancement, P3)
Tracking
()
People
(Reporter: kvark, Unassigned)
References
(Blocks 1 open bug)
Details
Currently, shared texture cache pages have the hardcoded sampling mode associated to them: we have A8 and A16 with only linear sampling, and RGBA8 with both linear and nearest. These are still different textures. If the client requests a nearest-sampled alpha texture, we fall back to a standalone entry, that poses a risk of blowing the draw call count (since it will be a separate draw call).
When swizzling support got implemented in bug 1548339, we started splitting batches even within the same texture page, based on the swizzling parameter. GL device module took care of adjusting the texture parameters for a draw call so that the swizzling is set up as expected.
Technically, we could do the same with sampling modes. We could have shared texture cache page that are only different per image format. And within each texture we could be placing entries of different sampling and swizzling. We'd still be splitting batches based on the sampling mode, like we do today, but we'd be able to:
- place the texture data more efficiently, given that nearest and linearly sampled entries would be able to exist on the same layer
- support more cases in the shared cache, like nearest A8 and A16 entries
Updated•6 years ago
|
Updated•2 years ago
|
Description
•