gecko-dev/gfx
Dzmitry Malyshau 4d7909d785 Bug 1548339 - WR swizzle configuration of texture units r=gw
Allow the swizzle to be configurable with a texture binding. This is still experimental and needs to be tested well on all platforms.
Basic approach is the following:
  - WR device figures out how it can use BGRA and makes the texture cache format configurable at run-time. It tries to make the uploads to the shared texture cache pages to be done without any driver conversions, and without extra memory allocated.
  - it also reports the preferred input format for the images, which may be different from the texture cache format
  - if WR texture cache is asked to allocate a shared texture with a different (swizzled) format from the preferred, it associates the cache entry with a swizzle
  - the swizzle becomes a part of the `SourceTexture`, which affects batch splitting
  - when a texture reaches binding by GL device, it checks whether the current swizzle on this texture doesn't match the given one, and configures the texture sampling accordingly
  - we can't use blits with swizzling, so when that needs to happen we use `cs_copy` path, which is now mostly rewritten

The idea is that Gecko would ask WR for the preferred format and configure its image decoding to produce image data that doesn't require any swizzling.

The PR changes existing texture upload (and batching) paths. On Linux, if texture storage is available, we now use it and provide the data as RGBA, assuming no conversion by the driver. The swizzling kicks in when we sample this data in the shader. On Windows/Angle we use BGRA as an internal format for texture cache and expect Gecko to provide BGRA data, this should be unchanged.

Differential Revision: https://phabricator.services.mozilla.com/D21965

--HG--
extra : moz-landing-system : lando
2019-07-26 14:55:50 +00:00
..
2d Bug 1543359 - P3. Add kCVPixelFormatType_420YpCbCr8BiPlanarFullRange support to MacIOSurface. r=mattwoodrow 2019-07-26 08:45:35 +00:00
angle Bug 1559975: Fix python2/3 compat in gfx/ r=ahal 2019-07-05 14:28:55 +00:00
cairo Bug 1512504 - Remove support for MSVC. r=froydnj 2019-02-14 21:45:27 +00:00
config Bug 1567347 - Add option of using DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL without DirectComposition r=nical 2019-07-19 09:26:03 +00:00
docs Bug 1560149 - Add some documentation for document splitting. r=dthayer 2019-07-02 00:53:07 +00:00
gl Bug 1543359 - P7. Plumb YUV Color Range info in Windows' Image types. r=mattwoodrow 2019-07-26 08:45:30 +00:00
graphite2 Bug 1515629 - Update Graphite2 to version 1.3.13. r=jfkthame 2018-12-31 15:56:58 +00:00
harfbuzz Bug 1559975: Fix python2/3 compat in gfx/ r=ahal 2019-07-05 14:28:55 +00:00
ipc Bug 1543359 - P0. Make video range info an enum. r=mattwoodrow 2019-07-26 08:45:22 +00:00
layers Bug 1563717 - Mark pinch-zoom-position-sticky.html as failing on webrender. r=tnikkel 2019-07-27 02:31:37 +00:00
ots Bug 1531912 - Update OTS to 7.1.9. r=jfkthame 2019-03-02 15:32:15 +00:00
qcms Bug 1558883 - Add QCMS transform correctness and performance tests. r=miko 2019-06-25 09:45:56 -04:00
sfntly Bug 1523969 part 8 - Move method definition inline comments to new line in 'gfx/'. r=kats 2019-02-25 16:07:19 -06:00
skia Bug 1553818 - use GDI ClearType contrast for GDI font gamma. r=jrmuizel 2019-07-24 18:51:28 +00:00
src Bug 1563139 - Remove StaticPrefs.h. r=glandium 2019-07-26 01:10:23 +00:00
tests Bug 1543359 - P6. Add backend for color range information. r=mattwoodrow. 2019-07-26 08:45:31 +00:00
thebes Bug 1569174 - disable embedded bitmaps if ClearType rendering mode is forced. r=jfkthame 2019-07-30 02:55:48 +00:00
vr Bug 1569622 - Call VRManager::StartFrame directly instead of using a PostTask on Android. r=kip,rbarker 2019-07-30 00:11:37 +00:00
webrender_bindings Bug 1548339 - WR swizzle configuration of texture units r=gw 2019-07-26 14:55:50 +00:00
wr Bug 1548339 - WR swizzle configuration of texture units r=gw 2019-07-26 14:55:50 +00:00
ycbcr Bug 1563139 - Remove StaticPrefs.h. r=glandium 2019-07-26 01:10:23 +00:00
moz.build Bug 1536162 - Update bugzilla component for gfx/wr. r=jrmuizel 2019-03-21 20:40:57 +00:00