gecko-dev/ipc/glue
Doug Thayer cd54f8c184 Bug 1265824 - Wait on texture handles with IPC r=jld,mattwoodrow
There's a lot going on here, but it all fits under the idea of
being able to communicate about texture locking statuses
without spinning on IsReadLocked. This is a bit of a trade -
we could just always allocate/grab a texture from the pool,
which would put a smaller cap on the amount of time we can
possibly spend when a texture is locked. However, this eats
up more CPU and memory than waiting on the textures to unlock,
and could take longer, especially if there were a large number
of textures which we just need to wait for for a short amount
of time. In any case, we very rarely hit the case where we
actually need to wait on the sync IPC to the compositor - most
of the time the textures are already unlocked.

There is also an async IPC call in here, which we make before
flushing async paints. This just causes the compositor to
check whether the GPU is done with its textures or not and
unlock them if it is. This helps us avoid the case where we
take a long time painting asynchronously, turn IPC back on at
the end of that, and then have to wait for the compositor
to to get into TiledLayerBufferComposite::UseTiles before
getting a response. Specifically this eliminates several talos
regressions which use ASAP mode.

Lastly, there seem to be no other cases of static Monitors
being used. This seems like it falls under similar use cases
as StaticMutexes, so I added it in. I can move it into its own
file if we think it might be generally useful in the future.

MozReview-Commit-ID: IYQLwUqMxg2

--HG--
extra : rebase_source : 4f05832f51dae6db98773dcad03cb008a80eca6c
2018-05-05 15:46:26 -07:00
..
BackgroundChild.h Bug 1462964: Remove obsolete nsIDOMBlob interface. r=bz 2018-05-21 17:32:44 -07:00
BackgroundChildImpl.cpp Bug 1462162 - Filter local storage cache synchronization messages based on origin; r=asuth 2018-07-14 08:34:14 +02:00
BackgroundChildImpl.h Bug 1462162 - Filter local storage cache synchronization messages based on origin; r=asuth 2018-07-14 08:34:14 +02:00
BackgroundImpl.cpp Bug 1432010 - Failures in PBackground channel creation must result in a error event in Web Workers, r=mrbkap 2018-07-18 12:07:14 +02:00
BackgroundParent.h
BackgroundParentImpl.cpp Bug 1462162 - Filter local storage cache synchronization messages based on origin; r=asuth 2018-07-14 08:34:14 +02:00
BackgroundParentImpl.h Bug 1462162 - Filter local storage cache synchronization messages based on origin; r=asuth 2018-07-14 08:34:14 +02:00
BackgroundUtils.cpp Bug 1476306 - Moving NullPrincipal/ContentPrincipal/SystemPrincipal under mozilla namespace - part 3 - ContentPrincipal, r=ckerschb 2018-07-17 21:38:48 +02:00
BackgroundUtils.h Bug 1441932 P3 Forward reserved client, initial client, and controller on Redirect2Verify message back to parent. r=mayhemer 2018-06-04 09:26:51 -07:00
BrowserProcessSubThread.cpp
BrowserProcessSubThread.h Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj 2017-11-05 19:37:28 -08:00
ByteBuf.h Bug 1379680. Add an ipc ByteBuf type. r=billm 2017-11-29 10:11:15 -05:00
CrashReporterClient.cpp Bug 1402519 - Remove MOZ_CRASHREPORTER directives from ipc; r=billm 2017-10-10 12:06:35 +02:00
CrashReporterClient.h Bug 1402519 - Remove MOZ_CRASHREPORTER directives from ipc; r=billm 2017-10-10 12:06:35 +02:00
CrashReporterHost.cpp Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
CrashReporterHost.h Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
CrashReporterMetadataShmem.cpp Bug 1402519 - Remove MOZ_CRASHREPORTER directives from ipc; r=billm 2017-10-10 12:06:35 +02:00
CrashReporterMetadataShmem.h Bug 1402519 - Remove MOZ_CRASHREPORTER directives from ipc; r=billm 2017-10-10 12:06:35 +02:00
CrossProcessMutex_posix.cpp
CrossProcessMutex_unimplemented.cpp
CrossProcessMutex_windows.cpp
CrossProcessMutex.h Bug 1207696 Part 4b - Make recording optional in mozilla mutexes and monitors, r=froydnj. 2018-07-21 14:22:54 +00:00
CrossProcessSemaphore_posix.cpp Allocate TextureReadLock at TextureClient creation and drop file handles immediately after. (bug 1416726, r=aosmond) 2018-03-12 08:10:13 -05:00
CrossProcessSemaphore_unimplemented.cpp Allocate TextureReadLock at TextureClient creation and drop file handles immediately after. (bug 1416726, r=aosmond) 2018-03-12 08:10:13 -05:00
CrossProcessSemaphore_windows.cpp Allocate TextureReadLock at TextureClient creation and drop file handles immediately after. (bug 1416726, r=aosmond) 2018-03-12 08:10:13 -05:00
CrossProcessSemaphore.h Allocate TextureReadLock at TextureClient creation and drop file handles immediately after. (bug 1416726, r=aosmond) 2018-03-12 08:10:13 -05:00
EnvironmentMap.h Bug 1297740. r=jld 2018-01-08 10:07:16 +01:00
FileDescriptor.cpp Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
FileDescriptor.h Bug 1440511 - Part 4: Add an IPDLParamTraits implementation for FileDescriptor, r=froydnj 2018-03-05 16:00:02 -05:00
FileDescriptorSetChild.cpp
FileDescriptorSetChild.h
FileDescriptorSetParent.cpp
FileDescriptorSetParent.h
FileDescriptorShuffle.cpp Bug 1456911 - Rewrite the fd shuffling to be simpler & handle identity mappings correctly. r=froydnj 2018-04-25 17:44:08 -06:00
FileDescriptorShuffle.h Bug 1456911 - Rewrite the fd shuffling to be simpler & handle identity mappings correctly. r=froydnj 2018-04-25 17:44:08 -06:00
FileDescriptorUtils.cpp
FileDescriptorUtils.h
GeckoChildProcessHost.cpp Bug 1475382 - Remove debugging crashes added in bug 1461459. r=spohl 2018-07-13 15:18:03 -06:00
GeckoChildProcessHost.h Bug 1348361 - Part 3 - Do not block the thread when spawning a gecko child process; r=jld 2018-02-16 10:24:21 -05:00
InputStreamParams.ipdlh Bug 1464090 - Implement InputStreamLengthWrapper to make any stream nsIInputStreamLength and nsIAsyncInputStreamLength, r=froydnj 2018-05-31 18:12:25 +02:00
InputStreamUtils.cpp Bug 1464090 - Implement InputStreamLengthWrapper to make any stream nsIInputStreamLength and nsIAsyncInputStreamLength, r=froydnj 2018-05-31 18:12:25 +02:00
InputStreamUtils.h
IOThreadChild.h
IPCMessageUtils.cpp
IPCMessageUtils.h Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
IPCStream.ipdlh Bug 1464090 - Passing the length if known via IPCStream and use InputStreamLengthWrapper when deserialized, r=froydnj, r=mayhemer 2018-05-31 18:12:25 +02:00
IPCStreamAlloc.h
IPCStreamChild.cpp
IPCStreamDestination.cpp Bug 1464090 - Passing the length if known via IPCStream and use InputStreamLengthWrapper when deserialized, r=froydnj, r=mayhemer 2018-05-31 18:12:25 +02:00
IPCStreamDestination.h Bug 1464090 - Passing the length if known via IPCStream and use InputStreamLengthWrapper when deserialized, r=froydnj, r=mayhemer 2018-05-31 18:12:25 +02:00
IPCStreamParent.cpp
IPCStreamSource.cpp Bug 1455256 - Port more components to WorkerRef - part 2 - IPCStream, r=asuth 2018-06-18 16:37:21 -04:00
IPCStreamSource.h Bug 1455256 - Port more components to WorkerRef - part 2 - IPCStream, r=asuth 2018-06-18 16:37:21 -04:00
IPCStreamUtils.cpp Bug 1464090 - Passing the length if known via IPCStream and use InputStreamLengthWrapper when deserialized, r=froydnj, r=mayhemer 2018-05-31 18:12:25 +02:00
IPCStreamUtils.h Bug 1443954 - Part 3: Add support for RefCounted types to IPDL, r=bz,froydnj,baku 2018-04-10 17:49:48 -04:00
IPDLParamTraits.h Bug 1466168: Remove mozilla::Forward in favor of std::forward. r=froydnj 2018-06-02 09:33:26 +02:00
MessageChannel.cpp Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
MessageChannel.h Backed out 3 changesets (bug 1451859) for causing Spidermonkey bustages on Linux x64 opt. 2018-06-07 09:10:35 +03:00
MessageLink.cpp Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
MessageLink.h
MessagePump.cpp
MessagePump.h Bug 1448022 - make MessagePumpForAndroidUI's constructor explicit; r=jld 2018-03-27 10:51:32 -04:00
moz.build Bug 1475382 - Turn off async content process launching, pending better error handling. r=spohl 2018-07-13 15:20:25 -06:00
Neutering.h
nsIIPCSerializableInputStream.h
nsIIPCSerializableURI.h Bug 1441688 - Remove nsIIPCSerializableURI.Deserialize r=mayhemer 2018-03-05 04:14:44 +01:00
PBackground.ipdl Bug 1462162 - Filter local storage cache synchronization messages based on origin; r=asuth 2018-07-14 08:34:14 +02:00
PBackgroundSharedTypes.ipdlh Bug 1414755 - Get rid of ContentPrincipalInfoOriginNoSuffix, r=bz, r=bkelly 2017-11-15 11:19:26 +01:00
PBackgroundTest.ipdl
PChildToParentStream.ipdl
PFileDescriptorSet.ipdl
PParentToChildStream.ipdl
ProcessChild.cpp
ProcessChild.h
ProcessUtils_bsd.cpp
ProcessUtils_linux.cpp
ProcessUtils_mac.mm
ProcessUtils_none.cpp
ProcessUtils.h
ProtocolTypes.ipdlh
ProtocolUtils.cpp Bug 1465287 Part 6 - Use correct channel and pids when communicating with a middleman process, r=mccr8. 2018-07-22 11:51:30 +00:00
ProtocolUtils.h Bug 1465287 Part 6 - Use correct channel and pids when communicating with a middleman process, r=mccr8. 2018-07-22 11:51:30 +00:00
ScopedXREEmbed.cpp
ScopedXREEmbed.h
SharedMemory_posix.cpp
SharedMemory_windows.cpp
SharedMemory.cpp
SharedMemory.h
SharedMemoryBasic_android.cpp
SharedMemoryBasic_android.h
SharedMemoryBasic_chromium.h Bug 1440199 - Part 2: Remove named mode from IPC shared memory. r=froydnj 2018-02-20 13:07:32 -07:00
SharedMemoryBasic_mach.h Bug 1265824 - Wait on texture handles with IPC r=jld,mattwoodrow 2018-05-05 15:46:26 -07:00
SharedMemoryBasic_mach.mm Bug 1265824 - Wait on texture handles with IPC r=jld,mattwoodrow 2018-05-05 15:46:26 -07:00
SharedMemoryBasic.h
Shmem.cpp Bug 1452657 - rename IPDL-private Shmem token struct to something more professional; r=mccr8 2018-04-17 10:05:30 -04:00
Shmem.h Bug 1452657 - rename IPDL-private Shmem token struct to something more professional; r=mccr8 2018-04-17 10:05:30 -04:00
StringUtil.cpp
TaskFactory.h Bug 1466168: Remove mozilla::Forward in favor of std::forward. r=froydnj 2018-06-02 09:33:26 +02:00
Transport_posix.cpp Bug 1278361 - Step 2: Search-and-replace HANDLE_EINTR(close(...)) to use IGNORE_EINTR. r=froydnj 2018-04-10 14:36:00 -06:00
Transport_posix.h
Transport_win.cpp Bug 1469769 - Part 6: Replace non-failing NS_NOTREACHED with MOZ_ASSERT_UNREACHABLE. r=froydnj 2018-06-17 22:43:11 -07:00
Transport_win.h
Transport.h
URIParams.ipdlh Bug 1448058 - Remove nsIMutable from URI implementations r=mayhemer 2018-05-09 18:21:24 +02:00
URIUtils.cpp Bug 1476306 - Moving NullPrincipal/ContentPrincipal/SystemPrincipal under mozilla namespace - part 1 - NullPrincipal, r=ckerschb 2018-07-17 21:37:48 +02:00
URIUtils.h Bug 1443956 - Part 1: Support serializing nsIURI directly over IPDL, r=froydnj 2018-04-10 17:49:48 -04:00
WindowsMessageLoop.cpp Bug 1437167 - Part 1: Stop using PRIntervalTime as the argument to CondVar::Wait and Monitor::Wait, r=mstange, r=froydnj 2018-04-10 17:49:47 -04:00
WindowsMessageLoop.h