Diff
Modified: trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp (293682 => 293683)
--- trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp 2022-05-02 20:31:54 UTC (rev 293682)
+++ trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp 2022-05-02 21:18:31 UTC (rev 293683)
@@ -488,7 +488,7 @@
outputData.displayRequirement = needsFullDisplay ? SwapBuffersDisplayRequirement::NeedsFullDisplay : SwapBuffersDisplayRequirement::NeedsNormalDisplay;
}
-void RemoteRenderingBackend::markSurfacesVolatile(uint64_t requestIdentifier, const Vector<RenderingResourceIdentifier>& identifiers)
+void RemoteRenderingBackend::markSurfacesVolatile(MarkSurfacesAsVolatileRequestIdentifier requestIdentifier, const Vector<RenderingResourceIdentifier>& identifiers)
{
LOG_WITH_STREAM(RemoteRenderingBufferVolatility, stream << "GPU Process: RemoteRenderingBackend::markSurfacesVolatile " << identifiers);
Modified: trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h (293682 => 293683)
--- trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h 2022-05-02 20:31:54 UTC (rev 293682)
+++ trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h 2022-05-02 21:18:31 UTC (rev 293683)
@@ -29,6 +29,7 @@
#include "Connection.h"
#include "ImageBufferBackendHandle.h"
+#include "MarkSurfacesAsVolatileRequestIdentifier.h"
#include "MessageReceiver.h"
#include "MessageSender.h"
#include "QualifiedRenderingResourceIdentifier.h"
@@ -121,7 +122,7 @@
void deleteAllFonts();
void releaseRemoteResource(WebCore::RenderingResourceIdentifier);
void finalizeRenderingUpdate(RenderingUpdateID);
- void markSurfacesVolatile(uint64_t requestIdentifier, const Vector<WebCore::RenderingResourceIdentifier>&);
+ void markSurfacesVolatile(MarkSurfacesAsVolatileRequestIdentifier, const Vector<WebCore::RenderingResourceIdentifier>&);
void prepareBuffersForDisplay(Vector<PrepareBackingStoreBuffersInputData> swapBuffersInput, CompletionHandler<void(const Vector<PrepareBackingStoreBuffersOutputData>&)>&&);
// Received messages translated to use QualifiedRenderingResourceIdentifier.
Modified: trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in (293682 => 293683)
--- trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in 2022-05-02 20:31:54 UTC (rev 293682)
+++ trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in 2022-05-02 21:18:31 UTC (rev 293683)
@@ -39,7 +39,7 @@
PrepareBuffersForDisplay(Vector<WebKit::PrepareBackingStoreBuffersInputData> swapBuffersInput) -> (Vector<WebKit::PrepareBackingStoreBuffersOutputData> swapBuffersOutput) Synchronous NotStreamEncodable NotStreamEncodableReply
- MarkSurfacesVolatile(uint64_t requestIdentifier, Vector<WebCore::RenderingResourceIdentifier> renderingResourceIdentifiers)
+ MarkSurfacesVolatile(WebKit::MarkSurfacesAsVolatileRequestIdentifier requestIdentifier, Vector<WebCore::RenderingResourceIdentifier> renderingResourceIdentifiers)
FinalizeRenderingUpdate(WebKit::RenderingUpdateID renderingUpdateID)
}
Modified: trunk/Source/WebKit/Scripts/webkit/messages.py (293682 => 293683)
--- trunk/Source/WebKit/Scripts/webkit/messages.py 2022-05-02 20:31:54 UTC (rev 293682)
+++ trunk/Source/WebKit/Scripts/webkit/messages.py 2022-05-02 21:18:31 UTC (rev 293683)
@@ -330,6 +330,7 @@
'WebKit::LegacyCustomProtocolID',
'WebKit::LibWebRTCResolverIdentifier',
'WebKit::MDNSRegisterIdentifier',
+ 'WebKit::MarkSurfacesAsVolatileRequestIdentifier',
'WebKit::MediaRecorderIdentifier',
'WebKit::NetworkResourceLoadIdentifier',
'WebKit::PDFPluginIdentifier',
Added: trunk/Source/WebKit/Shared/MarkSurfacesAsVolatileRequestIdentifier.h (0 => 293683)
--- trunk/Source/WebKit/Shared/MarkSurfacesAsVolatileRequestIdentifier.h (rev 0)
+++ trunk/Source/WebKit/Shared/MarkSurfacesAsVolatileRequestIdentifier.h 2022-05-02 21:18:31 UTC (rev 293683)
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2022 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include <wtf/ObjectIdentifier.h>
+
+namespace WebKit {
+
+enum MarkSurfacesAsVolatileRequestIdentifierType { };
+using MarkSurfacesAsVolatileRequestIdentifier = ObjectIdentifier<MarkSurfacesAsVolatileRequestIdentifierType>;
+
+}
+
Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (293682 => 293683)
--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2022-05-02 20:31:54 UTC (rev 293682)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2022-05-02 21:18:31 UTC (rev 293683)
@@ -882,6 +882,7 @@
461CCCA5231485A700B659B9 /* UIRemoteObjectRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 463236852314833F00A48FA7 /* UIRemoteObjectRegistry.h */; };
461CCCA6231485AA00B659B9 /* WebRemoteObjectRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 46323683231481EF00A48FA7 /* WebRemoteObjectRegistry.h */; };
461E1BF2279A0116006AF53B /* WebSharedWorkerContextManagerConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 461E1BEF279A010F006AF53B /* WebSharedWorkerContextManagerConnection.h */; };
+ 462CD80C28204DFA00F0EA04 /* MarkSurfacesAsVolatileRequestIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 462CD80B28204DF100F0EA04 /* MarkSurfacesAsVolatileRequestIdentifier.h */; };
463FD4801EB9459600A2982C /* WKProcessTerminationReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 463FD47F1EB9458400A2982C /* WKProcessTerminationReason.h */; settings = {ATTRIBUTES = (Private, ); }; };
463FD4821EB94EC000A2982C /* ProcessTerminationReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 463FD4811EB94EAD00A2982C /* ProcessTerminationReason.h */; };
4656F7BD27ACAA8D00CB3D7C /* WebSharedWorker.h in Headers */ = {isa = PBXBuildFile; fileRef = 4656F7BC27ACAA8100CB3D7C /* WebSharedWorker.h */; };
@@ -4609,6 +4610,7 @@
461E1BEF279A010F006AF53B /* WebSharedWorkerContextManagerConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebSharedWorkerContextManagerConnection.h; sourceTree = "<group>"; };
461E1BF0279A010F006AF53B /* WebSharedWorkerContextManagerConnection.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebSharedWorkerContextManagerConnection.messages.in; sourceTree = "<group>"; };
462107D71F38DBD300DD7810 /* PingLoad.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PingLoad.cpp; sourceTree = "<group>"; };
+ 462CD80B28204DF100F0EA04 /* MarkSurfacesAsVolatileRequestIdentifier.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MarkSurfacesAsVolatileRequestIdentifier.h; sourceTree = "<group>"; };
46323683231481EF00A48FA7 /* WebRemoteObjectRegistry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebRemoteObjectRegistry.h; sourceTree = "<group>"; };
463236842314825C00A48FA7 /* WebRemoteObjectRegistry.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WebRemoteObjectRegistry.cpp; sourceTree = "<group>"; };
463236852314833F00A48FA7 /* UIRemoteObjectRegistry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UIRemoteObjectRegistry.h; sourceTree = "<group>"; };
@@ -7960,6 +7962,7 @@
1A92DC1012F8BA460017AF65 /* LayerTreeContext.h */,
2D10875E1D2C573E00B85F82 /* LoadParameters.cpp */,
2D10875F1D2C573E00B85F82 /* LoadParameters.h */,
+ 462CD80B28204DF100F0EA04 /* MarkSurfacesAsVolatileRequestIdentifier.h */,
49917DB0252E30750050313F /* MediaPlaybackState.h */,
71E9650F2745682E00ADCF43 /* ModelIdentifier.h */,
7203449A26A6C44C000A5F54 /* MonotonicObjectIdentifier.h */,
@@ -14396,6 +14399,7 @@
1A6D86C21DF75265007745E8 /* MachMessage.h in Headers */,
BCC56F791159957D001CCAF9 /* MachPort.h in Headers */,
1A24B5F311F531E800C38269 /* MachUtilities.h in Headers */,
+ 462CD80C28204DFA00F0EA04 /* MarkSurfacesAsVolatileRequestIdentifier.h in Headers */,
A15799BE2584433200528236 /* MediaFormatReader.h in Headers */,
9ACC07B125C815D800DC6386 /* MediaKeySystemPermissionRequest.h in Headers */,
9ACC07AD25C8132D00DC6386 /* MediaKeySystemPermissionRequestManager.h in Headers */,
Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp (293682 => 293683)
--- trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp 2022-05-02 20:31:54 UTC (rev 293682)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp 2022-05-02 21:18:31 UTC (rev 293683)
@@ -359,14 +359,13 @@
void RemoteRenderingBackendProxy::markSurfacesVolatile(Vector<WebCore::RenderingResourceIdentifier>&& identifiers, CompletionHandler<void(bool)>&& completionHandler)
{
- static uint64_t lastRequestIdentifier = 0;
- auto requestIdentifier = ++lastRequestIdentifier;
+ auto requestIdentifier = MarkSurfacesAsVolatileRequestIdentifier::generate();
m_markAsVolatileRequests.add(requestIdentifier, WTFMove(completionHandler));
sendToStream(Messages::RemoteRenderingBackend::MarkSurfacesVolatile(requestIdentifier, identifiers));
}
-void RemoteRenderingBackendProxy::didMarkLayersAsVolatile(uint64_t requestIdentifier, const Vector<WebCore::RenderingResourceIdentifier>& markedVolatileBufferIdentifiers, bool didMarkAllLayersAsVolatile)
+void RemoteRenderingBackendProxy::didMarkLayersAsVolatile(MarkSurfacesAsVolatileRequestIdentifier requestIdentifier, const Vector<WebCore::RenderingResourceIdentifier>& markedVolatileBufferIdentifiers, bool didMarkAllLayersAsVolatile)
{
ASSERT(requestIdentifier);
auto completionHandler = m_markAsVolatileRequests.take(requestIdentifier);
Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h (293682 => 293683)
--- trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h 2022-05-02 20:31:54 UTC (rev 293682)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h 2022-05-02 21:18:31 UTC (rev 293683)
@@ -30,6 +30,7 @@
#include "GPUProcessConnection.h"
#include "IPCSemaphore.h"
#include "ImageBufferBackendHandle.h"
+#include "MarkSurfacesAsVolatileRequestIdentifier.h"
#include "MessageReceiver.h"
#include "MessageSender.h"
#include "RemoteDisplayListRecorderMessages.h"
@@ -172,7 +173,7 @@
void didCreateImageBufferBackend(ImageBufferBackendHandle, WebCore::RenderingResourceIdentifier);
void didFlush(WebCore::GraphicsContextFlushIdentifier, WebCore::RenderingResourceIdentifier);
void didFinalizeRenderingUpdate(RenderingUpdateID didRenderingUpdateID);
- void didMarkLayersAsVolatile(uint64_t requestIdentifier, const Vector<WebCore::RenderingResourceIdentifier>& markedVolatileBufferIdentifiers, bool didMarkAllLayerAsVolatile);
+ void didMarkLayersAsVolatile(MarkSurfacesAsVolatileRequestIdentifier, const Vector<WebCore::RenderingResourceIdentifier>& markedVolatileBufferIdentifiers, bool didMarkAllLayerAsVolatile);
GPUProcessConnection* m_gpuProcessConnection { nullptr };
RefPtr<IPC::Connection> m_connection;
@@ -181,7 +182,7 @@
RemoteResourceCacheProxy m_remoteResourceCacheProxy { *this };
RefPtr<SharedMemory> m_getPixelBufferSharedMemory;
WebCore::Timer m_destroyGetPixelBufferSharedMemoryTimer { *this, &RemoteRenderingBackendProxy::destroyGetPixelBufferSharedMemory };
- HashMap<uint64_t, CompletionHandler<void(bool)>> m_markAsVolatileRequests;
+ HashMap<MarkSurfacesAsVolatileRequestIdentifier, CompletionHandler<void(bool)>> m_markAsVolatileRequests;
RenderingUpdateID m_renderingUpdateID;
RenderingUpdateID m_didRenderingUpdateID;
Modified: trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in (293682 => 293683)
--- trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in 2022-05-02 20:31:54 UTC (rev 293682)
+++ trunk/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in 2022-05-02 21:18:31 UTC (rev 293683)
@@ -27,7 +27,7 @@
DidFlush(WebCore::GraphicsContextFlushIdentifier flushIdentifier, WebCore::RenderingResourceIdentifier renderingResourceIdentifier)
DidFinalizeRenderingUpdate(WebKit::RenderingUpdateID didRenderingUpdateID)
DidCreateWakeUpSemaphoreForDisplayListStream(IPC::Semaphore wakeUpSemaphore)
- DidMarkLayersAsVolatile(uint64_t requestIdentifier, Vector<WebCore::RenderingResourceIdentifier> markedVolatileBufferIdentifiers, bool didMarkAllLayersAsVolatile)
+ DidMarkLayersAsVolatile(WebKit::MarkSurfacesAsVolatileRequestIdentifier requestIdentifier, Vector<WebCore::RenderingResourceIdentifier> markedVolatileBufferIdentifiers, bool didMarkAllLayersAsVolatile)
}
#endif // ENABLE(GPU_PROCESS)