Commit Graph

34389 Commits

Author SHA1 Message Date
thomasmo
94cc4efcb3 Bug 1570125 - Create VR window via vrhost r=kip,mossop
This change creates the new export CreateVRWindow from vrhost.dll. This API
results in spawning a new Firefox window with the Firefox Reality 2D UI and
returns data needed for the host to interact with it. VRShMem is used to pass
data across process boundaries during this bootstrap process.

Additional tests are added to vrhost to be later converted to unittests.

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

--HG--
rename : gfx/vr/vrhost/vrhost.cpp => gfx/vr/vrhost/vrhosttest.cpp
extra : moz-landing-system : lando
2019-08-02 20:55:48 +00:00
Imanol Fernandez
0bf3c0b8ac Bug 1570671 - Stop VRManager timer tasks when the application goes to background. r=kip
Stop VRManager timer tasks when the application goes to background.

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

--HG--
extra : moz-landing-system : lando
2019-08-02 22:13:56 +00:00
Jeff Gilbert
9d744e0fdb Bug 1562462 - ANGLE Cherry-pick: Fix occasional corruption of vertex textures in HD4600 GPUs for WebRender. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D40354

--HG--
extra : moz-landing-system : lando
2019-08-02 01:56:17 +00:00
Jeff Gilbert
b29b969839 Bug 1562462 - Revert py-2to3 changes on py3 files from bug 1559975. NPOTB
Differential Revision: https://phabricator.services.mozilla.com/D40353

--HG--
extra : moz-landing-system : lando
2019-08-02 00:48:06 +00:00
Kearwood "Kip" Gilbert
5bd4ceaa42 Bug 1570075 - WebXR: Extend VRDisplayState and VRDisplayCapabilityFlags r=imanol
In order to support the WebXR implementation, VRDisplayState is being extended to enumerate the type of sessions a device supports (Inline, Immersive-VR, or Immersive-AR) and to report if the blend mode for AR would be additive or alpha blended).

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

--HG--
extra : moz-landing-system : lando
2019-07-31 11:46:48 +00:00
Lee Salzman
4f06706e18 Bug 1569950 - only partially clear WR glyph caches if it is not necessary to fully clear. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D40361

--HG--
extra : moz-landing-system : lando
2019-08-02 15:11:47 +00:00
Dzmitry Malyshau
94761858ca Bug 1564118 - WR don't assume opaque on the lack of a clip task
those unwrap_or are mostly seen during the batching, where we should asssume that
the primitives are not clipped out and just unwrap() accordingly.

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

--HG--
extra : moz-landing-system : lando
2019-08-02 14:48:46 +00:00
Dzmitry Malyshau
d109b775bd Bug 1570816 - Disallow nerest-sampled alpha textures in the shared cache in WR r=gw
Differential Revision: https://phabricator.services.mozilla.com/D40366

--HG--
extra : moz-landing-system : lando
2019-08-02 04:03:55 +00:00
Ciure Andrei
78c513784e Backed out changeset 9ab4ca317e30 (bug 1570671) for causing VRManager.cpp bustages CLOSED TREE 2019-08-02 03:16:18 +03:00
Imanol Fernandez
e2e9ce9c61 Bug 1570671 - Stop VRManager timer tasks when the application goes to background. r=kip
Stop VRManager timer tasks when the application goes to background.

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

--HG--
extra : moz-landing-system : lando
2019-08-01 17:12:16 +00:00
Dzmitry Malyshau
13c8d55d12 Bug 1570401 - WR early out on transformed ClipOut clips r=gw
Refactors get_clip_result_complex to cover ClipOut cases for rectangles as well
as Clip for non-repeated images.

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

--HG--
extra : moz-landing-system : lando
2019-08-01 02:07:21 +00:00
Timothy Nikkel
7184148ba0 Bug 1569215. In StackingContextHelper constructor pass parent scale to ChooseScale. r=jrmuizel
This might seem like we are including the parent scale twice because it is also included in mInheritedTransform but FrameLayerBuilder::ChooseScale only incorporates the passed in scale when combining it with a scale computed purely based on the local transform induced by this stacking context item.

This also fixes bug 1564698 and doesn't regress bug 1495163 (the only testcase I can still find for the regressing bug, bug 1415987).

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

--HG--
extra : moz-landing-system : lando
2019-08-01 02:03:19 +00:00
Barret Rennie
c32eee8ff0 Bug 1566915 - Do not ref count the CompositionRecorder r=mstange
Now that there is only ever a single handle to the `CompositionRecorder`, it no
longer needs to be ref-counted. And since the `WebRenderCompositionRecorder` is
owned exclusively by the `RenderThread`, it no longer needs a mutex. All the
code that resulted from having handles to the `WebRenderCompositionRecorder` on
two different threads is now no longer necessary.

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

--HG--
extra : moz-landing-system : lando
2019-07-31 18:28:47 +00:00
Barret Rennie
629a2f0b5d Bug 1566915 - Do not keep a handle to the composition recorder in the CompositorBridgeParent r=mstange
Since we are not writing frames to disk from the `CompositorBridgeParent` in
the WebRender case, we do not actually need a handle to the
`(WebRender)CompositionRecorder` there. Instead, the `HostLayerManager` and
`RenderThread` can maintain exclusive handles to these objects. This will allow
us to use unique pointers for these objects and delete code in a follow up
patch.

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

--HG--
extra : moz-landing-system : lando
2019-07-31 18:28:38 +00:00
Barret Rennie
4374f75f51 Bug 1566915 - Write collected frames from the composition recorder on the render thread r=kvark
On macOS, if we try to write the collected frames from the
`CompositorBridgeParent` we will not have an active GL context, resulting in a
crash. Writing the frames from the `RenderThread` solves this problem.

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

--HG--
extra : moz-landing-system : lando
2019-07-31 18:28:34 +00:00
Barret Rennie
0ea4a2cbed Bug 1569258 - Ensure we have a CompositionRecorder before attempting to write frames r=kvark,mstange
Instead of blindly attempting to write frames to disk, we now ensure that the
`CompositionRecorder` exists. In the case where we have not allocated one,
calling `windowUtils.setCompositionRecording(false)` will instead print an
error message to the browser console.

In addition, attempting to call `windowUtils.setCompositionRecording(true)`
while a `CompositionRecorder` exists will also result in an error message.

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

--HG--
extra : moz-landing-system : lando
2019-07-31 20:21:03 +00:00
Matt Woodrow
8a6d6da9ef Bug 1569974 - Don't try to deference an empty Maybe when starting CrossProcessPaint with a rect. r=rhunt
Differential Revision: https://phabricator.services.mozilla.com/D39964

--HG--
extra : moz-landing-system : lando
2019-07-31 19:01:05 +00:00
Jeff Muizelaar
201f9ee75b Bug 1570399. Revert the adjustment of the visible rect from bug 1565904. r=nical
This change was unintentional and may be responsible for the performance regression seen in
bug 1570256.

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

--HG--
extra : moz-landing-system : lando
2019-07-31 17:47:26 +00:00
Jamie Nicol
18ee326474 Bug 1562316 - Fix emoji rendering on android webrender. r=lsalzman
ScaledFontFreeType::GetWRFontInstanceOptions() was neglecting to set
the FontInstanceFlags::EMBEDDED_BITMAPS flag. This was causing us to
always take the non-bitmap path when rasterizing the glyph, which
fails on android because emoji fonts are bitmap only. Setting this
flag causes glyphs to be rendered correctly on android webrender.

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

--HG--
extra : moz-landing-system : lando
2019-07-31 15:43:52 +00:00
Joel Maher
ea680be1a5 Bug 1569916 - run reftest/crashtest on android-hw when gfx/* files change. r=ahal
run reftest/crashtest on android-hw when gfx/* files change.

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

--HG--
extra : moz-landing-system : lando
2019-07-31 13:43:59 +00:00
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
Timothy Nikkel
e4f60aaea0 Bug 1565039. In PicturePrimitive::take_context do calculation in float in case the unclipped rect is too big for int. r=gw
The final clipped result should hopefully not overflow.

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

--HG--
extra : moz-landing-system : lando
2019-07-30 09:06:31 +00:00
Imanol Fernandez
1f32c478c3 Bug 1569622 - Call VRManager::StartFrame directly instead of using a PostTask on Android. r=kip,rbarker
Call VRManager::StartFrame directly instead of using a PostTask on Android.

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

--HG--
extra : moz-landing-system : lando
2019-07-30 00:11:37 +00:00
Lee Salzman
9a69d270c0 Bug 1569174 - disable embedded bitmaps if ClearType rendering mode is forced. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D39749

--HG--
extra : moz-landing-system : lando
2019-07-30 02:55:48 +00:00
Dzmitry Malyshau
3692691268 Bug 1569717 - Fix WR vertex textures to have the width of 1024 r=gw
Differential Revision: https://phabricator.services.mozilla.com/D39785

--HG--
extra : moz-landing-system : lando
2019-07-29 23:07:37 +00:00
Barret Rennie
7629463ab1 Bug 1569443 - Free composition recorder structures when freeing Renderer r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D39752

--HG--
extra : rebase_source : b6e51714655a99fc80ea034c598e44667d1ae1fb
extra : source : e7cba26781e9e2bf66f84d9c9f4aa507be6d25bf
2019-07-29 21:25:04 +00:00
Connor Brewster
44d6e0ec22 Bug 1569101 - Add red zone padding to built display list during deserialization r=kamidphish
Differential Revision: https://phabricator.services.mozilla.com/D39464

--HG--
extra : rebase_source : 40e6b4c96be31c27c0379bf5e458a7b71a3901d6
2019-07-29 00:33:11 +00:00
Cosmin Sabou
4fefee3bd7 Backed out changeset e7cba26781e9 (bug 1569443) for causing webrender bustages. CLOSED TREE 2019-07-30 01:04:49 +03:00
thomasmo
de6f69fb39 Bug 1565296 - Implement Command Line Handler for FxR on desktop r=mossop,Gijs
This change adds functionality for the new command line argument, --fxr. This
will be used to create a new, separate browser window for Firefox Reality on
desktop.

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

--HG--
extra : moz-landing-system : lando
2019-07-29 20:11:27 +00:00
Barret Rennie
bacd83c5c1 Bug 1569443 - Free composition recorder structures when freeing Renderer r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D39752

--HG--
extra : moz-landing-system : lando
2019-07-29 21:25:04 +00:00
thomasmo
a4f1b3fdcd Bug 1563233 - Update VRManager to consume VRShMem r=kip,daoshengmu
This change replaces and removes code in VRManager that was refactored into the
new VRShMem class.

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

--HG--
extra : moz-landing-system : lando
2019-07-29 14:30:54 +00:00
shindli
2311ab23b6 Backed out changeset bdb7f8baac7e (bug 1569101) for causing wrench bustages in /builds/worker/workspace/build/tooltool.tt 2019-07-29 04:53:11 +03:00
Connor Brewster
f74585e5e5 Bug 1569101 - Add red zone padding to built display list during deserialization r=kamidphish
Differential Revision: https://phabricator.services.mozilla.com/D39464

--HG--
extra : moz-landing-system : lando
2019-07-29 00:33:11 +00:00
Botond Ballo
3561a852a5 Bug 1563717 - Mark pinch-zoom-position-sticky.html as failing on webrender. r=tnikkel
WebRender handling of position:sticky is buggy in the presence of zooming.
The fix for bug 1563717 exposes this bug in pinch-zoom-position-sticky.html.

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

--HG--
extra : moz-landing-system : lando
2019-07-27 02:31:37 +00:00
Botond Ballo
a2fc3d72a6 Bug 1563717 - Divide the RCD-RSF ScrollFrame item's clip rect by the resolution. r=kats
The clip rect is derived from the composition bounds, which is in units that
are outside the resolution, but it's applied to the ScrollFrame item which is
inside the resolution.

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

--HG--
extra : moz-landing-system : lando
2019-07-27 02:31:37 +00:00
Lee Salzman
16b17ace8c Bug 1568841 - force GDI parameters for GDI render mode. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D39529

--HG--
extra : moz-landing-system : lando
2019-07-26 16:49:14 +00:00
Lee Salzman
08eecf9eae Bug 1568858 - always stretch box shadows except for Cairo. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D39412

--HG--
extra : moz-landing-system : lando
2019-07-26 16:31:21 +00:00
sotaro
d8d05ff21a Bug 1569110 - Add ClientLayerManager::Initialize() r=nical
Some initialization handlings of ClientLayerManager exists in nsBaseWidget::CreateCompositor(). It is not good. Move them to ClientLayerManager::Initialize().

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

--HG--
extra : moz-landing-system : lando
2019-07-26 09:31:57 +00:00
Jean-Yves Avenard
1616a6d914 Bug 1543359 - P14. Fix "Wrench" test r=nical
Differential Revision: https://phabricator.services.mozilla.com/D39475

--HG--
extra : moz-landing-system : lando
2019-07-26 09:32:37 +00:00
Jean-Yves Avenard
577b826128 Bug 1543359 - P13. Let the video decoder determines the default colorspace if unknown. r=mattwoodrow
When unknown, we rely on the picture height and assume that anything less than 720p is 601 and 709 otherwise. It's not perfect but it's the best we can do.

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

--HG--
extra : moz-landing-system : lando
2019-07-26 08:45:39 +00:00
Jean-Yves Avenard
2118adec3f Bug 1543359 - P12. Fix colorspace rendering with IOSurface and basic compositor. r=mattwoodrow
It got missed in bug 1540581.

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

--HG--
extra : moz-landing-system : lando
2019-07-26 08:45:40 +00:00
Jean-Yves Avenard
4bf7d9afd7 Bug 1543359 - P11. Remove redundant virtual keyword. r=mattwoodrow
It got missed in an earlier change

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

--HG--
extra : moz-landing-system : lando
2019-07-26 08:45:17 +00:00
Jean-Yves Avenard
0356401c43 Bug 1543359 - P10. Add color range info to GPU and WR texture host. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D27243

--HG--
extra : moz-landing-system : lando
2019-07-26 08:45:24 +00:00
Jean-Yves Avenard
235b08fe18 Bug 1543359 - P9. Add YUV range information to NV12Effect and YCbCrEffect. r=mattwoodrow
This is used by the OGL and D3D11 compositors.

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

--HG--
extra : moz-landing-system : lando
2019-07-26 08:45:26 +00:00
Jean-Yves Avenard
c4def0fb6f Bug 1543359 - P7. Plumb YUV Color Range info in Windows' Image types. r=mattwoodrow
Still non-functional.

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

--HG--
extra : moz-landing-system : lando
2019-07-26 08:45:30 +00:00
Jean-Yves Avenard
de19fb7f7e Bug 1543359 - P6. Add backend for color range information. r=mattwoodrow.
Add code for YCbCr buffer and IOSurface backend.

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

--HG--
extra : moz-landing-system : lando
2019-07-26 08:45:31 +00:00
Jean-Yves Avenard
6f3d5d8393 Bug 1543359 - P5. Use C++11 initializers. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D29642

--HG--
extra : moz-landing-system : lando
2019-07-26 08:45:19 +00:00
Jean-Yves Avenard
c070ea1f0e Bug 1543359 - P3. Add kCVPixelFormatType_420YpCbCr8BiPlanarFullRange support to MacIOSurface. r=mattwoodrow
This will allow to differentiate full range vs limited range YUV.

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

--HG--
extra : moz-landing-system : lando
2019-07-26 08:45:35 +00:00
Jean-Yves Avenard
0171b0edb2 Bug 1543359 - P2. Fix constness. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D29641

--HG--
extra : moz-landing-system : lando
2019-07-26 08:45:20 +00:00
Jean-Yves Avenard
e41290cb09 Bug 1543359 - P0. Make video range info an enum. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D29639

--HG--
extra : moz-landing-system : lando
2019-07-26 08:45:22 +00:00