Commit Graph

421 Commits

Author SHA1 Message Date
Ryan Hunt
fff3bf05d6 Create a PaintWorker thread pool and dispatch tiles to it (bug 1425056, r=bas)
This commit adds a paint worker thread pool to PaintThread, and dispatches
tiled paints to it. The thread pool is only created if tiling is enabled,
and its size is set by 'layers.omtp.paint-workers' and defaults to 1. If
-1 is specified, it will be sized to 'max((cpu_cores * 3) / 4, 1)'.

The one tricky part of dispatching tiled paints to a thread pool is the
AsyncEndLayerTransaction message that must execute once all paints are
finished. Previously, this runnable would be queued after all the paints
had been queued, ensuring it would be run after they had all completed.

With a thread pool, there is no guarantee. Instead this commit, uses
a flag on CompositorBridgeChild to signify whether all of the paints
have been queued ('mOutstandingAsyncEndLayerTransaction'), and after
every tiled paint it is examined to see if that paint was the last
paint, and if it is to run AsyncEndLayerTransaction. In addition,
if the async paints complete before we even mark the end of the
layer transaction, we queue it like normal.

The profiler markers are also complicated by using a thread pool.
I don't know of a great way to keep them working as they are per
thread, so for now I've removed them. I may have been the only
one using them anyway.

MozReview-Commit-ID: 5LIJ9GWSfCn

--HG--
extra : rebase_source : 0c26806f337a1b4b1511945f9c72e787b426c5ba
2017-12-08 01:18:05 -06:00
Kartikaya Gupta
faa99bda0c Bug 1426191 - Update test_acceleration to check for webrender windows. r=dvander
MozReview-Commit-ID: gbBJs4OR9f

--HG--
extra : rebase_source : c165aa54e87dad2872b4eafdb8ca70b4ca6e994c
2017-12-21 09:25:07 -05:00
Andrew Osmond
675137dd9f Bug 1419767 - Remove gfxPlatform::CanRenderContentToDataSurface. r=nical
Factory::DoesBackendSupportDataDrawtarget already fulfills the same
purpose and we should use that instead, as imgFrame is the only user of
the former API. It has the added bonus of allowing us to use shared
surfaces on Linux with WebRender, and using volatile surfaces on Windows
when D2D is disabled.
2017-11-24 08:10:03 -05:00
Jonathan Kew
a889197da2 Bug 1412090 - patch 2 - Rework the fontconfig-based platform font list implementation to pass the list of available font patterns from chrome to content, instead of letting the content process get it directly from fontconfig. r=lsalzman 2017-11-02 20:29:33 +00:00
Jonathan Kew
c28cae074c Bug 1412090 - patch 1 - Wrap the font family record used to pass font info from chrome to content on macOS in a union, in preparation for using the same mechanism with a different type of font record on Linux. (No functional change here, just the added union type and some renamings from 'font family list' to 'font list' to be more generic.) r=lsalzman 2017-11-02 17:23:16 +00:00
Jonathan Kew
7036cc5f85 Backed out changesets 75e7f32c3365, eec946b59360, 72a6f5f3512c, ea8ee40ed426 (bug 1412090) for apparently breaking all system-installed fonts on some Linux systems. r=backout 2017-11-10 16:05:33 +00:00
Jonathan Kew
0ba9f9c57b Bug 1412090 - patch 2 - Rework the fontconfig-based platform font list implementation to pass the list of available font patterns from chrome to content, instead of letting the content process get it directly from fontconfig. r=lsalzman 2017-11-02 20:29:33 +00:00
Jonathan Kew
90bf3da506 Bug 1412090 - patch 1 - Wrap the font family record used to pass font info from chrome to content on macOS in a union, in preparation for using the same mechanism with a different type of font record on Linux. (No functional change here, just the added union type and some renamings from 'font family list' to 'font list' to be more generic.) r=lsalzman 2017-11-02 17:23:16 +00:00
Nicholas Nethercote
d225f7151b Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP

--HG--
rename : xpcom/ds/nsIAtom.h => xpcom/ds/nsAtom.h
extra : rebase_source : ac3e904a21b8b48e74534fff964f1623ee937c67
2017-10-03 09:05:19 +11:00
Alexis Beingessner
9022c22b82 Bug 1400382 - Replace explicit TextDrawTarget passing with cast-based system. r=mstange
MozReview-Commit-ID: EQtFvLQCT2U

--HG--
extra : rebase_source : 1fff1b545c18d42403cf9c30172528e553a6af48
2017-09-21 15:15:58 -04:00
Jonathan Kew
5f318d222b Bug 1334761 - Update ClearType usage at startup, and flush caches and reflow everything if it changes during the session. r=bas 2017-09-14 17:26:53 +01:00
Botond Ballo
236b0fa4f4 Bug 1394926 - Add APZ autoscroll information to about:support. r=kats
MozReview-Commit-ID: FlZNdHuoirG

--HG--
extra : rebase_source : 1cc352dc9a19c4a15d5bf7e75370a68c13024dda
2017-08-29 16:27:19 -04:00
Kevin Chen
9fa0238d13 Bug 1362321 - Do not crash in gfxPlatform:Init if there is a TDR happening; r=bas
MozReview-Commit-ID: 9gJCErHosg1

--HG--
extra : rebase_source : 6fc0e95b18ee795f2571d82ca81f3a72970142b3
2017-08-09 18:00:01 +08:00
Eric Rahm
79e2533076 Bug 1389598 - Part 1: Remove gonk references from gfx/ r=jrmuizel
--HG--
extra : rebase_source : f53ae270c09892d65d9119a109a29317834f81b1
2017-08-11 17:45:50 -07:00
Lee Salzman
a21ad6d19e Bug 1385029 - require implementation of gfxFont::GetScaledFont and remove unnecessary gfxPlatform::GetScaledFontForFont. r=jfkthame
MozReview-Commit-ID: GP1Aekecb0s
2017-08-07 16:20:44 -04:00
Jonathan Kew
10934e3b01 Bug 1381471 - Refactor gfxPlatform::IsFontFormatSupported implementations to put all the cross-platform behavior in the base class and remove most overrides. r=heycam 2017-07-20 09:57:00 +01:00
Cameron McCormack
c770a5a921 Bug 1376964 - Part 7: Remove unused nsIURI argument from gfxPlatform::IsFontFormatSupported. r=jfkthame
MozReview-Commit-ID: LJ6nnZEGz7D

--HG--
extra : rebase_source : 9f47d839aa4572ed2fc2d15a4986c8bc30d3f2ca
2017-07-08 14:17:23 +08:00
Carsten "Tomcat" Book
a269ba0e44 Backed out changeset aafb719b4379 (bug 1376964) 2017-07-12 12:41:29 +02:00
Cameron McCormack
ab22ddb3c6 Bug 1376964 - Part 7: Remove unused nsIURI argument from gfxPlatform::IsFontFormatSupported. r=jfkthame
MozReview-Commit-ID: LJ6nnZEGz7D

--HG--
extra : rebase_source : a12c270beb85467955c044c9c068d22de5db8f45
2017-07-12 16:36:15 +08:00
Carsten "Tomcat" Book
3a6a347356 Backed out changeset a60731cb1a7f (bug 1376964) 2017-07-12 10:32:15 +02:00
Cameron McCormack
c4d27f68a0 Bug 1376964 - Part 7: Remove unused nsIURI argument from gfxPlatform::IsFontFormatSupported. r=jfkthame
MozReview-Commit-ID: LJ6nnZEGz7D

--HG--
extra : rebase_source : 1636e695ca025e6fbcade8258746ffb38adc5b26
2017-07-12 13:03:35 +08:00
Kartikaya Gupta
78bfd54626 Bug 1378355 - Extract gfxPlatform wrappers for MaxAllocSize and MaxTextureSize. r=bas
This allows us to reuse the minimum bound guards on the pref values in other
places that want to use the prefs.

MozReview-Commit-ID: 7XKuM5u1GB8

--HG--
extra : rebase_source : 9cf85c7cbe2e8511ad2db59e7bf7ba6e8db79883
2017-07-10 10:15:24 -04:00
Ryan Hunt
557ad1c73c Bug 1351783 part 18 - Add async keyboard scrolling information to about:support. r=kats
MozReview-Commit-ID: LYEcRNgqZ35

--HG--
extra : rebase_source : f56e1da6733d1f41fdabcbb5d8b60087597fe4bb
extra : histedit_source : 42263e2042de7d9efba2fd445642f89ef64b7eea
2017-06-15 17:54:03 -04:00
Milan Sreckovic
012064db78 Bug 1337063: Transfer child's initial ContentDeviceData with SendSetXPCOMProcessAttributes - r=dvander
MozReview-Commit-ID: 8Er44xSDHhb

--HG--
extra : rebase_source : 464a09246ca095ba363f988fb9749680d8518926
2017-06-22 13:45:48 -04:00
Wes Kocher
871ead54fd Backed out 2 changesets (bug 1365772) for valgrind failures a=backout
Backed out changeset 3e869b1c08d0 (bug 1365772)
Backed out changeset 66b6c25cacc7 (bug 1365772)

MozReview-Commit-ID: DnIpbwb7KPS

--HG--
extra : rebase_source : 40e29234adb1837283e0bd4be18d96b4311db869
2017-06-19 13:53:23 -07:00
Alexis Beingessner
5267043bbc Bug 1365772 - Allow component alpha to be managed by blocklists. r=kats
MozReview-Commit-ID: 5iEuUtmfkLl

--HG--
extra : rebase_source : ca0c104a5c1923b21d3e40200e5a9ecd66fdebc2
2017-05-30 09:25:40 -04:00
Sebastian Hengst
905913ead5 Backed out changeset 112d854f652d (bug 1365772) for Windows bustage: 'gfxConfig': is not a class or namespace name at DeviceAttachmentsD3D11.cpp(179). r=backout on a CLOSED TREE
Valgrind also complains: Conditional jump or move depends on uninitialised value(s) at __get_cpuid / cpuid / read_cpu_features / operator
2017-06-19 18:23:50 +02:00
Alexis Beingessner
5c589ff480 Bug 1365772 - Allow component alpha to be managed by blocklists. r=kats
MozReview-Commit-ID: 5iEuUtmfkLl

--HG--
extra : rebase_source : 5c39798c464d790cd76254dedba4c76470dc2126
2017-05-30 09:25:40 -04:00
domfarolino@gmail.com
0fe1d756ab Bug 1369542 - Hook up OMTP to config/about:support/crash annotation system. r=dvander
--HG--
extra : rebase_source : dbf55894b92f7964ab6f64469394117179142f9a
2017-06-06 16:18:00 -04:00
Gerald Squelart
bc7b6779e4 Bug 1356138 - Backout bug 1337063 (Msg_GetGraphicsDeviceInitData opt) for Talos regression - r=dvander
MozReview-Commit-ID: LS1Gg1HRwKo

--HG--
extra : rebase_source : 8b20bc37b20feac4c0b590c8b286a9ee834646e2
2017-05-09 14:40:11 +12:00
Nicholas Nethercote
625d4520a7 Bug 1357298 - Remove the 'layers.frame-counter' option. r=mstange,mattwoodrow.
This option turns on a frame counter that is shown in the top left corner via a
QR code. It was designed to be used in video recordings of B2G phones.

It no longer seems useful, so this patch removes it.
* * *
Bug 1357298 - Remove all traces of frame numbers and power from the profiler output. r=mstange.

--HG--
extra : rebase_source : 0ce87963ce375df64bb8d80ef2b5d40ea507bc7c
2017-04-18 15:40:24 +10:00
Gerald Squelart
63dbe37188 Bug 1337063 - Transfer child's initial ContentDeviceData with SendSetXPCOMProcessAttributes - r=dvander
MozReview-Commit-ID: IWCgL9aCusW

--HG--
extra : rebase_source : 31d901f99105224ac7445b487813b010fd643bb9
2017-04-12 09:37:35 +12:00
Brendan Dahl
a1f2e12af8 Bug 1338004 - Add headless browser mode. r=jrmuizel, r=ted
Supports creating a windowless browser on Linux without an X server. Most of the
changes are just adding branches to avoid calls in to GTK which calls
into X. Some of the bigger additions were adding a separate headless widget
which implements just enough to render a page. A headless look and
feel were also added since there are many calls into GTK in the platform
specific one.
2017-04-04 10:22:00 -04:00
Masayuki Nakano
59a906fb1a Bug 1344990 part.3 Implement nsIFontEnumerator::GetDefaultFont() as returning first available font in font.name-list.* r=jfkthame
nsIFontEnumerator::GetDefaultFont() returns always nullptr.  However, it's used in font setting UI at creating drop down list of available fonts.  So, if we implement this as returning first available font of "font.name-list.*", it's what is the necessary UI for "default" font when "font.name.*" is empty string.

So, with this patch, the top item of font list becomes "Default (%s)" if there is available font.

MozReview-Commit-ID: cRU8gixgdF

--HG--
extra : rebase_source : beca7b7d2d423f08d35358fc84b731e817724835
2017-04-03 21:00:14 +09:00
Kartikaya Gupta
e98f75a57a Bug 1282306 - More correctly describe APZ touch support in about:support. r=botond
Instead of just reporting the value of the pref, also make sure that about:support
incorporates the runtime check of whether or not a touch device was discovered
in the widget code. The code to do this already exists in TouchEvent::PrefEnabled,
so we can just reuse that.

MozReview-Commit-ID: DN7FSlsDwD1

--HG--
extra : rebase_source : efb3d66e1669f8f2b038888ef2b1c8bb83f1c710
2017-03-10 15:18:48 -05:00
Ryan Hunt
b782e91daf Bug 1337487 - Disable WebRender on windows when the GPU process is disabled r=kats
--HG--
extra : amend_source : 0203452b319c21331f1f0ebcd74e3f843b7785e1
2017-02-09 00:33:54 -06:00
George Wright
97a8750da1 Bug 1314803 - Report correct values for Azure backends when the GPU process is enabled on Windows r=mattwoodrow 2017-01-26 16:19:27 -05:00
David Anderson
867def8b5f Remove the device counter mechanism from gfxPlatform. (bug 1333329 part 2, r=rhunt)
--HG--
extra : rebase_source : 70a5f23b3ea8a19e55351d4b7f5d4fadc6752f69
2017-01-24 11:23:11 -08:00
Lee Salzman
d5f91aa244 Bug 1309205 - part 1 - allow querying FT_Library from gfxPlatform so that Moz2d Factory can use it. r=jfkthame
MozReview-Commit-ID: 7kxseOOVvWi
2017-01-04 14:00:17 -05:00
Milan Sreckovic
dd0c296f12 Bug 1321075: Check if the backend is friendly to data draw target creation before attempting to make it. r=bas
MozReview-Commit-ID: 8jvUvrmCTAY

--HG--
extra : rebase_source : 1325c3cc3a1b02b96bb4b3cb249afeeae7a77864
2016-11-29 15:46:49 -05:00
Nicolas Silva
a247565f19 Bug 1309200 - Add gfxPlatfrom::GetSoftwareBackend. r=Bas 2016-11-28 09:40:29 +01:00
Jonathan Kew
eb88ca57ad Bug 1314932 - Reduce content-process startup time on MacOSX by passing the system font list from chrome to content process via the GetXPCOMProcessAttributes message. r=mstange 2016-11-15 13:58:29 +00:00
Carsten "Tomcat" Book
e7ca75286b Merge mozilla-central to inbound 2016-11-16 14:53:15 +01:00
Carsten "Tomcat" Book
fd0ff57dbb Backed out changeset bc0e63d09f83 (bug 1314932) for causing merge conflicts with mozilla-central/autoland and so blocking m-i to m-c merge 2016-11-16 14:51:16 +01:00
Kartikaya Gupta
4c7f0577fe Bug 1316931 - Put DX interop2 status into gfxVars. r=dvander,jgilbert
This allows the GLContextProviderWGL to be created on the compositor
thread, which is something we need for webrender integration.

MozReview-Commit-ID: DtBe9nUTdK7

--HG--
extra : rebase_source : b31973542beca75255b64f350f47df16435a60e3
2016-11-14 17:13:40 -05:00
Sotaro Ikeda
92926a0f41 Bug 1317656 - Cleanup more gonk/b2g dependent code r=nical 2016-11-15 22:01:30 -08:00
Jonathan Kew
48a1d6a49a Bug 1314932 - Reduce content-process startup time on MacOSX by passing the system font list from chrome to content process via the GetXPCOMProcessAttributes message. r=mstange 2016-11-15 13:58:29 +00:00
David Anderson
d7f8e40664 Move device reset detection from gfxPlatform to DeviceManagerDx. (bug 1316690 part 1, r=rhunt)
--HG--
extra : rebase_source : 0b950fb1fe798e5a6ec8ef2163759a5eedce62fc
2016-11-11 11:57:06 -08:00
David Anderson
3ffb31894f Don't access gfxPlatform from WinCompositorWidget. (bug 1316481, r=mattwoodrow) 2016-11-09 20:49:09 -08:00
Wes Kocher
7aeeee11d0 Backed out 2 changesets (bug 1309200) for build bustage on a CLOSED TREE a=backout
Backed out changeset b5ad7d04ed43 (bug 1309200)
Backed out changeset 1563a66b64d8 (bug 1309200)
2016-10-28 10:22:47 -07:00