[webkit-changes] [WebKit/WebKit] 4f132f: LOG_WITH_LEVEL does not compile
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4f132fa5e8ab4ca9a0572fd69434727891a4a658 https://github.com/WebKit/WebKit/commit/4f132fa5e8ab4ca9a0572fd69434727891a4a658 Author: Kimmo Kinnunen Date: 2023-08-30 (Wed, 30 Aug 2023) Changed paths: M Source/WTF/wtf/Assertions.h M Tools/TestWebKitAPI/Tests/WebCore/Logging.cpp Log Message: --- LOG_WITH_LEVEL does not compile https://bugs.webkit.org/show_bug.cgi?id=260897 rdar://114688896 Reviewed by Jean-Yves Avenard. Fix the compilation error. Compile the tests unconditionally. The tests were ifdeffed out and have since stopped working. DISABLE_ the tests to still get the compilation errors for the use-sites of various log macros. * Source/WTF/wtf/Assertions.h: * Tools/TestWebKitAPI/Tests/WebCore/Logging.cpp: (TestWebKitAPI::TEST_F): Canonical link: https://commits.webkit.org/267450@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] d810eb: REGRESSION(267604@main): Causes PLT regressions
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d810ebc5110aadd0b8c3a679deff875b81a68a56 https://github.com/WebKit/WebKit/commit/d810ebc5110aadd0b8c3a679deff875b81a68a56 Author: Kimmo Kinnunen Date: 2023-09-05 (Tue, 05 Sep 2023) Changed paths: M Source/WebCore/platform/graphics/ImageBuffer.cpp M Source/WebCore/platform/graphics/ImageBuffer.h M Source/WebCore/platform/graphics/ImageBufferBackend.h M Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp M Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.h M Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp M Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.cpp M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.h Log Message: --- REGRESSION(267604@main): Causes PLT regressions https://bugs.webkit.org/show_bug.cgi?id=261166 rdar://problem/114993825 Unreviewed, revert due to PLT regressions. Reverts: 267632@main REGRESSION(267604@main) Tiles sometimes render upside down 267604@main Some ImageBufferBackend implementations use resolutionScale Canonical link: https://commits.webkit.org/267642@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] da0741: REGRESSION(267604@main) Tiles sometimes render ups...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: da0741f8a7b91878483fe8436c241fc6848190b8 https://github.com/WebKit/WebKit/commit/da0741f8a7b91878483fe8436c241fc6848190b8 Author: Kimmo Kinnunen Date: 2023-09-05 (Tue, 05 Sep 2023) Changed paths: M Source/WebCore/platform/graphics/ImageBuffer.cpp M Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp M Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.h M Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.cpp Log Message: --- REGRESSION(267604@main) Tiles sometimes render upside down https://bugs.webkit.org/show_bug.cgi?id=261157 rdar://114966792 Reviewed by Simon Fraser. Remove the double setup for the ImageBufferBackend base transform. These hunks were missing from 267604@main. * Source/WebCore/platform/graphics/ImageBuffer.cpp: (WebCore::ImageBuffer::context const): (WebCore::ImageBuffer::releaseGraphicsContext): * Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp: (WebCore::ImageBufferCGBackend::applyBaseTransform const): Deleted. * Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.h: * Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp: (WebCore::ImageBufferCGBitmapBackend::ImageBufferCGBitmapBackend): * Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp: (WebCore::ImageBufferIOSurfaceBackend::context): * Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.cpp: (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::ImageBufferShareableMappedIOSurfaceBitmapBackend): (WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::context): Canonical link: https://commits.webkit.org/267632@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 2347cf: Update WebGL conformance tests 2023-09-05 (f4bf599...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 2347cf165a5a540f8da145a38150c0a3f3f8781e https://github.com/WebKit/WebKit/commit/2347cf165a5a540f8da145a38150c0a3f3f8781e Author: Kimmo Kinnunen Date: 2023-09-06 (Wed, 06 Sep 2023) Changed paths: A LayoutTests/webgl/1.0.x/conformance/extensions/ext-blend-func-extended-expected.txt A LayoutTests/webgl/1.0.x/conformance/extensions/ext-blend-func-extended.html A LayoutTests/webgl/2.0.y/conformance2/extensions/ext-blend-func-extended-expected.txt A LayoutTests/webgl/2.0.y/conformance2/extensions/ext-blend-func-extended.html A LayoutTests/webgl/resources/webgl_test_files/conformance/extensions/ext-blend-func-extended.html A LayoutTests/webgl/resources/webgl_test_files/conformance2/extensions/ext-blend-func-extended.html M LayoutTests/webgl/resources/webgl_test_files/conformance2/extensions/webgl-stencil-texturing.html A LayoutTests/webgl/resources/webgl_test_files/js/tests/ext-blend-func-extended.js Log Message: --- Update WebGL conformance tests 2023-09-05 (f4bf599a8b575df685c31d9c4729a70a04e377ed) https://bugs.webkit.org/show_bug.cgi?id=261196 rdar://115042368 Unreviewed, import from upstream. * LayoutTests/webgl/1.0.x/conformance/extensions/ext-blend-func-extended-expected.txt: Added. * LayoutTests/webgl/1.0.x/conformance/extensions/ext-blend-func-extended.html: Added. * LayoutTests/webgl/2.0.y/conformance2/extensions/ext-blend-func-extended-expected.txt: Added. * LayoutTests/webgl/2.0.y/conformance2/extensions/ext-blend-func-extended.html: Added. * LayoutTests/webgl/resources/webgl_test_files/conformance/extensions/ext-blend-func-extended.html: Added. * LayoutTests/webgl/resources/webgl_test_files/conformance2/extensions/ext-blend-func-extended.html: Added. * LayoutTests/webgl/resources/webgl_test_files/conformance2/extensions/webgl-stencil-texturing.html: * LayoutTests/webgl/resources/webgl_test_files/js/tests/ext-blend-func-extended.js: Added. (runTestNoExtension): (runEnumTests): (runQueryTests): (runShaderTests): (runMissingOutputsTests): (runDrawBuffersLimitTests): (runBlendingTests): (runTest): Canonical link: https://commits.webkit.org/267667@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 1a615c: RemoteDisplayListRecorder uses ThreadSafeWeakPtr t...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 1a615c7e8bc035090660e4ce098d3dea0388e069 https://github.com/WebKit/WebKit/commit/1a615c7e8bc035090660e4ce098d3dea0388e069 Author: Kimmo Kinnunen Date: 2023-09-06 (Wed, 06 Sep 2023) Changed paths: M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h Log Message: --- RemoteDisplayListRecorder uses ThreadSafeWeakPtr to ImageBuffer redundantly https://bugs.webkit.org/show_bug.cgi?id=261167 rdar://114994553 Reviewed by Antti Koivisto. The weak ptr was never checked for null, so it wasn't expected to function as vehicle to detect destruction. There is no circular dependency between the ImageBuffer and the recorder, so just use normal Ref. The image buffer will anyway outlive the recorder, as the recorder is always removed from the instance list before the RemoteImageBuffers. * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp: (WebKit::RemoteDisplayListRecorder::convertToLuminanceMask): (WebKit::RemoteDisplayListRecorder::transformToColorSpace): (WebKit::RemoteDisplayListRecorder::flushContext): (WebKit::RemoteDisplayListRecorder::flushContextSync): (WebKit::RemoteDisplayListRecorder::drawingContext): Deleted. * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h: (WebKit::RemoteDisplayListRecorder::drawingContext): Canonical link: https://commits.webkit.org/267664@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 5b609e: Move RemoteImageBuffer methods from RemoteRenderin...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5b609e6db6472df7bfa8393aaa70228225e2a878 https://github.com/WebKit/WebKit/commit/5b609e6db6472df7bfa8393aaa70228225e2a878 Author: Kimmo Kinnunen Date: 2023-09-05 (Tue, 05 Sep 2023) Changed paths: M Source/WebKit/CMakeLists.txt M Source/WebKit/DerivedSources-input.xcfilelist M Source/WebKit/DerivedSources-output.xcfilelist M Source/WebKit/DerivedSources.make M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h M Source/WebKit/GPUProcess/ShapeDetection/RemoteBarcodeDetector.cpp M Source/WebKit/GPUProcess/ShapeDetection/RemoteBarcodeDetector.h M Source/WebKit/GPUProcess/ShapeDetection/RemoteFaceDetector.cpp M Source/WebKit/GPUProcess/ShapeDetection/RemoteFaceDetector.h M Source/WebKit/GPUProcess/ShapeDetection/RemoteTextDetector.cpp M Source/WebKit/GPUProcess/ShapeDetection/RemoteTextDetector.h M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp M Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.cpp M Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.h A Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.messages.in M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in M Source/WebKit/GPUProcess/graphics/RemoteResourceCache.cpp M Source/WebKit/GPUProcess/graphics/RemoteResourceCache.h M Source/WebKit/SourcesCocoa.txt M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h M Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.h Log Message: --- Move RemoteImageBuffer methods from RemoteRenderingBackend to RemoteImageBuffer https://bugs.webkit.org/show_bug.cgi?id=26 rdar://114933263 Reviewed by Matt Woodrow. RemoteRenderingBackend would have messages intended to invoke RemoteImageBuffer methods. Move these methods to RemoteImageBuffer. Make RemoteImageBuffer more similar to other remote classes: - The instance is a wrapper that holds the WebCore target instance. - The instance is held in a fully-typed normal HashMap for this type, as opposed to an amalgamation hashmap for assorted types. The type held by serialized ImageBuffer heap is changed to ImageBuffer, as the heap holds the contents of the image, not the RemoteImageBuffer. In later commits, further ImageBuffer functionality are moved from RemoteDisplayListRecorder to RemoteImageBuffer. * Source/WebKit/CMakeLists.txt: * Source/WebKit/DerivedSources-input.xcfilelist: * Source/WebKit/DerivedSources-output.xcfilelist: * Source/WebKit/DerivedSources.make: * Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h: (WebKit::GPUConnectionToWebProcess::serializedImageBufferHeap): * Source/WebKit/GPUProcess/ShapeDetection/RemoteBarcodeDetector.cpp: (WebKit::RemoteBarcodeDetector::RemoteBarcodeDetector): (WebKit::RemoteBarcodeDetector::detect): * Source/WebKit/GPUProcess/ShapeDetection/RemoteBarcodeDetector.h: (WebKit::RemoteBarcodeDetector::create): * Source/WebKit/GPUProcess/ShapeDetection/RemoteFaceDetector.cpp: (WebKit::RemoteFaceDetector::RemoteFaceDetector): (WebKit::RemoteFaceDetector::detect): * Source/WebKit/GPUProcess/ShapeDetection/RemoteFaceDetector.h: (WebKit::RemoteFaceDetector::create): * Source/WebKit/GPUProcess/ShapeDetection/RemoteTextDetector.cpp: (WebKit::RemoteTextDetector::RemoteTextDetector): (WebKit::RemoteTextDetector::detect): * Source/WebKit/GPUProcess/ShapeDetection/RemoteTextDetector.h: (WebKit::RemoteTextDetector::create): * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp: (WebKit::RemoteDisplayListRecorder::imageBuffer): (WebKit::RemoteDisplayListRecorder::clipToImageBuffer): (WebKit::RemoteDisplayListRecorder::drawFilteredImageBufferInternal): (WebKit::RemoteDisplayListRecorder::drawImageBuffer): * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h: * Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp: (WebKit::RemoteGraphicsContextGL::paintNativeImageToImageBuffer): * Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.cpp: (WebKit::RemoteImageBuffer::create): (WebKit::RemoteImageBuffer::RemoteImageBuffer): (WebKit::RemoteImageBuffer::~RemoteImageBuffer): (WebKit::RemoteImageBuffer::startListeningForIPC): (WebKit::RemoteImageBuffer::stopListeningForIPC): (WebKit::RemoteImageBuffer::getPixelBuffer): (WebKit::RemoteImageBuffer::getPixelBufferWithNewMemory): (WebKit::RemoteImageBuffer::putPixelBuffer): (WebKit::RemoteImageBuffer::getShareableBitmap
[webkit-changes] [WebKit/WebKit] 1641fc: update-angle script summary is incorrect
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 1641fc687fe96ec89b03fd488b6be2bf56aba270 https://github.com/WebKit/WebKit/commit/1641fc687fe96ec89b03fd488b6be2bf56aba270 Author: Kimmo Kinnunen Date: 2023-09-07 (Thu, 07 Sep 2023) Changed paths: M Tools/Scripts/update-angle Log Message: --- update-angle script summary is incorrect https://bugs.webkit.org/show_bug.cgi?id=261261 rdar://problem/115102406 Unreviewed, to be reviewed by Dan Glastonbury. Update the -h summary to match the description. * Tools/Scripts/update-angle: Canonical link: https://commits.webkit.org/267719@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 6710f7: update-angle script generates diffs for missing su...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 6710f7c9d543e47b1abe25e48dde6a18cba9b142 https://github.com/WebKit/WebKit/commit/6710f7c9d543e47b1abe25e48dde6a18cba9b142 Author: Kimmo Kinnunen Date: 2023-09-07 (Thu, 07 Sep 2023) Changed paths: M Tools/Scripts/update-angle Log Message: --- update-angle script generates diffs for missing submodule files https://bugs.webkit.org/show_bug.cgi?id=261262 rdar://115102832 Unreviewed, to be reviewed by Dan Glastonbury. Use git diff --ignore-submodules=all when diffing against upstream. * Tools/Scripts/update-angle: Canonical link: https://commits.webkit.org/267720@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 2e9a38: Update ANGLE to 2023-09-06 (60b56591dee59bc0bc7705...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 2e9a385d818b241e26726374f0be6c0012a360f9 https://github.com/WebKit/WebKit/commit/2e9a385d818b241e26726374f0be6c0012a360f9 Author: Kimmo Kinnunen Date: 2023-09-07 (Thu, 07 Sep 2023) Changed paths: M Source/ThirdParty/ANGLE/ANGLE.plist M Source/ThirdParty/ANGLE/D3D.cmake M Source/ThirdParty/ANGLE/DEPS M Source/ThirdParty/ANGLE/GL.cmake M Source/ThirdParty/ANGLE/WebKit/ANGLEShaderProgramVersion.h M Source/ThirdParty/ANGLE/WebKit/angle_commit.h M Source/ThirdParty/ANGLE/changes.diff M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json M Source/ThirdParty/ANGLE/src/common/BinaryStream.h M Source/ThirdParty/ANGLE/src/common/BinaryStream_unittest.cpp M Source/ThirdParty/ANGLE/src/common/CompiledShaderState.cpp M Source/ThirdParty/ANGLE/src/compiler/translator/ParseContext.cpp M Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp M Source/ThirdParty/ANGLE/src/libANGLE/Context.h M Source/ThirdParty/ANGLE/src/libANGLE/Context.inl.h M Source/ThirdParty/ANGLE/src/libANGLE/GLES1Renderer.cpp M Source/ThirdParty/ANGLE/src/libANGLE/MemoryProgramCache.cpp M Source/ThirdParty/ANGLE/src/libANGLE/MemoryProgramCache.h M Source/ThirdParty/ANGLE/src/libANGLE/Observer.h M Source/ThirdParty/ANGLE/src/libANGLE/Program.cpp M Source/ThirdParty/ANGLE/src/libANGLE/Program.h M Source/ThirdParty/ANGLE/src/libANGLE/ProgramExecutable.cpp M Source/ThirdParty/ANGLE/src/libANGLE/ProgramExecutable.h M Source/ThirdParty/ANGLE/src/libANGLE/ProgramLinkedResources.cpp M Source/ThirdParty/ANGLE/src/libANGLE/ProgramPipeline.cpp M Source/ThirdParty/ANGLE/src/libANGLE/ProgramPipeline.h M Source/ThirdParty/ANGLE/src/libANGLE/State.cpp M Source/ThirdParty/ANGLE/src/libANGLE/State.h M Source/ThirdParty/ANGLE/src/libANGLE/Uniform.h M Source/ThirdParty/ANGLE/src/libANGLE/capture/FrameCapture.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/FramebufferD3D.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ProgramD3D.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ProgramD3D.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ProgramExecutableD3D.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ProgramExecutableD3D.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/BlitGL.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/BlitGL.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ProgramGL.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/TextureGL.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.mm M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ProgramExecutableMtl.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ProgramExecutableMtl.mm M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ProgramMtl.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ProgramMtl.mm M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_command_buffer.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_msl_utils.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_msl_utils.mm M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_render_utils.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_render_utils.mm M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_state_cache.mm M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ProgramPipelineVk.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SurfaceVk.cpp M Source/ThirdParty/ANGLE/src/libANGLE/validationES.cpp M Source/ThirdParty/ANGLE/src/libANGLE/validationES31.cpp M Source/ThirdParty/ANGLE/src/tests/capture_tests/CapturedTest.cpp M Source/ThirdParty/ANGLE/src/tests/compiler_tests/EXT_blend_func_extended_test.cpp M Source/ThirdParty/ANGLE/src/tests/gl_tests/ContextNoErrorTest.cpp M Source/ThirdParty/ANGLE/src/tests/gl_tests/LinkAndRelinkTest.cpp M Source/ThirdParty/ANGLE/src/tests/gl_tests/ProgramPipelineTest.cpp M Source/ThirdParty/ANGLE/src/tests/gl_tests/WebGLCompatibilityTest.cpp M Source/ThirdParty/ANGLE/src/tests/restricted_traces/restricted_trace_gold_tests.py M Source/ThirdParty/ANGLE/src/tests/restricted_traces/restricted_trace_perf.py M Source/ThirdParty/ANGLE/util/capture/frame_capture_test_utils.cpp Log Message: --- Update ANGLE to 2023-09-06 (60b56591dee59bc0bc770577f43d90be4b18863c) https://bugs.webkit.org
[webkit-changes] [WebKit/WebKit] fd43b2: WebGLRenderingContextBase::create checks for webGL...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: fd43b23ea3828af0267e2b1b8366886913535751 https://github.com/WebKit/WebKit/commit/fd43b23ea3828af0267e2b1b8366886913535751 Author: Kimmo Kinnunen Date: 2023-09-11 (Mon, 11 Sep 2023) Changed paths: M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp Log Message: --- WebGLRenderingContextBase::create checks for webGLEnabled setting unneccessarily https://bugs.webkit.org/show_bug.cgi?id=261398 rdar://problem/115273142 Reviewed by Antti Koivisto. Remove the checks, the check is done in the caller. For offscreen canvas, one of the checks would ref nullptr if the caller did not do the check. It is not right to send the webglcontextcreationerror if the setting is disabled. When the setting is disabled, it should behave as if WebGL was not implemented. * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::create): Canonical link: https://commits.webkit.org/267859@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 0dcc7a: WebGLFramebuffer uses renderbuffer and texture att...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0dcc7a680e6c5e7bf96006e9c3bd17d185861520 https://github.com/WebKit/WebKit/commit/0dcc7a680e6c5e7bf96006e9c3bd17d185861520 Author: Kimmo Kinnunen Date: 2023-08-31 (Thu, 31 Aug 2023) Changed paths: M Source/WebCore/html/canvas/WebGL2RenderingContext.cpp M Source/WebCore/html/canvas/WebGLFramebuffer.cpp M Source/WebCore/html/canvas/WebGLFramebuffer.h M Source/WebCore/html/canvas/WebGLObject.h M Source/WebCore/html/canvas/WebGLRenderbuffer.h M Source/WebCore/html/canvas/WebGLRenderingContext.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/html/canvas/WebGLTexture.h Log Message: --- WebGLFramebuffer uses renderbuffer and texture attachments via WebGLObject https://bugs.webkit.org/show_bug.cgi?id=260955 rdar://114750589 Reviewed by Dan Glastonbury. Framebuffer attachments can be 2d textures, 3d texture layers or renderbuffers. Use std::variant to encode this instead of a virtual base class. This removes a lot of unneeded complexity in the code. This also enables future bugfixes related to non-typesafe handling of these variants. When obtaining a pointer to the attached object, use std::variant instead of WebGLObject*. This way future commits may break the dependency to a common base class. The objects do not have intrinsic polymorphic operations, rather their types are always known at the invocation site, from JS through WebGLRenderingContextBase. * Source/WebCore/html/canvas/WebGL2RenderingContext.cpp: (WebCore::WebGL2RenderingContext::framebufferTextureLayer): (WebCore::WebGL2RenderingContext::getFramebufferAttachmentParameter): * Source/WebCore/html/canvas/WebGLFramebuffer.cpp: (WebCore::entryAddMembersToOpaqueRoots): (WebCore::entryDetachAndClear): (WebCore::entryAttach): (WebCore::entryContextSetAttachment): (WebCore::entryObject): (WebCore::entryHasObject): (WebCore::WebGLFramebuffer::setAttachmentForBoundFramebuffer): (WebCore::WebGLFramebuffer::getAttachmentObject const): (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer): (WebCore::WebGLFramebuffer::deleteObjectImpl): (WebCore::WebGLFramebuffer::drawBuffersIfNecessary): (WebCore::WebGLFramebuffer::addMembersToOpaqueRoots): (WebCore::WebGLFramebuffer::setAttachmentInternal): (WebCore::WebGLFramebuffer::TextureAttachment::operator== const): (WebCore::WebGLFramebuffer::TextureLayerAttachment::operator== const): (): Deleted. (WebCore::WebGLFramebuffer::attach): Deleted. (WebCore::WebGLFramebuffer::getAttachment const): Deleted. (WebCore::WebGLFramebuffer::removeAttachmentInternal): Deleted. * Source/WebCore/html/canvas/WebGLFramebuffer.h: * Source/WebCore/html/canvas/WebGLObject.h: (WebCore::WebGLObject::isRenderbuffer const): Deleted. (WebCore::WebGLObject::isTexture const): Deleted. * Source/WebCore/html/canvas/WebGLRenderbuffer.h: * Source/WebCore/html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter): * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::framebufferRenderbuffer): (WebCore::WebGLRenderingContextBase::framebufferTexture2D): * Source/WebCore/html/canvas/WebGLTexture.h: Canonical link: https://commits.webkit.org/267535@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 5f5c97: Move Context2D testing properties from HTMLCanvasE...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5f5c97abe1092e1c087bdd5fffd3ba3c1c5fea33 https://github.com/WebKit/WebKit/commit/5f5c97abe1092e1c087bdd5fffd3ba3c1c5fea33 Author: Kimmo Kinnunen Date: 2023-09-13 (Wed, 13 Sep 2023) Changed paths: M LayoutTests/fast/canvas/image-buffer-iosurface-disabled.html M Source/WebCore/html/CanvasBase.cpp M Source/WebCore/html/CanvasBase.h M Source/WebCore/html/HTMLCanvasElement.cpp M Source/WebCore/html/HTMLCanvasElement.h M Source/WebCore/html/OffscreenCanvas.cpp M Source/WebCore/html/canvas/CanvasRenderingContext.h M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h M Source/WebCore/html/canvas/CanvasRenderingContext2DSettings.h M Source/WebCore/html/canvas/CanvasRenderingContext2DSettings.idl M Source/WebCore/testing/Internals.cpp M Source/WebCore/testing/Internals.h M Source/WebCore/testing/Internals.idl Log Message: --- Move Context2D testing properties from HTMLCanvasElement to context options https://bugs.webkit.org/show_bug.cgi?id=261404 rdar://115282259 Reviewed by Matt Woodrow. Context2D testing options should be related to the rendering context, not to the canvas element. Move the property avoidIOSurfaceSizeCheckInWebProcess as general purpose context 2d option "renderingMode". This enables testing the various backends comprehensively in the future. * LayoutTests/fast/canvas/image-buffer-iosurface-disabled.html: * Source/WebCore/html/CanvasBase.cpp: (WebCore::CanvasBase::allocateImageBuffer const): * Source/WebCore/html/CanvasBase.h: * Source/WebCore/html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::createImageBuffer const): (WebCore::HTMLCanvasElement::setAvoidIOSurfaceSizeCheckInWebProcessForTesting): Deleted. * Source/WebCore/html/HTMLCanvasElement.h: * Source/WebCore/html/OffscreenCanvas.cpp: (WebCore::OffscreenCanvas::transferToImageBitmap): (WebCore::OffscreenCanvas::createImageBuffer const): * Source/WebCore/html/canvas/CanvasRenderingContext.h: (WebCore::CanvasRenderingContext::adjustImageBufferOptionsForTesting): * Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp: (WebCore::CanvasRenderingContext2DBase::adjustImageBufferOptionsForTesting): * Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h: * Source/WebCore/html/canvas/CanvasRenderingContext2DSettings.h: * Source/WebCore/html/canvas/CanvasRenderingContext2DSettings.idl: * Source/WebCore/testing/Internals.cpp: (WebCore::Internals::avoidIOSurfaceSizeCheckInWebProcess): Deleted. * Source/WebCore/testing/Internals.h: * Source/WebCore/testing/Internals.idl: Canonical link: https://commits.webkit.org/267934@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] a8f552: Expose GraphicsClient through ScriptExecutionContext
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a8f55217363bef328ce1a3a61003ce7ce4d4e2e3 https://github.com/WebKit/WebKit/commit/a8f55217363bef328ce1a3a61003ce7ce4d4e2e3 Author: Kimmo Kinnunen Date: 2023-09-13 (Wed, 13 Sep 2023) Changed paths: M Source/WebCore/dom/Document.cpp M Source/WebCore/dom/Document.h M Source/WebCore/dom/ScriptExecutionContext.h M Source/WebCore/html/CanvasBase.cpp M Source/WebCore/html/CanvasBase.h M Source/WebCore/html/ImageBitmap.cpp M Source/WebCore/html/ImageBitmapBacking.cpp M Source/WebCore/html/OffscreenCanvas.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/platform/GraphicsClient.h M Source/WebCore/platform/graphics/ImageBuffer.cpp M Source/WebCore/platform/graphics/ImageBuffer.h M Source/WebCore/workers/WorkerGlobalScope.cpp M Source/WebCore/workers/WorkerGlobalScope.h Log Message: --- Expose GraphicsClient through ScriptExecutionContext https://bugs.webkit.org/show_bug.cgi?id=261272 rdar://115108907 Reviewed by Matt Woodrow. Expose GraphicsClient through ScriptExecutionContext All DOM objects that construct graphics objects must do so via a factory that is able to create graphics objects (either local or remote). This factory interface is GraphicsClient. The objects obtain the instance via ScriptExecutionContext, either: - Document (via Chrome) - WorkerGlobalScope (via WorkerClient) Add ScriptExecutionContext::graphicsClient() to avoid doing various error-prone downcasting sequences. Make SerializedImageBuffer::sinkIntoImageBuffer() a similar function to ImageBuffer::create(), where the polymorphism is added with the GraphicsClient* and in-process variant is invoked if the instance is nullptr. * Source/WebCore/dom/Document.cpp: (WebCore::Document::graphicsClient): * Source/WebCore/dom/Document.h: * Source/WebCore/dom/ScriptExecutionContext.h: (WebCore::ScriptExecutionContext::graphicsClient): * Source/WebCore/html/CanvasBase.cpp: (WebCore::CanvasBase::allocateImageBuffer const): (WebCore::CanvasBase::graphicsClient const): Deleted. * Source/WebCore/html/CanvasBase.h: * Source/WebCore/html/ImageBitmap.cpp: (WebCore::ImageBitmap::createImageBuffer): * Source/WebCore/html/ImageBitmapBacking.cpp: (WebCore::ImageBitmapBacking::connect): * Source/WebCore/html/OffscreenCanvas.cpp: (WebCore::DetachedOffscreenCanvas::takeImageBuffer): (WebCore::OffscreenCanvas::pushBufferToPlaceholder): * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::create): (WebCore::WebGLRenderingContextBase::maybeRestoreContext): * Source/WebCore/platform/GraphicsClient.h: * Source/WebCore/platform/graphics/ImageBuffer.cpp: (WebCore::SerializedImageBuffer::sinkIntoImageBuffer): * Source/WebCore/platform/graphics/ImageBuffer.h: * Source/WebCore/workers/WorkerGlobalScope.cpp: (WebCore::WorkerGlobalScope::graphicsClient): * Source/WebCore/workers/WorkerGlobalScope.h: Canonical link: https://commits.webkit.org/267938@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] c81134: OffscreenCanvas WebGL does not produce console log...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c8113478349e7c301c177862a4a70e75f1bd9fc4 https://github.com/WebKit/WebKit/commit/c8113478349e7c301c177862a4a70e75f1bd9fc4 Author: Kimmo Kinnunen Date: 2023-09-12 (Tue, 12 Sep 2023) Changed paths: A LayoutTests/webgl/offscreen-webgl-errors-to-console-expected.txt A LayoutTests/webgl/offscreen-webgl-errors-to-console.html M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.h Log Message: --- OffscreenCanvas WebGL does not produce console log messages https://bugs.webkit.org/show_bug.cgi?id=261400 rdar://115275708 Reviewed by Dan Glastonbury. Use ScriptExecutionContext of the CanvasBase to add the console message. This works for HTMLElement as well as OffscreenCanvas. Do not reset the error counter on context restore. The counter is logical to be for the context object, not for the underlying OpenGL context. * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase): (WebCore::WebGLRenderingContextBase::initializeContextState): (WebCore::WebGLRenderingContextBase::shouldPrintToConsole const): (WebCore::WebGLRenderingContextBase::printToConsole): * Source/WebCore/html/canvas/WebGLRenderingContextBase.h: Canonical link: https://commits.webkit.org/267895@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] f5fa2e: WebGL Draft Extensions should be a testable setting
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: f5fa2ec1f30668986f1d26cfaa7d0b38ac9ac85d https://github.com/WebKit/WebKit/commit/f5fa2ec1f30668986f1d26cfaa7d0b38ac9ac85d Author: Kimmo Kinnunen Date: 2023-09-07 (Thu, 07 Sep 2023) Changed paths: M LayoutTests/platform/glib/TestExpectations M LayoutTests/platform/ios-simulator/TestExpectations M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml M Tools/WebKitTestRunner/TestOptions.cpp Log Message: --- WebGL Draft Extensions should be a testable setting https://bugs.webkit.org/show_bug.cgi?id=261197 rdar://115042648 Reviewed by Dan Glastonbury. Make the WebGL draft extensions more easily accessible via feature flags by moving the setting to testable category. * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: * Tools/WebKitTestRunner/TestOptions.cpp: (WTR::TestOptions::defaults): Canonical link: https://commits.webkit.org/267726@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 491458: WebGL DEPTH and STENCIL_ATTACHMENT overwrite delet...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 491458f894ee187a16daa0824656b2752ce614a6 https://github.com/WebKit/WebKit/commit/491458f894ee187a16daa0824656b2752ce614a6 Author: Kimmo Kinnunen Date: 2023-08-29 (Tue, 29 Aug 2023) Changed paths: M LayoutTests/webgl/resources/webgl_test_files/conformance2/renderbuffers/framebuffer-object-attachment.html M Source/WebCore/html/canvas/WebGLFramebuffer.cpp M Source/WebCore/html/canvas/WebGLFramebuffer.h M Source/WebCore/html/canvas/WebGLObject.cpp M Source/WebCore/html/canvas/WebGLObject.h Log Message: --- WebGL DEPTH and STENCIL_ATTACHMENT overwrite deletes DEPTH_STENCIL_ATTACHMENT object prematurely https://bugs.webkit.org/show_bug.cgi?id=260606 rdar://problem/114317226 Reviewed by Dan Glastonbury. In WebGL2, DEPTH_STENCIL_ATTACHMENT attachment point is simulated and changes DEPTH_ATTACHMENT and STENCIL_ATTACHMENT. WebGLFramebuffer would store the attachment to - DEPTH_STENCIL_ATTACHMENT - DEPTH_ATTACHMENT - STENCIL_ATTACHMENT However, it would call onAttached() only for the first one. If the attachments would be modified with DEPTH_ATTACHMENT or STENCIL_ATTACHMENT, the modification would result in onDetached for these modifications. This imbalance of attach/detach would leave the attachment counters inconsistent. The bug would be observable when attaching a renderbuffer or texture and then deleting it (orphaning). In this case the imbalanced detach would delete the object, and queries about the object name through the framebuffer attachment point would return "not found", since the object was really deleted and not only orphaned. * LayoutTests/webgl/resources/webgl_test_files/conformance2/renderbuffers/framebuffer-object-attachment.html: This will be upstreamed to the CTS later. Test that DEPTH_STENCIL_ATTACHMENT behavior with normal buffers are the same as with orphaned buffers. * Source/WebCore/html/canvas/WebGLFramebuffer.cpp: (WebCore::WebGLFramebuffer::setAttachmentForBoundFramebuffer): (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer): (WebCore::WebGLFramebuffer::setAttachmentInternal): (WebCore::WebGLFramebuffer::removeAttachmentInternal): (WebCore::WebGLFramebuffer::hasStencilBuffer const): Deleted. Delete unused function. * Source/WebCore/html/canvas/WebGLFramebuffer.h: * Source/WebCore/html/canvas/WebGLObject.cpp: (WebCore::WebGLObject::onDetached): (WebCore::WebGLObject::detach): Deleted. Delete unused function. * Source/WebCore/html/canvas/WebGLObject.h: Canonical link: https://commits.webkit.org/267422@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] d68b93: Add a test enumerating all the possible behaviors ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d68b93c03cfe5cc239e52b960effec41050ca6f9 https://github.com/WebKit/WebKit/commit/d68b93c03cfe5cc239e52b960effec41050ca6f9 Author: Kimmo Kinnunen Date: 2023-09-15 (Fri, 15 Sep 2023) Changed paths: A LayoutTests/fast/canvas/image-buffer-backend-variants-expected.txt A LayoutTests/fast/canvas/image-buffer-backend-variants.html R LayoutTests/fast/canvas/image-buffer-iosurface-disabled-expected.txt R LayoutTests/fast/canvas/image-buffer-iosurface-disabled.html A LayoutTests/platform/glib/fast/canvas/image-buffer-backend-variants-expected.txt A LayoutTests/platform/ios/fast/canvas/image-buffer-backend-variants-expected.txt M Source/WebCore/html/canvas/CanvasRenderingContext2D.idl M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h M Source/WebCore/html/canvas/CanvasRenderingContext2DSettings.h M Source/WebCore/html/canvas/CanvasRenderingContext2DSettings.idl M Tools/DumpRenderTree/TestOptions.cpp Log Message: --- Add a test enumerating all the possible behaviors of the various context2d backends https://bugs.webkit.org/show_bug.cgi?id=261505 rdar://115425330 Reviewed by Matt Woodrow. Add a test enumerating various combinations of context2d backend creation parameters. This way it is easier to check the effect of a change to parameter limits or other logic. Notable result is that some cases where Accelerated is used will not result in an actual Accelerated ImageBuffer. This will be addressed in later commits. The test creates normal context2d instances with various sizes and lists out the actual backend. This way when the backend limits are changed, the changes are reflected in the results. The test creates context2d instances with forced ImageBuffer rendering modes. This all the backend behaviors with various sizes are enumerated. * LayoutTests/fast/canvas/image-buffer-backend-variants-expected.txt: Added. * LayoutTests/fast/canvas/image-buffer-backend-variants.html: Added. * LayoutTests/fast/canvas/image-buffer-iosurface-disabled-expected.txt: Removed. * LayoutTests/fast/canvas/image-buffer-iosurface-disabled.html: Removed. * Source/WebCore/html/canvas/CanvasRenderingContext2D.idl: * Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp: (WebCore::CanvasRenderingContext2DBase::adjustImageBufferOptionsForTesting): (WebCore::CanvasRenderingContext2DBase::getEffectiveRenderingModeForTesting): * Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h: * Source/WebCore/html/canvas/CanvasRenderingContext2DSettings.h: * Source/WebCore/html/canvas/CanvasRenderingContext2DSettings.idl: Canonical link: https://commits.webkit.org/268015@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] b8769a: Some ImageBufferBackend implementations use resolu...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: b8769a5cf417b26f5883b32059d1fa1a29986703 https://github.com/WebKit/WebKit/commit/b8769a5cf417b26f5883b32059d1fa1a29986703 Author: Kimmo Kinnunen Date: 2023-09-04 (Mon, 04 Sep 2023) Changed paths: M Source/WebCore/platform/graphics/ImageBuffer.cpp M Source/WebCore/platform/graphics/ImageBuffer.h M Source/WebCore/platform/graphics/ImageBufferBackend.h M Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp M Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.h M Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.h Log Message: --- Some ImageBufferBackend implementations use resolutionScale https://bugs.webkit.org/show_bug.cgi?id=255983 rdar://108554761 Reviewed by Matt Woodrow. The resolutionScale is used to set up the initial transformation matrix of the graphics context used to draw to ImageBuffer. This is ImageBuffer logic. Move the creation signal of the GraphicsContext to ImageBuffer. When ImageBuffer knows when the context is being created, it can also apply the needed state to the new GraphicsContext. The transformation is already known statically due to the Info::baseTransform. This is work towards making the ImageBufferBackend implementations less rendundant and error-prone. This allows further commits to remove logicalSize and resolutionScale from ImageBufferBackend and removing unneeded virtual functions related to size concepts. * Source/WebCore/platform/graphics/ImageBuffer.cpp: (WebCore::ImageBuffer::context const): (WebCore::ImageBuffer::setBackend): (WebCore::ImageBuffer::releaseGraphicsContext): * Source/WebCore/platform/graphics/ImageBuffer.h: * Source/WebCore/platform/graphics/ImageBufferBackend.h: (WebCore::ImageBufferBackend::originAtBottomLeftCorner const): Deleted. * Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp: (WebCore::ImageBufferCGBackend::applyBaseTransform const): (WebCore::ImageBufferCGBackend::originAtBottomLeftCorner const): Deleted. * Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.h: * Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp: (WebKit::ImageBufferShareableBitmapBackend::ImageBufferShareableBitmapBackend): * Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h: * Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.h: Canonical link: https://commits.webkit.org/267604@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 0b6f3d: Update ANGLE to 2023-09-01 (5f36f55a007eacdac13868...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0b6f3d0e40e954117c00331d5920fdbf43785341 https://github.com/WebKit/WebKit/commit/0b6f3d0e40e954117c00331d5920fdbf43785341 Author: Kimmo Kinnunen Date: 2023-09-04 (Mon, 04 Sep 2023) Changed paths: M Source/ThirdParty/ANGLE/.gitignore A Source/ThirdParty/ANGLE/.gitmodules M Source/ThirdParty/ANGLE/.gn M Source/ThirdParty/ANGLE/ANGLE.plist M Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj M Source/ThirdParty/ANGLE/BUILD.gn M Source/ThirdParty/ANGLE/CONTRIBUTORS M Source/ThirdParty/ANGLE/Compiler.cmake M Source/ThirdParty/ANGLE/D3D.cmake M Source/ThirdParty/ANGLE/DEPS M Source/ThirdParty/ANGLE/GL.cmake M Source/ThirdParty/ANGLE/GLESv2.cmake M Source/ThirdParty/ANGLE/Metal.cmake M Source/ThirdParty/ANGLE/OWNERS M Source/ThirdParty/ANGLE/PRESUBMIT.py M Source/ThirdParty/ANGLE/WebKit/ANGLEShaderProgramVersion.h M Source/ThirdParty/ANGLE/WebKit/SourcesCGL.cpp M Source/ThirdParty/ANGLE/WebKit/SourcesEAGL.cpp M Source/ThirdParty/ANGLE/WebKit/angle_commit.h M Source/ThirdParty/ANGLE/build_overrides/angle.gni A Source/ThirdParty/ANGLE/build_overrides/vulkan_utility_libraries.gni M Source/ThirdParty/ANGLE/build_overrides/vulkan_validation_layers.gni M Source/ThirdParty/ANGLE/changes.diff M Source/ThirdParty/ANGLE/doc/Orientation.md M Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_stream_producer_d3d_texture.txt M Source/ThirdParty/ANGLE/gni/angle.gni M Source/ThirdParty/ANGLE/include/EGL/egl.h M Source/ThirdParty/ANGLE/include/EGL/eglext.h M Source/ThirdParty/ANGLE/include/EGL/eglplatform.h M Source/ThirdParty/ANGLE/include/GLSLANG/ShaderLang.h M Source/ThirdParty/ANGLE/include/platform/Feature.h M Source/ThirdParty/ANGLE/include/platform/autogen/FeaturesGL_autogen.h M Source/ThirdParty/ANGLE/include/platform/autogen/FeaturesVk_autogen.h M Source/ThirdParty/ANGLE/include/platform/gl_features.json M Source/ThirdParty/ANGLE/include/platform/vk_features.json M Source/ThirdParty/ANGLE/infra/ANGLEWrangling.md M Source/ThirdParty/ANGLE/infra/config/generated/commit-queue.cfg M Source/ThirdParty/ANGLE/infra/config/generated/cr-buildbucket.cfg M Source/ThirdParty/ANGLE/infra/config/generated/project.cfg M Source/ThirdParty/ANGLE/infra/config/main.star M Source/ThirdParty/ANGLE/infra/specs/angle.json M Source/ThirdParty/ANGLE/infra/specs/angle_mb_config.pyl M Source/ThirdParty/ANGLE/infra/specs/mixins.pyl M Source/ThirdParty/ANGLE/infra/specs/test_suites.pyl M Source/ThirdParty/ANGLE/infra/specs/waterfalls.pyl A Source/ThirdParty/ANGLE/scripts/angle_deqp_bundle.py M Source/ThirdParty/ANGLE/scripts/angle_trace_bundle.py M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_format.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_load_functions_table.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/D3D11_format.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/DXGI_format.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Extension_files.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_CTS_(dEQP)_build_files.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_WGL_loader.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_entry_points.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_format_map.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GLenum_value_to_string_map.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Metal_default_shaders.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Metal_format_table.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_format.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/interpreter_utils.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/packed_enum.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/proc_table.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/restricted_traces.json R Source/ThirdParty/ANGLE/scripts/perf_test_runner.py M Source/ThirdParty/ANGLE/scripts/registry_xml.py M Source/ThirdParty/ANGLE/scripts/roll_aosp.sh M Source/ThirdParty/ANGLE/scripts/roll_chromium_deps.py M Source/ThirdParty/ANGLE/src/common/CompiledShaderState.cpp M Source/ThirdParty/ANGLE/src/common/CompiledShaderState.h M Source/ThirdParty/ANGLE/src/common/PackedGLEnums_autogen.cpp M Source/ThirdParty/ANGLE/src/common/PackedGLEnums_autogen.h M Source/ThirdParty/ANGLE/src/common/WorkerThread.cpp M Source/ThirdParty/ANGLE/src/common/angleutils.h M Source/ThirdParty/ANGLE
[webkit-changes] [WebKit/WebKit] f64219: CanvasBase constructs the backing store as Display...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: f64219027be91844d857f05ae6ef8b6a4a85ad23 https://github.com/WebKit/WebKit/commit/f64219027be91844d857f05ae6ef8b6a4a85ad23 Author: Kimmo Kinnunen Date: 2023-09-07 (Thu, 07 Sep 2023) Changed paths: M Source/WebCore/html/CanvasBase.cpp M Source/WebCore/html/CanvasBase.h M Source/WebCore/html/HTMLCanvasElement.cpp M Source/WebCore/html/HTMLCanvasElement.h M Source/WebCore/html/OffscreenCanvas.cpp M Source/WebCore/testing/Internals.cpp Log Message: --- CanvasBase constructs the backing store as DisplayList::ImageBuffer in some cases https://bugs.webkit.org/show_bug.cgi?id=261276 rdar://problem/115116912 Reviewed by Matt Woodrow. Using DisplayList::ImageBuffer for Context2D backing stores is problematic: - DisplayListDrawingEnabled setting is about render layer backing stores being display listed, not the contents of the context rendering. - Internals::setElementUsesDisplayListDrawing() would set the display listing of HTMLCanvasElement, but it didn't have the mechanism to observe the list. In general case, it is also impossible (see getImageData/putImageData below). - Context2D cannot support display lists, as putImageData is not supported and getImageData would need to flatten the list. This Makes the code quite buggy. - CanvasRenderingContex2DBase already has a setting to record display lists for CustomPaintCanvas. Passing this setting to CanvasBase::allocateImageBuffer() was confusing and wrong, as CustomPaintCanvas does ad hoc overrides so that the buffer is never used. Remove the ability to create tahe CanvasBase::m_buffer (context2d backing store) as a DisplayList::ImageBuffer. * Source/WebCore/html/CanvasBase.cpp: (WebCore::CanvasBase::allocateImageBuffer const): * Source/WebCore/html/CanvasBase.h: * Source/WebCore/html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::createImageBuffer const): (WebCore::HTMLCanvasElement::setUsesDisplayListDrawing): Deleted. * Source/WebCore/html/HTMLCanvasElement.h: * Source/WebCore/html/OffscreenCanvas.cpp: (WebCore::OffscreenCanvas::transferToImageBitmap): (WebCore::OffscreenCanvas::createImageBuffer const): * Source/WebCore/testing/Internals.cpp: (WebCore::Internals::setElementUsesDisplayListDrawing): Canonical link: https://commits.webkit.org/267772@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] d9f5ea: Move RemoteImageBuffer methods from RemoteDisplayL...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d9f5ea75d6257fa10cbfc0bfb2a2a8d69478f1f9 https://github.com/WebKit/WebKit/commit/d9f5ea75d6257fa10cbfc0bfb2a2a8d69478f1f9 Author: Kimmo Kinnunen Date: 2023-09-08 (Fri, 08 Sep 2023) Changed paths: M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in M Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.cpp M Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.h M Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.messages.in M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h Log Message: --- Move RemoteImageBuffer methods from RemoteDisplayListRecorder to RemoteImageBuffer https://bugs.webkit.org/show_bug.cgi?id=261141 rdar://114970484 Reviewed by Matt Woodrow. Move convertToLuminanceMask, transformToColorSpace, flushContext, flushContextSync to RemoteImageBuffer, as these are ImageBuffer methods. * Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h: * Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h: (): Deleted. * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp: (WebKit::RemoteDisplayListRecorder::convertToLuminanceMask): Deleted. (WebKit::RemoteDisplayListRecorder::transformToColorSpace): Deleted. (WebKit::RemoteDisplayListRecorder::flushContext): Deleted. (WebKit::RemoteDisplayListRecorder::flushContextSync): Deleted. * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h: * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in: * Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.cpp: (WebKit::RemoteImageBuffer::convertToLuminanceMask): (WebKit::RemoteImageBuffer::transformToColorSpace): (WebKit::RemoteImageBuffer::flushContext): (WebKit::RemoteImageBuffer::flushContextSync): * Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.h: * Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.messages.in: * Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp: (WebKit::RemoteDisplayListRecorderProxy::convertToLuminanceMask): Deleted. (WebKit::RemoteDisplayListRecorderProxy::transformToColorSpace): Deleted. (WebKit::RemoteDisplayListRecorderProxy::sendSync): Deleted. (WebKit::RemoteDisplayListRecorderProxy::flushContext): Deleted. (WebKit::RemoteDisplayListRecorderProxy::flushContextSync): Deleted. * Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h: * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp: (WebKit::RemoteImageBufferProxy::send): (WebKit::RemoteImageBufferProxy::sendSync): (WebKit::RemoteImageBufferProxy::convertToLuminanceMask): (WebKit::RemoteImageBufferProxy::transformToColorSpace): (WebKit::RemoteImageBufferProxy::flushDrawingContext): (WebKit::RemoteImageBufferProxy::flushDrawingContextAsync): * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h: Canonical link: https://commits.webkit.org/26@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 56fa22: Cocoa WorkQueue::dispatchWithQOS() and dispatch() ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 56fa22f9af0ff3e8bb475e9293bf8da34d88926b https://github.com/WebKit/WebKit/commit/56fa22f9af0ff3e8bb475e9293bf8da34d88926b Author: Kimmo Kinnunen Date: 2023-09-08 (Fri, 08 Sep 2023) Changed paths: M Source/WTF/wtf/cocoa/WorkQueueCocoa.cpp M Tools/TestWebKitAPI/Tests/WTF/WorkQueue.cpp Log Message: --- Cocoa WorkQueue::dispatchWithQOS() and dispatch() work item lifetime semantics do not match https://bugs.webkit.org/show_bug.cgi?id=260852 rdar://114618174 Reviewed by Jean-Yves Avenard and Chris Dumez. dispatch() users expect the work function to be destructed in the queue Add the same semantic to dispatchWithQOS() to avoid confusion in the code and to have uniform interface. * Source/WTF/wtf/cocoa/WorkQueueCocoa.cpp: (WTF::WorkQueueBase::dispatchWithQOS): * Tools/TestWebKitAPI/Tests/WTF/WorkQueue.cpp: (TestWebKitAPI::TEST): Canonical link: https://commits.webkit.org/267776@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] c10202: ImageBufferBackend::toBackendCoordinates is a redu...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c102029b036a7b0ff8df06206e243f0e86d7f1ad https://github.com/WebKit/WebKit/commit/c102029b036a7b0ff8df06206e243f0e86d7f1ad Author: Kimmo Kinnunen Date: 2023-09-08 (Fri, 08 Sep 2023) Changed paths: M Source/WebCore/platform/graphics/ImageBuffer.cpp M Source/WebCore/platform/graphics/ImageBufferBackend.h M Source/WebCore/platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp Log Message: --- ImageBufferBackend::toBackendCoordinates is a redundant function https://bugs.webkit.org/show_bug.cgi?id=261198 rdar://115051175 Reviewed by Matt Woodrow. Currently RemoteImageBufferProxy::getPixelBuffer is incorrect because it needs a backend to call to toBackendCoordinates. It's better to not have the helper, the info is already available in ImageBuffer. * Source/WebCore/platform/graphics/ImageBuffer.cpp: (WebCore::ImageBuffer::getPixelBuffer const): (WebCore::ImageBuffer::putPixelBuffer): * Source/WebCore/platform/graphics/ImageBufferBackend.h: (WebCore::ImageBufferBackend::toBackendCoordinates const): Deleted. * Source/WebCore/platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp: (WebCore::ImageBufferCairoSurfaceBackend::putPixelBuffer): ImageBufferBackend arguments are already in backend coordinates, no need to map Canonical link: https://commits.webkit.org/267774@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 61d979: ImageBufferCreationContext is used in wrong ImageB...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 61d979e4fad43706a4ef65c9baefe3a135741e87 https://github.com/WebKit/WebKit/commit/61d979e4fad43706a4ef65c9baefe3a135741e87 Author: Kimmo Kinnunen Date: 2023-09-08 (Fri, 08 Sep 2023) Changed paths: M Source/WebCore/html/CanvasBase.cpp M Source/WebCore/html/HTMLVideoElement.cpp M Source/WebCore/html/ImageBitmap.cpp M Source/WebCore/page/FrameSnapshotting.cpp M Source/WebCore/platform/graphics/ImageBuffer.cpp M Source/WebCore/platform/graphics/ImageBuffer.h M Source/WebCore/platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.cpp M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h M Source/WebCore/rendering/style/StyleFilterImage.cpp M Source/WebCore/svg/graphics/SVGImage.cpp M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp M Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.cpp Log Message: --- ImageBufferCreationContext is used in wrong ImageBuffer::create factory function https://bugs.webkit.org/show_bug.cgi?id=261259 rdar://115098672 Reviewed by Matt Woodrow. ImageBufferCreationContext is ad hoc amalgamation of all parameters accepted by any ImageBufferBackend, populated for the purpose of constructing a specific backend. ImageBuffer::create(..., const ImageBufferCreationContext&) is the concrete function constructing a specific ImageBuffer type with a specific backend. ImageBuffer::create(...) is a polymorphic factory, which invokes the GraphicsClient, a polymorphic interface. It doesn't request a specific backend, rather the polymorphism selects the backend based on policy. This function shouldn't accept ImageBufferCreationContext, there's nothing that can be populated by the caller, except fields incorrectly added to ImageBufferCreationContext. Remove ImageBufferCreationContext from ImageBuffer::create(...). It cannot be populated from the call sites, as the call sites don't know what type of buffers will be created -- that is the part that is abstracted. Remove GraphicsClient from ImageBufferCreationContext. GraphicsClient is the polymorphic factory, which is pointless in context of ImageBufferCreationContext. ImageBufferCreationContext is used when the concrete type is known at the call site. Move ImageBufferCreationContext::avoidIOSurfaceSizeCheckInWebProcessForTesting as ImageBufferOptions::AvoidBackendSizeCheckForTesting. The property is a testing property, configuring the behavior of ImageBuffer::create(...). * Source/WebCore/html/CanvasBase.cpp: (WebCore::CanvasBase::allocateImageBuffer const): * Source/WebCore/html/HTMLVideoElement.cpp: (WebCore::HTMLVideoElement::createBufferForPainting const): * Source/WebCore/html/ImageBitmap.cpp: (WebCore::ImageBitmap::createImageBuffer): * Source/WebCore/page/FrameSnapshotting.cpp: (WebCore::snapshotFrameRectWithClip): * Source/WebCore/platform/graphics/ImageBuffer.cpp: (WebCore::ImageBuffer::create): * Source/WebCore/platform/graphics/ImageBuffer.h: (WebCore::ImageBuffer::create): (WebCore::ImageBufferCreationContext::ImageBufferCreationContext): Deleted. * Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp: (WebCore::ImageBufferIOSurfaceBackend::create): * Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h: * Source/WebCore/rendering/style/StyleFilterImage.cpp: (WebCore::StyleFilterImage::image const): * Source/WebCore/svg/graphics/SVGImage.cpp: (WebCore::SVGImage::nativeImage): * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp: (WebKit::RemoteRenderingBackend::moveToImageBuffer): (WebKit::RemoteRenderingBackend::createImageBuffer): * Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm: (WebKit::RemoteLayerBackingStoreCollection::allocateBufferForBackingStore): * Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp: (WebKit::ImageBufferShareableMappedIOSurfaceBackend::create): Canonical link: https://commits.webkit.org/267792@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 7b16f5: WebGLRenderingContextBase::m_needsUpdate is a redu...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 7b16f53a6ca333f87a4d6a38f399b18118b3413a https://github.com/WebKit/WebKit/commit/7b16f53a6ca333f87a4d6a38f399b18118b3413a Author: Kimmo Kinnunen Date: 2023-10-26 (Thu, 26 Oct 2023) Changed paths: M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.h Log Message: --- WebGLRenderingContextBase::m_needsUpdate is a redundant flag https://bugs.webkit.org/show_bug.cgi?id=263648 rdar://117469562 Reviewed by Dan Glastonbury. Remove m_needsUpdate. It controlled the `renderBox->contentChanged(CanvasChanged)` call when the context was created during reshape, only the first time after a context creation. Initial creation for HTMLCanvasElement will call contentChanged explicitly. Upon restoring lost context, this is called after successful restore. * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::initializeContextState): (WebCore::WebGLRenderingContextBase::reshape): * Source/WebCore/html/canvas/WebGLRenderingContextBase.h: Canonical link: https://commits.webkit.org/269841@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 27dac3: WebGLRenderingContextBase preventBufferClearForIns...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 27dac32ecc9c989f5d4cd702baba2db6fc23fdde https://github.com/WebKit/WebKit/commit/27dac32ecc9c989f5d4cd702baba2db6fc23fdde Author: Kimmo Kinnunen Date: 2023-11-01 (Wed, 01 Nov 2023) Changed paths: M Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp M Source/WebCore/html/CanvasBase.cpp M Source/WebCore/html/HTMLCanvasElement.cpp M Source/WebCore/html/OffscreenCanvas.cpp M Source/WebCore/html/canvas/CanvasRenderingContext.h M Source/WebCore/html/canvas/GPUCanvasContextCocoa.h M Source/WebCore/html/canvas/GPUCanvasContextCocoa.mm M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.h M Source/WebCore/inspector/InspectorCanvas.cpp Log Message: --- WebGLRenderingContextBase preventBufferClearForInspector is redundant https://bugs.webkit.org/show_bug.cgi?id=263885 rdar://117684773 Reviewed by Dan Glastonbury. WebGLRenderingContextBase::setPreventBufferClearForInspector was intended to make sure that inspector reading the WebGL rendering would not force the pending drawing buffer clear. The read happens with toDataURL, which generally used to read drawing buffer, not compositing buffer. This was a workaround for case where the read would happen after prepareForDisplay. However, preventing the clear is incorrect, as there is nothing correct to be read from the uncleared back buffer. That buffer may contain contents from two frames back or it might be a brand new buffer. Instead, make it explicit that the transfer to the rendering results happens from display buffer if there is no draws in drawing buffer. Otherwise use the drawing buffer. Remove the redundant m_isDisplayingWithPaint, instead prepare the display buffer during paint, if it is not already prepared. Normal layer paint happens after document-wide preparation during rendering update. Snapshots paint or print may happen without preparation, so the HTMLCanvasElement::paint will prepare the display buffer. Removes the canvas reading taint check logic from Web Inspector capture. The capture should always work, as it is trusted. Each individual draw commands will be captured differently, and there the result data reflects what the target canvas receives, taint logic included. * Source/WebCore/html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::paint): * Source/WebCore/html/OffscreenCanvas.cpp: (WebCore::OffscreenCanvas::commitToPlaceholderCanvas): * Source/WebCore/html/canvas/CanvasRenderingContext.h: (WebCore::CanvasRenderingContext::prepareForDisplayWithPaint): Deleted. * Source/WebCore/html/canvas/GPUCanvasContextCocoa.h: * Source/WebCore/html/canvas/GPUCanvasContextCocoa.mm: (WebCore::GPUCanvasContextCocoa::prepareForDisplayWithPaint): Deleted. * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::initializeContextState): (WebCore::WebGLRenderingContextBase::markContextChanged): (WebCore::WebGLRenderingContextBase::clearIfComposited): (WebCore::WebGLRenderingContextBase::paintRenderingResultsToCanvas): (WebCore::WebGLRenderingContextBase::prepareForDisplayWithPaint): Deleted. * Source/WebCore/html/canvas/WebGLRenderingContextBase.h: (WebCore::WebGLRenderingContextBase::preventBufferClearForInspector const): Deleted. (WebCore::WebGLRenderingContextBase::setPreventBufferClearForInspector): Deleted. * Source/WebCore/inspector/InspectorCanvas.cpp: (WebCore::InspectorCanvas::getContentAsDataURL): Canonical link: https://commits.webkit.org/270046@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] d4bd8f: REGRESSION (269939@main): [ macOS iOS17 Debug ]ASS...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d4bd8fde07522000d3e821db021eaaf109637ceb https://github.com/WebKit/WebKit/commit/d4bd8fde07522000d3e821db021eaaf109637ceb Author: Kimmo Kinnunen Date: 2023-11-01 (Wed, 01 Nov 2023) Changed paths: M LayoutTests/platform/ios/TestExpectations M LayoutTests/platform/mac/TestExpectations Log Message: --- REGRESSION (269939@main): [ macOS iOS17 Debug ]ASSERTION FAILED: m_compositingResultsNeedUpdating in imported/w3c/web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize.html result of constant crash https://bugs.webkit.org/show_bug.cgi?id=263977 rdar://117746791 Unreviewed test gardening. Re-enable the tests, 270046@main fixed them. * LayoutTests/platform/ios/TestExpectations: * LayoutTests/platform/mac/TestExpectations: Canonical link: https://commits.webkit.org/270102@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 5f0cd6: Update WebGL conformance tests 2023-10-14 (39b34d8...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5f0cd64bb733f5b27328ae404e23a7ea1c15d1aa https://github.com/WebKit/WebKit/commit/5f0cd64bb733f5b27328ae404e23a7ea1c15d1aa Author: Kimmo Kinnunen Date: 2023-11-02 (Thu, 02 Nov 2023) Changed paths: M LayoutTests/TestExpectations M LayoutTests/platform/ios-simulator/TestExpectations A LayoutTests/webgl/2.0.y/conformance2/canvas/drawingbuffer-storage-test-expected.txt A LayoutTests/webgl/2.0.y/conformance2/canvas/drawingbuffer-storage-test.html A LayoutTests/webgl/2.0.y/conformance2/query/occlusion-query-scissor-expected.txt A LayoutTests/webgl/2.0.y/conformance2/query/occlusion-query-scissor.html A LayoutTests/webgl/2.0.y/conformance2/wasm/readpixels-16gb-wasm-memory-expected.txt A LayoutTests/webgl/2.0.y/conformance2/wasm/readpixels-16gb-wasm-memory.html A LayoutTests/webgl/2.0.y/conformance2/wasm/readpixels-4gb-wasm-memory-expected.txt A LayoutTests/webgl/2.0.y/conformance2/wasm/readpixels-4gb-wasm-memory.html A LayoutTests/webgl/2.0.y/conformance2/wasm/teximage2d-16gb-wasm-memory-expected.txt A LayoutTests/webgl/2.0.y/conformance2/wasm/teximage2d-16gb-wasm-memory.html A LayoutTests/webgl/2.0.y/conformance2/wasm/teximage2d-4gb-wasm-memory-expected.txt A LayoutTests/webgl/2.0.y/conformance2/wasm/teximage2d-4gb-wasm-memory.html A LayoutTests/webgl/2.0.y/conformance2/wasm/texsubimage2d-16gb-wasm-memory-expected.txt A LayoutTests/webgl/2.0.y/conformance2/wasm/texsubimage2d-16gb-wasm-memory.html A LayoutTests/webgl/2.0.y/conformance2/wasm/texsubimage2d-4gb-wasm-memory-expected.txt A LayoutTests/webgl/2.0.y/conformance2/wasm/texsubimage2d-4gb-wasm-memory.html A LayoutTests/webgl/resources/webgl_test_files/conformance/canvas/drawingbuffer-storage-test.html M LayoutTests/webgl/resources/webgl_test_files/conformance/extensions/khr-parallel-shader-compile.html A LayoutTests/webgl/resources/webgl_test_files/conformance2/canvas/drawingbuffer-storage-test.html A LayoutTests/webgl/resources/webgl_test_files/conformance2/query/occlusion-query-scissor.html M LayoutTests/webgl/resources/webgl_test_files/conformance2/renderbuffers/framebuffer-texture-layer.html M LayoutTests/webgl/resources/webgl_test_files/conformance2/rendering/blitframebuffer-test.html A LayoutTests/webgl/resources/webgl_test_files/conformance2/textures/misc/tex-image-10bpc.html A LayoutTests/webgl/resources/webgl_test_files/conformance2/wasm/readpixels-16gb-wasm-memory.html A LayoutTests/webgl/resources/webgl_test_files/conformance2/wasm/readpixels-4gb-wasm-memory.html A LayoutTests/webgl/resources/webgl_test_files/conformance2/wasm/teximage2d-16gb-wasm-memory.html A LayoutTests/webgl/resources/webgl_test_files/conformance2/wasm/teximage2d-4gb-wasm-memory.html A LayoutTests/webgl/resources/webgl_test_files/conformance2/wasm/texsubimage2d-16gb-wasm-memory.html A LayoutTests/webgl/resources/webgl_test_files/conformance2/wasm/texsubimage2d-4gb-wasm-memory.html A LayoutTests/webgl/resources/webgl_test_files/js/tests/drawingbuffer-storage-test.js A LayoutTests/webgl/resources/webgl_test_files/resources/red-gradient-8x1-10bit-untagged.png Log Message: --- Update WebGL conformance tests 2023-10-14 (39b34d8f45ab0d5c243f336420d7475dbe4ed61f) https://bugs.webkit.org/show_bug.cgi?id=263966 rdar://117740578 Unreviewed, imported from upstream. * LayoutTests/webgl/2.0.y/conformance2/canvas/drawingbuffer-storage-test-expected.txt: Added. * LayoutTests/webgl/2.0.y/conformance2/canvas/drawingbuffer-storage-test.html: Added. * LayoutTests/webgl/2.0.y/conformance2/query/occlusion-query-scissor-expected.txt: Added. * LayoutTests/webgl/2.0.y/conformance2/query/occlusion-query-scissor.html: Added. * LayoutTests/webgl/2.0.y/conformance2/wasm/readpixels-16gb-wasm-memory-expected.txt: Added. * LayoutTests/webgl/2.0.y/conformance2/wasm/readpixels-16gb-wasm-memory.html: Added. * LayoutTests/webgl/2.0.y/conformance2/wasm/readpixels-4gb-wasm-memory-expected.txt: Added. * LayoutTests/webgl/2.0.y/conformance2/wasm/readpixels-4gb-wasm-memory.html: Added. * LayoutTests/webgl/2.0.y/conformance2/wasm/teximage2d-16gb-wasm-memory-expected.txt: Added. * LayoutTests/webgl/2.0.y/conformance2/wasm/teximage2d-16gb-wasm-memory.html: Added. * LayoutTests/webgl/2.0.y/conformance2/wasm/teximage2d-4gb-wasm-memory-expected.txt: Added. * LayoutTests/webgl/2.0.y/conformance2/wasm/teximage2d-4gb-wasm-memory.html: Added. * LayoutTests/webgl/2.0.y/conformance2/wasm/texsubimage2d-16gb-wasm-memory-expected.txt: Added. * LayoutTests/webgl/2.0.y/conformance2/wasm/texsubimage2d-16gb-wasm-memory.html: Added. * LayoutTests/webgl/2.0.y/conformance2/wasm/texsubimage2d-4gb-wasm-memory-expected.txt: Added. * LayoutTests/webgl/2.0.y/conformance2/wasm/texsubimage2d-4gb-wasm-memory.html: Added. * LayoutTests/webgl/resources
[webkit-changes] [WebKit/WebKit] a48a89: Add max samples accessor for WebGLRenderingContext...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a48a890fc2ef03c6b5e2764ea5d65396f5738cab https://github.com/WebKit/WebKit/commit/a48a890fc2ef03c6b5e2764ea5d65396f5738cab Author: Kimmo Kinnunen Date: 2023-11-07 (Tue, 07 Nov 2023) Changed paths: M Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp M Source/WebCore/html/canvas/WebGL2RenderingContext.cpp M Source/WebCore/html/canvas/WebGL2RenderingContext.h M Source/WebCore/html/canvas/WebGLDrawBuffers.cpp M Source/WebCore/html/canvas/WebGLRenderingContext.cpp M Source/WebCore/html/canvas/WebGLRenderingContext.h M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.h M Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.cpp Log Message: --- Add max samples accessor for WebGLRenderingContextBase https://bugs.webkit.org/show_bug.cgi?id=264155 rdar://117903868 Reviewed by Dan Glastonbury. Add WebGLRenderingContextBase::maxSamples() to access the GL_MAX_SAMPLES. This is used in the WebXR layer framebuffer implementation. This will be used also in the default framebuffer implementation. Use uniform WebKit naming for all the similar accessors. Use the client-side state when JS queries the state for all similar state. * Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp: (WebCore::WebXROpaqueFramebuffer::setupFramebuffer): * Source/WebCore/html/canvas/WebGL2RenderingContext.cpp: (WebCore::WebGL2RenderingContext::vertexAttribI4i): (WebCore::WebGL2RenderingContext::vertexAttribI4iv): (WebCore::WebGL2RenderingContext::vertexAttribI4ui): (WebCore::WebGL2RenderingContext::vertexAttribI4uiv): (WebCore::WebGL2RenderingContext::vertexAttribIPointer): (WebCore::WebGL2RenderingContext::drawBuffers): (WebCore::WebGL2RenderingContext::validateNonDefaultFramebufferAttachment): (WebCore::WebGL2RenderingContext::maxDrawBuffers): (WebCore::WebGL2RenderingContext::maxColorAttachments): (WebCore::WebGL2RenderingContext::getParameter): (WebCore::WebGL2RenderingContext::getMaxDrawBuffers): Deleted. (WebCore::WebGL2RenderingContext::getMaxColorAttachments): Deleted. * Source/WebCore/html/canvas/WebGL2RenderingContext.h: * Source/WebCore/html/canvas/WebGLDrawBuffers.cpp: (WebCore::WebGLDrawBuffers::drawBuffersWEBGL): * Source/WebCore/html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::maxDrawBuffers): (WebCore::WebGLRenderingContext::maxColorAttachments): (WebCore::WebGLRenderingContext::getMaxDrawBuffers): Deleted. (WebCore::WebGLRenderingContext::getMaxColorAttachments): Deleted. * Source/WebCore/html/canvas/WebGLRenderingContext.h: * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::initializeContextState): (WebCore::WebGLRenderingContextBase::bindAttribLocation): (WebCore::WebGLRenderingContextBase::disableVertexAttribArray): (WebCore::WebGLRenderingContextBase::enableVertexAttribArray): (WebCore::WebGLRenderingContextBase::getParameter): (WebCore::WebGLRenderingContextBase::getVertexAttrib): (WebCore::WebGLRenderingContextBase::vertexAttribPointer): (WebCore::WebGLRenderingContextBase::getWebGLIntArrayParameter): (WebCore::WebGLRenderingContextBase::validateFramebufferFuncParameters): (WebCore::WebGLRenderingContextBase::vertexAttribfImpl): (WebCore::WebGLRenderingContextBase::vertexAttribfvImpl): (WebCore::WebGLRenderingContextBase::maxDrawBuffers): (WebCore::WebGLRenderingContextBase::maxColorAttachments): (WebCore::WebGLRenderingContextBase::vertexAttribDivisor): (WebCore::WebGLRenderingContextBase::getMaxDrawBuffers): Deleted. (WebCore::WebGLRenderingContextBase::getMaxColorAttachments): Deleted. * Source/WebCore/html/canvas/WebGLRenderingContextBase.h: (WebCore::WebGLRenderingContextBase::maxVertexAttribs const): (WebCore::WebGLRenderingContextBase::maxSamples const): (WebCore::WebGLRenderingContextBase::getMaxVertexAttribs const): Deleted. * Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.cpp: (WebCore::WebGLVertexArrayObjectBase::WebGLVertexArrayObjectBase): Canonical link: https://commits.webkit.org/270317@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 4c22d8: REGRESSION(270269@main) WK_C_API_DEPRECATED_WITH_M...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4c22d8ce00c4a3eaf75085b3fbf5f1ebe1ebf8fd https://github.com/WebKit/WebKit/commit/4c22d8ce00c4a3eaf75085b3fbf5f1ebe1ebf8fd Author: Kimmo Kinnunen Date: 2023-11-07 (Tue, 07 Nov 2023) Changed paths: M Source/WebKit/UIProcess/API/C/WKFrameHandleRef.h Log Message: --- REGRESSION(270269@main) WK_C_API_DEPRECATED_WITH_MESSAGE is not defined in WKFrameHandleRef.h https://bugs.webkit.org/show_bug.cgi?id=264331 rdar://118052071 Unreviewed, build fix. WKDeprecated.h must be explicitly included to have WK_C_API_DEPRECATED_WITH_MESSAGE * Source/WebKit/UIProcess/API/C/WKFrameHandleRef.h: Canonical link: https://commits.webkit.org/270316@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 347e85: WebGL high performance context status diagnostic i...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 347e8590318c32376e5691c0304896a7a0ac26ca https://github.com/WebKit/WebKit/commit/347e8590318c32376e5691c0304896a7a0ac26ca Author: Kimmo Kinnunen Date: 2023-11-07 (Tue, 07 Nov 2023) Changed paths: M Source/WebCore/Headers.cmake M Source/WebCore/Sources.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.h R Source/WebCore/html/canvas/WebGLStateTracker.cpp R Source/WebCore/html/canvas/WebGLStateTracker.h M Source/WebCore/page/DiagnosticLoggingKeys.cpp M Source/WebCore/page/DiagnosticLoggingKeys.h M Source/WebCore/page/Page.cpp M Source/WebCore/page/Page.h M Source/WebCore/page/PageConfiguration.cpp M Source/WebCore/page/PageConfiguration.h M Source/WebKit/SourcesCocoa.txt R Source/WebKit/UIProcess/HighPerformanceGraphicsUsageSampler.cpp R Source/WebKit/UIProcess/HighPerformanceGraphicsUsageSampler.h M Source/WebKit/UIProcess/WebPageProxy.h M Source/WebKit/UIProcess/WebPageProxy.messages.in M Source/WebKit/UIProcess/WebProcessPool.cpp M Source/WebKit/UIProcess/WebProcessPool.h M Source/WebKit/WebKit.xcodeproj/project.pbxproj M Source/WebKit/WebProcess/WebPage/WebPage.cpp Log Message: --- WebGL high performance context status diagnostic is not useful anymore https://bugs.webkit.org/show_bug.cgi?id=263651 rdar://117470970 Reviewed by Chris Dumez. WebGL would keep track if the page contains high performance WebGL contexts and would provide a way for the browser to obtain this status as diagnostic log value. This is likely not useful anymore. Removes the diagnostic key and code that populates it. * Source/WebCore/Headers.cmake: * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase): (WebCore::WebGLRenderingContextBase::registerWithWebGLStateTracker): Deleted. * Source/WebCore/html/canvas/WebGLRenderingContextBase.h: * Source/WebCore/html/canvas/WebGLStateTracker.cpp: Removed. * Source/WebCore/html/canvas/WebGLStateTracker.h: Removed. * Source/WebCore/page/DiagnosticLoggingKeys.cpp: (WebCore::WebCore::DiagnosticLoggingKeys::webGLStateKey): Deleted. * Source/WebCore/page/Page.cpp: (WebCore::Page::Page): * Source/WebCore/page/Page.h: (WebCore::Page::webGLStateTracker const): Deleted. * Source/WebCore/page/PageConfiguration.cpp: * Source/WebCore/page/PageConfiguration.h: * Source/WebKit/SourcesCocoa.txt: * Source/WebKit/UIProcess/HighPerformanceGraphicsUsageSampler.cpp: Removed. * Source/WebKit/UIProcess/HighPerformanceGraphicsUsageSampler.h: Removed. * Source/WebKit/UIProcess/WebPageProxy.h: * Source/WebKit/UIProcess/WebPageProxy.messages.in: * Source/WebKit/UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::WebProcessPool): * Source/WebKit/UIProcess/WebProcessPool.h: * Source/WebKit/WebKit.xcodeproj/project.pbxproj: * Source/WebKit/WebProcess/WebPage/WebPage.cpp: (WebKit::m_historyItemClient): Canonical link: https://commits.webkit.org/270337@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] f19506: WebGLRenderingContextBase::markContextChanged() is...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: f19506c5ff6216ac0d1ddc502fd5e94b5554e117 https://github.com/WebKit/WebKit/commit/f19506c5ff6216ac0d1ddc502fd5e94b5554e117 Author: Kimmo Kinnunen Date: 2023-10-31 (Tue, 31 Oct 2023) Changed paths: M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.h Log Message: --- WebGLRenderingContextBase::markContextChanged() is a redundant function https://bugs.webkit.org/show_bug.cgi?id=263761 rdar://117569900 Reviewed by Dan Glastonbury. Inline the redundant function in the caller. No intended functional change. This is work towards removing the redundancy in the default framebuffer handling logic, eventually to fix bugs in premultipliedAlpha compositing. * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::markContextChangedAndNotifyCanvasObserver): (WebCore::WebGLRenderingContextBase::markContextChanged): Deleted. * Source/WebCore/html/canvas/WebGLRenderingContextBase.h: Canonical link: https://commits.webkit.org/26@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] c603c2: Update ANGLE to 2023-10-27 (06819324b129363163068c...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c603c2bbcb9cf5f231844bf7a3adc739968cde12 https://github.com/WebKit/WebKit/commit/c603c2bbcb9cf5f231844bf7a3adc739968cde12 Author: Kimmo Kinnunen Date: 2023-10-30 (Mon, 30 Oct 2023) Changed paths: M Source/ThirdParty/ANGLE/ANGLE.plist M Source/ThirdParty/ANGLE/Compiler.cmake M Source/ThirdParty/ANGLE/DEPS M Source/ThirdParty/ANGLE/Metal.cmake M Source/ThirdParty/ANGLE/WebKit/ANGLEShaderProgramVersion.h M Source/ThirdParty/ANGLE/WebKit/angle_commit.h M Source/ThirdParty/ANGLE/changes.diff M Source/ThirdParty/ANGLE/gni-to-cmake.py M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Metal_default_shaders.json M Source/ThirdParty/ANGLE/src/angle_program_serialize_data_version.gni M Source/ThirdParty/ANGLE/src/compiler.gni M Source/ThirdParty/ANGLE/src/compiler/translator/spirv/TranslatorSPIRV.cpp A Source/ThirdParty/ANGLE/src/compiler/translator/tree_ops/spirv/ReswizzleYUVOps.cpp A Source/ThirdParty/ANGLE/src/compiler/translator/tree_ops/spirv/ReswizzleYUVOps.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/BUILD.gn M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/TextureMtl.mm M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/metal_backend.gni M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_render_utils.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_render_utils.mm M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/shaders/copy_buffer.metal M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/shaders/mtl_internal_shaders_autogen.metal M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/shaders/mtl_internal_shaders_src_autogen.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/FramebufferVk.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.cpp M Source/ThirdParty/ANGLE/src/libANGLE/validationES.cpp M Source/ThirdParty/ANGLE/src/tests/gl_tests/ImageTest.cpp M Source/ThirdParty/ANGLE/src/tests/gl_tests/VertexAttributeTest.cpp Log Message: --- Update ANGLE to 2023-10-27 (06819324b129363163068c8f7ae8396bf83b4ec5) https://bugs.webkit.org/show_bug.cgi?id=263768 rdar://problem/117580611 Reviewed by Dan Glastonbury Contains upstream commits: git log --oneline 368ddf22e4d4eb5a54a5d2f5d424c1f6b5bf27bd..06819324b129363163068c8f7ae8396bf83b4ec5 --pretty=%h %s 06819324b1 Metal: Linearize PVRTC1 blocks for buffer uploads de71dd052d Roll Chromium from eeef412b7e3c to 63a05c417b61 (619 revisions) eca38a1094 Vulkan: Supress new DrawNone VVL errors 3596ab4c01 Metal: Disable prebuilt shaders on iOS. 3dbf8ebc93 Roll Chromium from fa8fa1dd7a5a to eeef412b7e3c (676 revisions) 5dd0c842d6 Vulkan: improve memory type mismatch issue. fdf4c6a695 Add test for attrib rebinding from ARRAY_BUFFER to client. 43187a2464 Vulkan: remap YUV clearColor component from GL order to vulkan order 4f611a1f1e Vulkan: Remove RendererVk::collectAllocationGarbage 729e19ac27 Remove essl3 extension requirement for ES3 texture parameters a9b01747f6 Metal: Add fall back to from-source shader compilation 9e5f518884 Reswizzle results of YUV sampling operations Canonical link: https://commits.webkit.org/269924@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 4c9e9a: Enable webgl/2.0.y/conformance2/extensions/webgl-s...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4c9e9a775c92631b046eb79d826540d18f1c0e36 https://github.com/WebKit/WebKit/commit/4c9e9a775c92631b046eb79d826540d18f1c0e36 Author: Kimmo Kinnunen Date: 2023-10-30 (Mon, 30 Oct 2023) Changed paths: M LayoutTests/platform/glib/TestExpectations Log Message: --- Enable webgl/2.0.y/conformance2/extensions/webgl-stencil-texturing.html after ANGLE update https://bugs.webkit.org/show_bug.cgi?id=263780 rdar://117586239 Unreviewed test gardening. The test should pass now after an ANGLE update. * LayoutTests/platform/glib/TestExpectations: Canonical link: https://commits.webkit.org/269921@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 0a9d09: WebGLRenderingContextBase::m_layerCleared is a red...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0a9d09eaf785b2d9b6027bc9b77ed67adbfb88d5 https://github.com/WebKit/WebKit/commit/0a9d09eaf785b2d9b6027bc9b77ed67adbfb88d5 Author: Kimmo Kinnunen Date: 2023-10-30 (Mon, 30 Oct 2023) Changed paths: M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.h Log Message: --- WebGLRenderingContextBase::m_layerCleared is a redundant flag https://bugs.webkit.org/show_bug.cgi?id=263721 rdar://problem/117533757 Reviewed by Dan Glastonbury. The m_layerCleared was cleared when buffers to auto clear was reset to the default. The m_layerCleared was set when buffers to auto clear was cleared. The idea of the flag is to control a) no extra default framebuffer clears being done b) default framebuffer draw buffer is not being accessed in WebGLRenderingContextBase::paintRenderingResultsToCanvas without the clear happening. The flag has same state as multiple other flags. Just remove it to simplify the code. * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::initializeContextState): (WebCore::WebGLRenderingContextBase::markContextChanged): (WebCore::WebGLRenderingContextBase::clearIfComposited): (WebCore::WebGLRenderingContextBase::paintRenderingResultsToCanvas): * Source/WebCore/html/canvas/WebGLRenderingContextBase.h: Canonical link: https://commits.webkit.org/269927@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 06284a: ANGLE is compiled with EAGL on iOS family
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 06284a95d3df3ceca9cdd1190f466e157441a686 https://github.com/WebKit/WebKit/commit/06284a95d3df3ceca9cdd1190f466e157441a686 Author: Kimmo Kinnunen Date: 2023-10-26 (Thu, 26 Oct 2023) Changed paths: M Source/ThirdParty/ANGLE/Configurations/ANGLE-dynamic.xcconfig Log Message: --- ANGLE is compiled with EAGL on iOS family https://bugs.webkit.org/show_bug.cgi?id=263637 rdar://117460577 Reviewed by Alexey Proskuryakov. Avoid compiling ANGLE with EAGL support on iOS family. All iOS family devices ship with Metal. * Source/ThirdParty/ANGLE/Configurations/ANGLE-dynamic.xcconfig: Canonical link: https://commits.webkit.org/269806@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 2036e8: Update ANGLE to 2023-10-25 (368ddf22e4d4eb5a54a5d2...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 2036e826e80b1ecb9d6d6a94dc838368b32c199f https://github.com/WebKit/WebKit/commit/2036e826e80b1ecb9d6d6a94dc838368b32c199f Author: Kimmo Kinnunen Date: 2023-10-26 (Thu, 26 Oct 2023) Changed paths: M Source/ThirdParty/ANGLE/ANGLE.plist M Source/ThirdParty/ANGLE/BUILD.gn M Source/ThirdParty/ANGLE/DEPS M Source/ThirdParty/ANGLE/README.md M Source/ThirdParty/ANGLE/WebKit/ANGLEShaderProgramVersion.h M Source/ThirdParty/ANGLE/WebKit/angle_commit.h M Source/ThirdParty/ANGLE/changes.diff M Source/ThirdParty/ANGLE/doc/DevSetup.md M Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_external_context_and_surface.txt M Source/ThirdParty/ANGLE/gni/angle.gni M Source/ThirdParty/ANGLE/include/EGL/eglext_angle.h M Source/ThirdParty/ANGLE/include/platform/autogen/FeaturesGL_autogen.h M Source/ThirdParty/ANGLE/include/platform/autogen/FeaturesMtl_autogen.h M Source/ThirdParty/ANGLE/include/platform/autogen/FeaturesVk_autogen.h M Source/ThirdParty/ANGLE/include/platform/gl_features.json M Source/ThirdParty/ANGLE/include/platform/mtl_features.json M Source/ThirdParty/ANGLE/include/platform/vk_features.json M Source/ThirdParty/ANGLE/infra/specs/angle.json M Source/ThirdParty/ANGLE/infra/specs/gn_isolate_map.pyl M Source/ThirdParty/ANGLE/infra/specs/test_suites.pyl M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_format.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_load_functions_table.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/D3D11_format.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/DXGI_format.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Extension_files.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_WGL_loader.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_entry_points.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_copy_conversion_table.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_format_map.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Metal_default_shaders.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Metal_format_table.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/OpenGL_dispatch_table.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_format.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/interpreter_utils.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/proc_table.json M Source/ThirdParty/ANGLE/scripts/egl_angle_ext.xml M Source/ThirdParty/ANGLE/src/angle_program_serialize_data_version.gni M Source/ThirdParty/ANGLE/src/common/Color.h M Source/ThirdParty/ANGLE/src/common/Color.inc M Source/ThirdParty/ANGLE/src/common/FixedQueue_unittest.cpp M Source/ThirdParty/ANGLE/src/compiler/translator/util.cpp M Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp M Source/ThirdParty/ANGLE/src/libANGLE/Context.h M Source/ThirdParty/ANGLE/src/libANGLE/Program.cpp M Source/ThirdParty/ANGLE/src/libANGLE/Program.h M Source/ThirdParty/ANGLE/src/libANGLE/ProgramExecutable.cpp M Source/ThirdParty/ANGLE/src/libANGLE/ProgramExecutable.h M Source/ThirdParty/ANGLE/src/libANGLE/ProgramPipeline.cpp M Source/ThirdParty/ANGLE/src/libANGLE/State.cpp M Source/ThirdParty/ANGLE/src/libANGLE/formatutils.cpp M Source/ThirdParty/ANGLE/src/libANGLE/formatutils.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/FormatID_autogen.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/Format_table_autogen.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/ProgramImpl.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/ProgramPipelineImpl.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/angle_format.py M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Program11.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Program11.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gen_angle_format_table.py M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ProgramGL.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ProgramGL.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/TextureGL.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/egl/ContextEGL.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/egl/ContextEGL.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/BUILD.gn M Source/ThirdParty
[webkit-changes] [WebKit/WebKit] 3cf847: [WebCodecs] Poor video frame rate exporting from C...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 3cf847f4c0b488559358f6ecdae56a59632266f8 https://github.com/WebKit/WebKit/commit/3cf847f4c0b488559358f6ecdae56a59632266f8 Author: Kimmo Kinnunen Date: 2023-10-25 (Wed, 25 Oct 2023) Changed paths: A LayoutTests/http/wpt/webcodecs/videoFrame-webglCanvasImageSource-expected.txt A LayoutTests/http/wpt/webcodecs/videoFrame-webglCanvasImageSource.html M Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp M Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.cpp M Source/WebCore/html/HTMLCanvasElement.cpp M Source/WebCore/html/HTMLCanvasElement.h M Source/WebCore/html/OffscreenCanvas.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.h M Source/WebCore/platform/graphics/GraphicsContextGL.h M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h M Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.h M Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm M Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBM.cpp M Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBM.h M Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp M Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.h M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp M Tools/Scripts/generate-gpup-webgl Log Message: --- [WebCodecs] Poor video frame rate exporting from Construct Animate https://bugs.webkit.org/show_bug.cgi?id=255869 rdar://108459224 Reviewed by Dan Glastonbury. WebCodecsVideoFrame would use HTMLCanvasElement::toVideoFrame(). Before WebCodecsVideoFrame, this function was intended to be used from CanvasCaptureMediaStreamTrack, which would capture the composited frame at the time of capture. Thus WebCodecsVideoFrame would read the composited frame, not the drawing buffer. Add functionality to read the WebGL drawing buffer. Rename GraphicsContextGL::paintRenderingResultsToCanvas() to more descriptive and consistent name drawSurfaceBufferToImageBuffer. The added test will fail for premultipliedAlpha == false case. This will be fixed in later commits. * LayoutTests/http/wpt/webcodecs/videoFrame-webglCanvasImageSource.html: Added. * Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp: (WebCore::CanvasCaptureMediaStreamTrack::Source::captureCanvas): * Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.cpp: (WebCore::WebCodecsVideoFrame::create): * Source/WebCore/html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::getImageData): (WebCore::HTMLCanvasElement::toVideoFrame): * Source/WebCore/html/HTMLCanvasElement.h: * Source/WebCore/html/OffscreenCanvas.cpp: (WebCore::OffscreenCanvas::transferToImageBitmap): * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::paintRenderingResultsToCanvas): (WebCore::WebGLRenderingContextBase::drawingBufferToPixelBuffer): (WebCore::WebGLRenderingContextBase::surfaceBufferToVideoFrame): (WebCore::WebGLRenderingContextBase::paintRenderingResultsToPixelBuffer): Deleted. (WebCore::WebGLRenderingContextBase::paintCompositedResultsToVideoFrame): Deleted. * Source/WebCore/html/canvas/WebGLRenderingContextBase.h: * Source/WebCore/platform/graphics/GraphicsContextGL.h: * Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLANGLE::drawSurfaceBufferToImageBuffer): (WebCore::GraphicsContextGLANGLE::withBufferAsNativeImage): (WebCore::GraphicsContextGLANGLE::drawingBufferToPixelBuffer): (WebCore::GraphicsContextGLANGLE::paintRenderingResultsToCanvas): Deleted. (WebCore::GraphicsContextGLANGLE::paintCompositedResultsToCanvas): Deleted. (WebCore::GraphicsContextGLANGLE::withDrawingBufferAsNativeImage): Deleted. (WebCore::GraphicsContextGLANGLE::withDisplayBufferAsNativeImage): Deleted. (WebCore::GraphicsContextGLANGLE::paintRenderingResultsToPixelBuffer): Deleted. * Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h: * Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.h: * Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm: (WebCore::GraphicsContextGLCocoa::surfaceBuffer): (WebCore::GraphicsContextGLCocoa::createPbufferAndAttachIOSurface): (WebCore
[webkit-changes] [WebKit/WebKit] f4b3b4: WebGL default framebuffer state management should ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: f4b3b4be605183a7cf4e3d79cdada5bb73668d2b https://github.com/WebKit/WebKit/commit/f4b3b4be605183a7cf4e3d79cdada5bb73668d2b Author: Kimmo Kinnunen Date: 2023-11-06 (Mon, 06 Nov 2023) Changed paths: M Source/WebCore/CMakeLists.txt M Source/WebCore/Sources.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/html/canvas/WebGL2RenderingContext.cpp M Source/WebCore/html/canvas/WebGL2RenderingContext.h A Source/WebCore/html/canvas/WebGLDefaultFramebuffer.cpp A Source/WebCore/html/canvas/WebGLDefaultFramebuffer.h M Source/WebCore/html/canvas/WebGLRenderingContext.cpp M Source/WebCore/html/canvas/WebGLRenderingContext.h M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.h M Source/WebCore/platform/graphics/GraphicsContextGL.cpp M Source/WebCore/platform/graphics/GraphicsContextGL.h M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp M Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm M Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBM.cpp M Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h M Source/WebKit/WebProcess/GPU/graphics/cocoa/RemoteGraphicsContextGLProxyCocoa.mm M Source/WebKit/WebProcess/GPU/graphics/gbm/RemoteGraphicsContextGLProxyGBM.cpp M Source/WebKit/WebProcess/GPU/graphics/wc/RemoteGraphicsContextGLProxyWC.cpp M Tools/TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLCocoa.mm Log Message: --- WebGL default framebuffer state management should be part of WebGLRenderingContext https://bugs.webkit.org/show_bug.cgi?id=263963 rdar://117788476 Reviewed by Dan Glastonbury. Move the default framebuffer dirty buffer accounting from GraphicsContextGL to WebGLDefaultFramebuffer class. This is the beginning of moving all the default framebuffer state and objects to the WebGL layer. Currently the implementation is in lower level at GraphicsContextGL level. This is work towards implementing premultipliedAlpha=false compositing. * Source/WebCore/CMakeLists.txt: * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h: * Source/WebCore/html/canvas/WebGL2RenderingContext.cpp: (WebCore::WebGL2RenderingContext::initializeDefaultObjects): (WebCore::WebGL2RenderingContext::updateBuffersToAutoClear): (WebCore::WebGL2RenderingContext::initializeVertexArrayObjects): Deleted. * Source/WebCore/html/canvas/WebGL2RenderingContext.h: * Source/WebCore/html/canvas/WebGLDefaultFramebuffer.cpp: Added. (WebCore::WebGLDefaultFramebuffer::create): (WebCore::WebGLDefaultFramebuffer::WebGLDefaultFramebuffer): (WebCore::WebGLDefaultFramebuffer::reshape): (WebCore::WebGLDefaultFramebuffer::markBuffersClear): (WebCore::WebGLDefaultFramebuffer::markAllUnpreservedBuffersDirty): * Source/WebCore/html/canvas/WebGLDefaultFramebuffer.h: Copied from Source/WebCore/html/canvas/WebGLRenderingContext.h. (WebCore::WebGLDefaultFramebuffer::object const): (WebCore::WebGLDefaultFramebuffer::hasStencil const): (WebCore::WebGLDefaultFramebuffer::hasDepth const): (WebCore::WebGLDefaultFramebuffer::dirtyBuffers const): * Source/WebCore/html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::initializeDefaultObjects): (WebCore::WebGLRenderingContext::initializeVertexArrayObjects): Deleted. * Source/WebCore/html/canvas/WebGLRenderingContext.h: * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp: (WebCore::ScopedDisableRasterizerDiscard::ScopedDisableRasterizerDiscard): (WebCore::ScopedDisableRasterizerDiscard::~ScopedDisableRasterizerDiscard): (WebCore::ScopedEnableBackbuffer::ScopedEnableBackbuffer): (WebCore::ScopedEnableBackbuffer::~ScopedEnableBackbuffer): (WebCore::WebGLRenderingContextBase::initializeNewContext): (WebCore::WebGLRenderingContextBase::initializeContextState): (WebCore::WebGLRenderingContextBase::initializeDefaultObjects): (WebCore::WebGLRenderingContextBase::markContextChangedAndNotifyCanvasObserver): (WebCore::WebGLRenderingContextBase::clearIfComposited): (WebCore::WebGLRenderingContextBase::reshape): (WebCore::WebGLRenderingContextBase::setFramebuffer): (WebCore::WebGLRenderingContextBase::prepareForDisplay): (WebCore::WebGLRenderingContextBase::restoreStateAfterClear): Deleted. * Source/WebCore/html/canvas/WebGLRenderingContextBase.h: * Source/WebCore/platform/graphics/GraphicsContextGL.cpp: (WebCore::GraphicsContextGL
[webkit-changes] [WebKit/WebKit] db1581: GraphicsContextGL::m_layerComposited is a redundan...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: db1581387a571d91b0fd3420285f19c974ecae23 https://github.com/WebKit/WebKit/commit/db1581387a571d91b0fd3420285f19c974ecae23 Author: Kimmo Kinnunen Date: 2023-10-30 (Mon, 30 Oct 2023) Changed paths: M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/platform/graphics/GraphicsContextGL.cpp M Source/WebCore/platform/graphics/GraphicsContextGL.h M Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm M Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBM.cpp M Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp Log Message: --- GraphicsContextGL::m_layerComposited is a redundant flag https://bugs.webkit.org/show_bug.cgi?id=263772 rdar://117582088 Reviewed by Don Olmstead. The flag would be queried by WebGLRenderingContextBase::clearIfComposited to understand if the backbuffer needs to be cleared after prepareForDisplay before next draw call. This is already taken care of by buffersToAutoClear variable which tracks this state and is reset in same location, at prepareForDisplay. The flag would be queried by GraphicsContextGL prepareForDisplay implementations. This is taken care of by the caller, e.g. the caller only schedules a prepare when draw has happened. Work towards simplifying the default framebuffer implementation, in order to implement premultipliedAlpha compositing. * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::clearIfComposited): (WebCore::WebGLRenderingContextBase::prepareForDisplay): * Source/WebCore/platform/graphics/GraphicsContextGL.cpp: (WebCore::GraphicsContextGL::markContextChanged): (WebCore::GraphicsContextGL::markLayerComposited): (WebCore::GraphicsContextGL::layerComposited const): Deleted. * Source/WebCore/platform/graphics/GraphicsContextGL.h: * Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm: (WebCore::GraphicsContextGLCocoa::prepareForDisplayWithFinishedSignal): * Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBM.cpp: (WebCore::GraphicsContextGLGBM::prepareForDisplay): * Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp: (WebCore::GraphicsContextGLTextureMapperANGLE::prepareForDisplay): * Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp: (WebKit::RemoteGraphicsContextGLProxy::markContextChanged): Canonical link: https://commits.webkit.org/269939@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 6c5d9d: GraphicsContextGLANGLE subclasses duplicate contex...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 6c5d9dcd77c99b8a3efbdbaa4be8271b3a60fd2f https://github.com/WebKit/WebKit/commit/6c5d9dcd77c99b8a3efbdbaa4be8271b3a60fd2f Author: Kimmo Kinnunen Date: 2023-10-25 (Wed, 25 Oct 2023) Changed paths: M Source/WebCore/platform/graphics/GraphicsContextGL.h M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h M Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.h M Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm M Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBM.cpp M Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBM.h M Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp M Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.h M Tools/TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLCocoa.mm Log Message: --- GraphicsContextGLANGLE subclasses duplicate context state initialization https://bugs.webkit.org/show_bug.cgi?id=263585 rdar://117410801 Reviewed by Dan Glastonbury. Move the context state initialization to common GraphicsContextGLANGLE::initialize(). Adjust GraphicsContextGLANGLE::prepareTexture(), so that it too is common code. This way the code stays in sync for all the ports. This is work towards fixing premultipliedAlpha == false compositing. * Source/WebCore/platform/graphics/GraphicsContextGL.h: (WebCore::GraphicsContextGL::enableRequiredWebXRExtensions): * Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLANGLE::initialize): (WebCore::GraphicsContextGLANGLE::prepareTexture): (WebCore::GraphicsContextGLANGLE::ensureExtensionEnabled): (WebCore::GraphicsContextGLANGLE::enableExtension): (WebCore::GraphicsContextGLANGLE::requestExtension): (WebCore::GraphicsContextGLANGLE::platformInitializeContext): Deleted. (WebCore::GraphicsContextGLANGLE::platformInitialize): Deleted. * Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h: * Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.h: * Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm: (WebCore::GraphicsContextGLCocoa::platformInitialize): (WebCore::GraphicsContextGLCocoa::enableRequiredWebXRExtensions): (WebCore::GraphicsContextGLCocoa::enableRequiredWebXRExtensionsImpl): * Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBM.cpp: (WebCore::GraphicsContextGLGBM::prepareForDisplay): (WebCore::GraphicsContextGLGBM::platformInitialize): (WebCore::GraphicsContextGLGBM::prepareTexture): Deleted. * Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBM.h: * Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp: (WebCore::GraphicsContextGLTextureMapperANGLE::platformInitialize): (WebCore::GraphicsContextGLTextureMapperANGLE::swapCompositorTexture): (WebCore::GraphicsContextGLTextureMapperANGLE::prepareForDisplay): (WebCore::GraphicsContextGLTextureMapperANGLE::prepareTexture): Deleted. * Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.h: Canonical link: https://commits.webkit.org/269758@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 614cbf: RemoteImageDecoderAVFProxy leaks video frames thro...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 614cbf4000576667d412cdbe275f282fd7ad67c5 https://github.com/WebKit/WebKit/commit/614cbf4000576667d412cdbe275f282fd7ad67c5 Author: Kimmo Kinnunen Date: 2023-09-22 (Fri, 22 Sep 2023) Changed paths: M Source/WebCore/platform/graphics/NativeImage.cpp M Source/WebCore/platform/graphics/NativeImage.h M Source/WebCore/platform/graphics/cg/NativeImageCG.cpp M Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.cpp Log Message: --- RemoteImageDecoderAVFProxy leaks video frames through CG image cache https://bugs.webkit.org/show_bug.cgi?id=261869 rdar://115834350 Reviewed by Brent Fulgham. Currently transferring ImageDecoder frames from GPUP happens for example when a video is in tag. Currently the frame is converted to a new bitmap due to NativeImage transfer shortcomings. When drawn from, CG might convert the image to a source it can read more efficiently. Unless the image is marked as transient, the converted source image will be stored into a global cache. In case of videos, this cache grows very fast since the videos might be big. Fix by marking the frame as transient. Later on the conversion-transfer step is planned to be fixed in more consistent way. * Source/WebCore/platform/graphics/NativeImage.cpp: (WebCore::createTransient): * Source/WebCore/platform/graphics/NativeImage.h: * Source/WebCore/platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm: (WebCore::ImageDecoderAVFObjC::createFrameImageAtIndex): * Source/WebCore/platform/graphics/cg/NativeImageCG.cpp: (WebCore::NativeImage::create): (WebCore::NativeImage::createTransient): * Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.cpp: (WebKit::RemoteImageDecoderAVFProxy::createFrameImageAtIndex): Canonical link: https://commits.webkit.org/268323@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 329f7d: ImageBufferBackend has three overlapping copy-like...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 329f7da0cc3778b668fd606736876062da438036 https://github.com/WebKit/WebKit/commit/329f7da0cc3778b668fd606736876062da438036 Author: Kimmo Kinnunen Date: 2023-09-21 (Thu, 21 Sep 2023) Changed paths: M Source/WebCore/platform/graphics/CachedSubimage.cpp M Source/WebCore/platform/graphics/GraphicsContext.cpp M Source/WebCore/platform/graphics/GraphicsContext.h M Source/WebCore/platform/graphics/ImageBuffer.cpp M Source/WebCore/platform/graphics/ImageBuffer.h M Source/WebCore/platform/graphics/ImageBufferBackend.cpp M Source/WebCore/platform/graphics/ImageBufferBackend.h M Source/WebCore/platform/graphics/SourceImage.cpp M Source/WebCore/platform/graphics/ca/cocoa/GraphicsLayerAsyncContentsDisplayDelegateCocoa.mm M Source/WebCore/platform/graphics/cairo/CairoOperations.cpp M Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp M Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.h M Source/WebCore/platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp M Source/WebCore/platform/graphics/cairo/ImageBufferCairoSurfaceBackend.h M Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp M Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp M Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.h M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h M Source/WebCore/platform/graphics/cg/NativeImageCG.cpp M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h M Source/WebKit/Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.h M Source/WebKit/Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.mm M Source/WebKit/Shared/WebImage.cpp M Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp M Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.cpp M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.h M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.cpp M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.h Log Message: --- ImageBufferBackend has three overlapping copy-like functions https://bugs.webkit.org/show_bug.cgi?id=261731 rdar://115718413 Reviewed by Matt Woodrow. ImageBuffer and -Backend function copyNativeImage(BackingStoreCopy) is actually two rather distinct functions: copy and a reference. copyNativeImageForDrawing() is equivalent to copyNativeImage(DontBackingStore) and certain custom logic needed for the call chain. Move the decision to do a copy for draw or a reference for draw into top-level GraphicsContext. This information will be also used in future when implementing more correct display list retaining of backing stores as well as removing the image buffer related remote drawing commands. Make a clear distinction between creating a copy and creating a reference to the backing store by calling the functions with different names. Use the function in more places that obtain a drawable NativeImage out of an ImageBuffer. Removes ImageBuffer::draw because it was a redudundant addition to the call-stack: GraphicsContext::drawImageBuffer ImageBuffer::draw Graphicscontext::drawNativeImageInternal This is work towards making the NativeImage the only image primitive being drawn from, where as currently also ImageBuffer is a pseudo-primitive. * Source/WebCore/platform/graphics/CachedSubimage.cpp: (WebCore::CachedSubimage::draw): * Source/WebCore/platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::GraphicsContext): (WebCore::GraphicsContext::nativeImageForDrawing): (WebCore::GraphicsContext::drawImageBuffer): * Source/WebCore/platform/graphics/GraphicsContext.h: (WebCore::GraphicsContext::GraphicsContext): (WebCore::GraphicsContext::deferred const): * Source/WebCore/platform/graphics/ImageBuffer.cpp: (WebCore::copyImageBufferToNativeImage): (WebCore::ImageBuffer::copyNativeImage const): (WebCore::ImageBuffer::createNativeImageReference const): (WebCore::ImageBuffer::copyNativeImageForDrawing const): Deleted. (WebCore::ImageBuffer::draw): Deleted. * Source/WebCore/platform/graphics
[webkit-changes] [WebKit/WebKit] a76cf0: RemoteImageBufferProxy re-populates backend info a...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a76cf096e26a991fd54bbffbad5b828a2bf368b3 https://github.com/WebKit/WebKit/commit/a76cf096e26a991fd54bbffbad5b828a2bf368b3 Author: Kimmo Kinnunen Date: 2023-09-21 (Thu, 21 Sep 2023) Changed paths: M LayoutTests/fast/canvas/image-buffer-backend-variants-expected.txt M LayoutTests/platform/ios/fast/canvas/image-buffer-backend-variants-expected.txt A LayoutTests/platform/mac-wk1/fast/canvas/image-buffer-backend-variants-expected.txt M Source/WebCore/Headers.cmake M Source/WebCore/Sources.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp M Source/WebCore/platform/graphics/ImageBuffer.cpp A Source/WebCore/platform/graphics/NullImageBufferBackend.cpp A Source/WebCore/platform/graphics/NullImageBufferBackend.h M Source/WebCore/platform/graphics/PixelBuffer.h M Source/WebCore/platform/graphics/cg/PathCG.h M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h M Source/WebKit/Scripts/webkit/messages.py M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.messages.in M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp Log Message: --- RemoteImageBufferProxy re-populates backend info after getting the backend handle https://bugs.webkit.org/show_bug.cgi?id=261027 rdar://114816328 Reviewed by Matt Woodrow. The code is structured as if it would make sense that Caller calls * RemoteImageBufferProxy::create * GPUP sends ShareableBitmap::Handle It is better that the backend type being used during ImageBuffer creation is respected during didCreateBackend. Implements error handling for cases where the allocation fails in GPUP. Before, the allocation failure would result in WP hang. This is work towards being able to create the backend during construction, so that most operations needing the backend would not block until the handle has been communicated. * LayoutTests/fast/canvas/image-buffer-iosurface-disabled-expected.txt: * LayoutTests/fast/canvas/image-buffer-iosurface-disabled.html: Fix the test to ensure that the tested command, creating too big accelerated image buffer, would reach the GPUP within the test. Otherwise, failing to do so would result in failure of the next test, as this test would finish before its commands were run on GPUP. Next test is typically fast/canvas/image-object-in-canvas.html. * Source/WebCore/platform/graphics/ImageBuffer.cpp: (WebCore::ImageBuffer::getPixelBuffer const): (WebCore::ImageBuffer::putPixelBuffer): * Source/WebCore/platform/graphics/ImageBufferBackend.h: (WebCore::ImageBufferBackend::toBackendCoordinates const): Deleted. * Source/WebCore/platform/graphics/PixelBuffer.h: * Source/WebCore/platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp: (WebCore::ImageBufferCairoSurfaceBackend::putPixelBuffer): * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h: (WebKit::RemoteDisplayListRecorder::create): * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp: (WebKit::RemoteRenderingBackend::didFailCreateImageBuffer): (WebKit::RemoteRenderingBackend::didCreateImageBuffer): (WebKit::RemoteRenderingBackend::createImageBuffer): (WebKit::RemoteRenderingBackend::releaseImageBuffer): * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h: * Source/WebKit/Scripts/webkit/messages.py: (types_that_must_be_moved): * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp: (WebKit::RemoteImageBufferProxy::didCreateBackend): (WebKit::RemoteImageBufferProxy::getPixelBuffer const): * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h: * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.messages.in: * Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp: (WebKit::RemoteRenderingBackendProxy::createImageBuffer): Canonical link: https://commits.webkit.org/268244@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 146c1b: RemoteImageDecoderAVFProxy does not attribute the ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 146c1b7c9159eb722750086e5c2691d5fa72da00 https://github.com/WebKit/WebKit/commit/146c1b7c9159eb722750086e5c2691d5fa72da00 Author: Kimmo Kinnunen Date: 2023-09-22 (Fri, 22 Sep 2023) Changed paths: M Source/WebCore/platform/graphics/ImageDecoder.cpp M Source/WebCore/platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h M Source/WebCore/platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm M Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.cpp M Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.h Log Message: --- RemoteImageDecoderAVFProxy does not attribute the frames to the owner process https://bugs.webkit.org/show_bug.cgi?id=261877 rdar://115838448 Reviewed by Brent Fulgham. Attribute the IOSurface-backed CVPixelBuffers to the WebContent process that instantiated the RemoteImageDecoderAVFProxy. Note: this captures only subset of the CVPixelBuffers in flight. Subsequent work is still needed. * Source/WebCore/platform/graphics/ImageDecoder.cpp: (WebCore::createInProcessImageDecoderAVFObjC): (WebCore::platformRegisterFactories): * Source/WebCore/platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h: * Source/WebCore/platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm: (WebCore::ImageDecoderAVFObjC::create): (WebCore::ImageDecoderAVFObjC::ImageDecoderAVFObjC): (WebCore::ImageDecoderAVFObjC::storeSampleBuffer): * Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.cpp: (WebKit::RemoteImageDecoderAVFProxy::RemoteImageDecoderAVFProxy): (WebKit::RemoteImageDecoderAVFProxy::createDecoder): * Source/WebKit/GPUProcess/media/RemoteImageDecoderAVFProxy.h: Canonical link: https://commits.webkit.org/268325@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 4202a8: Drawing patterns use Image redundantly when cachin...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4202a8a96888091029f0538738502352b878041b https://github.com/WebKit/WebKit/commit/4202a8a96888091029f0538738502352b878041b Author: Kimmo Kinnunen Date: 2023-09-20 (Wed, 20 Sep 2023) Changed paths: M Source/WebCore/platform/graphics/BitmapImage.cpp M Source/WebCore/platform/graphics/BitmapImage.h M Source/WebCore/platform/graphics/GradientImage.cpp M Source/WebCore/platform/graphics/GradientImage.h M Source/WebCore/svg/graphics/SVGImage.cpp Log Message: --- Drawing patterns use Image redundantly when caching patterns, should use NativeImage instead https://bugs.webkit.org/show_bug.cgi?id=261724 rdar://115710643 Reviewed by Said Abou-Hallawa. WebCore::Image is mostly about DOM images. The various caches related to drawing patterns convert ImageBuffers to Images, while they really need NativeImages. Use NativeImages instead. Work towards removing GraphicsContext::sinkIntoImage(). * Source/WebCore/platform/graphics/BitmapImage.cpp: (WebCore::BitmapImage::drawPattern): * Source/WebCore/platform/graphics/BitmapImage.h: * Source/WebCore/platform/graphics/GradientImage.cpp: (WebCore::GradientImage::drawPattern): * Source/WebCore/platform/graphics/GradientImage.h: * Source/WebCore/svg/graphics/SVGImage.cpp: (WebCore::SVGImage::drawPatternForContainer): Canonical link: https://commits.webkit.org/268185@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] d2ed32: ImageBuffer has unused virtual function cloneForDi...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d2ed32a25d11f8bc39d13cfae660a30327836e94 https://github.com/WebKit/WebKit/commit/d2ed32a25d11f8bc39d13cfae660a30327836e94 Author: Kimmo Kinnunen Date: 2023-09-20 (Wed, 20 Sep 2023) Changed paths: M Source/WebCore/platform/graphics/ImageBuffer.cpp M Source/WebCore/platform/graphics/ImageBuffer.h M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h Log Message: --- ImageBuffer has unused virtual function cloneForDifferentThread() https://bugs.webkit.org/show_bug.cgi?id=261736 rdar://115721857 Reviewed by Said Abou-Hallawa. The function was used as the RemoteImageBufferProxy implementation of the real payload function ImageBuffer::sinkIntoBufferForDifferentThread(). Remove the function, it's not needed. Use the implementation to implement RemoteImageBufferProxy::sinkIntoBufferForDifferentThread() override. * Source/WebCore/platform/graphics/ImageBuffer.cpp: (WebCore::ImageBuffer::cloneForDifferentThread): Deleted. * Source/WebCore/platform/graphics/ImageBuffer.h: * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp: (WebKit::RemoteImageBufferProxy::sinkIntoBufferForDifferentThread): (WebKit::RemoteImageBufferProxy::cloneForDifferentThread): Deleted. * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h: Canonical link: https://commits.webkit.org/268186@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 0e4fcb: MediaControlTextTrackContainerElement uses Image r...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0e4fcb51c7983b701cf7a9aaadb1b34cd52d2cd2 https://github.com/WebKit/WebKit/commit/0e4fcb51c7983b701cf7a9aaadb1b34cd52d2cd2 Author: Kimmo Kinnunen Date: 2023-09-20 (Wed, 20 Sep 2023) Changed paths: M Source/WebCore/html/shadow/MediaControlTextTrackContainerElement.cpp M Source/WebCore/html/shadow/MediaControlTextTrackContainerElement.h M Source/WebCore/platform/graphics/TextTrackRepresentation.h M Source/WebCore/platform/graphics/cocoa/TextTrackRepresentationCocoa.mm M Source/WebKit/WebProcess/cocoa/TextTrackRepresentationCocoa.mm Log Message: --- MediaControlTextTrackContainerElement uses Image redundantly, should use NativeImage https://bugs.webkit.org/show_bug.cgi?id=261723 rdar://problem/115709836 Reviewed by Said Abou-Hallawa. WebCore::Image is mostly about DOM images. Callers of MediaControlTextTrackContainerElement::createTextTrackRepresentationImage() use the platform image, e.g. WebCore::NativeImage. Return this type. Work towards removing ImageBuffer::sinkIntoImage(). * Source/WebCore/html/shadow/MediaControlTextTrackContainerElement.cpp: (WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage): * Source/WebCore/html/shadow/MediaControlTextTrackContainerElement.h: * Source/WebCore/platform/graphics/TextTrackRepresentation.h: * Source/WebCore/platform/graphics/cocoa/TextTrackRepresentationCocoa.mm: (WebCore::TextTrackRepresentationCocoa::update): * Source/WebKit/WebProcess/cocoa/TextTrackRepresentationCocoa.mm: (WebKit::WebTextTrackRepresentationCocoa::update): Canonical link: https://commits.webkit.org/268188@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] d16519: DisplayListDrawingEnabled should not affect HTMLVi...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d165194c7ef8f74923dfa1cb612da1f5a94c86b3 https://github.com/WebKit/WebKit/commit/d165194c7ef8f74923dfa1cb612da1f5a94c86b3 Author: Kimmo Kinnunen Date: 2023-09-20 (Wed, 20 Sep 2023) Changed paths: M Source/WebCore/html/HTMLVideoElement.cpp Log Message: --- DisplayListDrawingEnabled should not affect HTMLVideoElement intermediate buffers https://bugs.webkit.org/show_bug.cgi?id=261407 rdar://115284270 Reviewed by Antti Koivisto. DisplayListDrawingEnabled is about recording the drawing commands done to render RenderLayerBacking. Even if the HTMLVideoElement intermediate buffers are toggled to be display lists, this does not affect anything. Remove the use of DisplayListDrawingEnabled setting and just construct default ImageBuffer buffers. If later on the video element intermediate buffer contents need to appear in RenderLayerBacking lists, the intermediate buffers should be real display lists or the contents should be drawn to the RenderLayerBacking GraphicsContext. HTMLVideoElement::createBufferForPainting() is used for ImageBitmap creation, and this does not benefit from the display lists at all. * Source/WebCore/html/HTMLVideoElement.cpp: (WebCore::HTMLVideoElement::createBufferForPainting const): Canonical link: https://commits.webkit.org/268190@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 906255: Move Context2D display list implementation to Cust...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 9062558c61455412da94eeec15f4d4b23210826b https://github.com/WebKit/WebKit/commit/9062558c61455412da94eeec15f4d4b23210826b Author: Kimmo Kinnunen Date: 2023-09-20 (Wed, 20 Sep 2023) Changed paths: M Source/WebCore/WebCore.order M Source/WebCore/html/CustomPaintCanvas.cpp M Source/WebCore/html/CustomPaintCanvas.h M Source/WebCore/html/CustomPaintImage.cpp M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h Log Message: --- Move Context2D display list implementation to CustomPaintCanvas https://bugs.webkit.org/show_bug.cgi?id=261401 rdar://115277503 Reviewed by Antti Koivisto. The display list functinality was only used for CSS Painting API in CustomPaintCanvas. Move holding the display list into that class. This clarifies both classes. * Source/WebCore/WebCore.order: * Source/WebCore/html/CustomPaintCanvas.cpp: (WebCore::CustomPaintCanvas::getContext): (WebCore::CustomPaintCanvas::replayDisplayList): (WebCore::CustomPaintCanvas::copiedImage const): (WebCore::CustomPaintCanvas::drawingContext const): (WebCore::CustomPaintCanvas::existingDrawingContext const): (WebCore::CustomPaintCanvas::replayDisplayListImpl): (WebCore::CustomPaintCanvas::replayDisplayList const): Deleted. * Source/WebCore/html/CustomPaintCanvas.h: * Source/WebCore/html/CustomPaintImage.cpp: (WebCore::CustomPaintImage::doCustomPaint): * Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp: (WebCore::CanvasRenderingContext2DBase::reset): (WebCore::CanvasRenderingContext2DBase::drawingContext const): (WebCore::CanvasRenderingContext2DBase::paintRenderingResultsToCanvas): Deleted. * Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h: (WebCore::CanvasRenderingContext2DBase::setUsesDisplayListDrawing): Deleted. Canonical link: https://commits.webkit.org/268191@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 507f22: ImageBuffer has unused WebGL related functions
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 507f2296f236c37f27baf4e3108990a996850fef https://github.com/WebKit/WebKit/commit/507f2296f236c37f27baf4e3108990a996850fef Author: Kimmo Kinnunen Date: 2023-09-21 (Thu, 21 Sep 2023) Changed paths: M Source/WebCore/platform/graphics/ImageBuffer.cpp M Source/WebCore/platform/graphics/ImageBuffer.h M Source/WebCore/platform/graphics/ImageBufferBackend.h Log Message: --- ImageBuffer has unused WebGL related functions https://bugs.webkit.org/show_bug.cgi?id=261865 rdar://115826789 Reviewed by Antti Koivisto. Remove the unused functions. * Source/WebCore/platform/graphics/ImageBuffer.cpp: (WebCore::ImageBuffer::copyToPlatformTexture const): Deleted. * Source/WebCore/platform/graphics/ImageBuffer.h: * Source/WebCore/platform/graphics/ImageBufferBackend.h: (WebCore::ImageBufferBackend::copyToPlatformTexture): Deleted. Canonical link: https://commits.webkit.org/268249@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 50a0c4: RemoteImageBufferProxy re-populates backend info a...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 50a0c40dacf6e455efea5a52a47bbb0112d25284 https://github.com/WebKit/WebKit/commit/50a0c40dacf6e455efea5a52a47bbb0112d25284 Author: Kimmo Kinnunen Date: 2023-09-21 (Thu, 21 Sep 2023) Changed paths: M LayoutTests/fast/canvas/image-buffer-backend-variants-expected.txt M LayoutTests/platform/ios/fast/canvas/image-buffer-backend-variants-expected.txt A LayoutTests/platform/mac-wk1/fast/canvas/image-buffer-backend-variants-expected.txt M Source/WebCore/Headers.cmake M Source/WebCore/Sources.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp M Source/WebCore/platform/graphics/ImageBuffer.cpp A Source/WebCore/platform/graphics/NullImageBufferBackend.cpp A Source/WebCore/platform/graphics/NullImageBufferBackend.h M Source/WebCore/platform/graphics/PixelBuffer.h M Source/WebCore/platform/graphics/cg/PathCG.h M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h M Source/WebKit/Scripts/webkit/messages.py M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.messages.in M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp Log Message: --- RemoteImageBufferProxy re-populates backend info after getting the backend handle https://bugs.webkit.org/show_bug.cgi?id=261027 rdar://114816328 Reviewed by Matt Woodrow. Reland after revert with compile errors fixed. The code is structured as if it would make sense that Caller calls * RemoteImageBufferProxy::create * GPUP sends ShareableBitmap::Handle It is better that the backend type being used during ImageBuffer creation is respected during didCreateBackend. Implements error handling for cases where the allocation fails in GPUP. Before, the allocation failure would result in WP hang. This is work towards being able to create the backend during construction, so that most operations needing the backend would not block until the handle has been communicated. * LayoutTests/fast/canvas/image-buffer-iosurface-disabled-expected.txt: * LayoutTests/fast/canvas/image-buffer-iosurface-disabled.html: Fix the test to ensure that the tested command, creating too big accelerated image buffer, would reach the GPUP within the test. Otherwise, failing to do so would result in failure of the next test, as this test would finish before its commands were run on GPUP. Next test is typically fast/canvas/image-object-in-canvas.html. * Source/WebCore/platform/graphics/ImageBuffer.cpp: (WebCore::ImageBuffer::getPixelBuffer const): (WebCore::ImageBuffer::putPixelBuffer): * Source/WebCore/platform/graphics/ImageBufferBackend.h: (WebCore::ImageBufferBackend::toBackendCoordinates const): Deleted. * Source/WebCore/platform/graphics/PixelBuffer.h: * Source/WebCore/platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp: (WebCore::ImageBufferCairoSurfaceBackend::putPixelBuffer): * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h: (WebKit::RemoteDisplayListRecorder::create): * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp: (WebKit::RemoteRenderingBackend::didFailCreateImageBuffer): (WebKit::RemoteRenderingBackend::didCreateImageBuffer): (WebKit::RemoteRenderingBackend::createImageBuffer): (WebKit::RemoteRenderingBackend::releaseImageBuffer): * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h: * Source/WebKit/Scripts/webkit/messages.py: (types_that_must_be_moved): * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp: (WebKit::RemoteImageBufferProxy::didCreateBackend): (WebKit::RemoteImageBufferProxy::getPixelBuffer const): * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h: * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.messages.in: * Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp: (WebKit::RemoteRenderingBackendProxy::createImageBuffer): Canonical link: https://commits.webkit.org/268251@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] afbd4f: GraphicsContext::createImageBuffer should not crea...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: afbd4f014569daae52e242ac90282b49ae9952b9 https://github.com/WebKit/WebKit/commit/afbd4f014569daae52e242ac90282b49ae9952b9 Author: Kimmo Kinnunen Date: 2023-09-20 (Wed, 20 Sep 2023) Changed paths: M Source/WebCore/platform/graphics/GraphicsContext.cpp M Source/WebCore/platform/graphics/RenderingMode.cpp M Source/WebCore/platform/graphics/RenderingMode.h M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h Log Message: --- GraphicsContext::createImageBuffer should not create ImageBuffers that are backed by display lists https://bugs.webkit.org/show_bug.cgi?id=261406 rdar://115283169 Reviewed by Antti Koivisto. Remove the polymorphic feature where DisplayList::Recorder could create a DisplayList::ImageBuffer in response to GraphicsContext::createImageBuffer. The calling code which creates ImageBuffers is never agnostic to whether the created buffer is backed by a display list or not. If the calling code intends to use the drawing as a display list, it needs to access the list. This is done by calling DisplayList::Recorder::displayList() explicitly through Recorder, not through ImageBuffer interface. Even if the target GraphicsContext would be a DisplayList::Recorder, creating a new image buffer as a display list and drawing that to the target would end up resulting a bitmap drawn to the target. This means that there was no benefit, only harm, to creating the ImageBuffer as a display list. The intended feature was probably to obtain a master display list with the drawing commands that contain also cached sub areas as drawing commands. This was never realized with current code, as the semantics of the interfaces of ImageBuffer and a display list are different. Most notably items are composed differently: image buffer starts as cleared, but the above intention of the API was probably to support compositing subtrees in a nice way. The alternatives that work within the abstractions are the "begin transparency layer" for uncached subtrees and explicit DisplayList::Recorder for cached subtrees. Does not remove RenderingMethod enum because currently it affects the "local or remote" decision via holding it with std::optional. This will be addressed in the future. * Source/WebCore/platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::createImageBuffer const): * Source/WebCore/platform/graphics/RenderingMode.cpp: (WebCore::operator<<): * Source/WebCore/platform/graphics/RenderingMode.h: * Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp: (WebCore::DisplayList::Recorder::createImageBuffer const): Deleted. * Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h: Canonical link: https://commits.webkit.org/268193@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] c0a9a9: jquery/attributes.html is flaky fail with StreamCl...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c0a9a955b480bb69772ceccfa2eca68906532e7f https://github.com/WebKit/WebKit/commit/c0a9a955b480bb69772ceccfa2eca68906532e7f Author: Kimmo Kinnunen Date: 2023-09-18 (Mon, 18 Sep 2023) Changed paths: M LayoutTests/TestExpectations M LayoutTests/ipc/restrictedendpoints/allow-access-webGPU-expected.txt M LayoutTests/ipc/restrictedendpoints/allow-access-webGPU.html M LayoutTests/ipc/restrictedendpoints/deny-access-webGPU.html M LayoutTests/platform/glib/TestExpectations M LayoutTests/platform/mac-wk1/TestExpectations M LayoutTests/resources/ipc.js M Source/WebKit/Shared/IPCTester.cpp M Source/WebKit/Shared/IPCTester.h M Source/WebKit/Shared/IPCTester.messages.in Log Message: --- jquery/attributes.html is flaky fail with StreamClientConnection ASSERTION FAILED: !m_connection->isValid() https://bugs.webkit.org/show_bug.cgi?id=261555 rdar://115494068 Reviewed by Antti Koivisto. Fix two tests that create StreamClientConnection instances through the JS IPC Testing API. The connections must be invalidated if they are created. Both allow and deny tests are run as normal JS business as usual, even though the test runner automatically ends the deny test when GPUP crashes. This means that the JS GC will clean up the stream connections during the next tests, causing unrelated tests to fail with the assertion. Fix the allow test to actually test what it tests, e.g. to fail if WebGPU is disabled. * LayoutTests/ipc/restrictedendpoints/allow-access-webGPU-expected.txt: * LayoutTests/ipc/restrictedendpoints/allow-access-webGPU.html: * LayoutTests/ipc/restrictedendpoints/deny-access-webGPU.html: * LayoutTests/resources/ipc.js: (randomID): (asyncFlush): (syncFlush): Deleted. * Source/WebKit/Shared/IPCTester.cpp: (WebKit::IPCTester::asyncPing): (WebKit::IPCTester::syncPing): * Source/WebKit/Shared/IPCTester.h: * Source/WebKit/Shared/IPCTester.messages.in: Canonical link: https://commits.webkit.org/268086@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] f05766: ImageBuffer filter operations should return Native...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: f0576678c27689432df0e1cd90e77acf379af245 https://github.com/WebKit/WebKit/commit/f0576678c27689432df0e1cd90e77acf379af245 Author: Kimmo Kinnunen Date: 2023-09-21 (Thu, 21 Sep 2023) Changed paths: M Source/WebCore/platform/graphics/ImageBuffer.cpp M Source/WebCore/platform/graphics/ImageBuffer.h M Source/WebCore/rendering/style/StyleFilterImage.cpp M Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.cpp M Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.h M Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.messages.in M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h Log Message: --- ImageBuffer filter operations should return NativeImage https://bugs.webkit.org/show_bug.cgi?id=261866 rdar://115829020 Reviewed by Antti Koivisto. ImageBuffer operates on NativeImages, WebCore::Image is a higher level type. The filter operations anyway flatten the results into a NativeImage, from which the WebCore::Image was always created. Construct the WebCore::Image at the caller if needed. Since this renames the function, move the GPUP implementation from the RemoteRenderingBackendProxy to the real caller which is the RemoteImageBufferProxy. The messages have already been moved previously. This is work towards simplifying ImageBuffer API use NativeImage only. * Source/WebCore/platform/graphics/ImageBuffer.cpp: (WebCore::ImageBuffer::filteredNativeImage): (WebCore::ImageBuffer::filteredImage): Deleted. * Source/WebCore/platform/graphics/ImageBuffer.h: * Source/WebCore/rendering/style/StyleFilterImage.cpp: (WebCore::StyleFilterImage::image const): * Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.cpp: (WebKit::RemoteImageBuffer::filteredNativeImage): (WebKit::RemoteImageBuffer::getFilteredImage): Deleted. * Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.h: * Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.messages.in: * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp: (WebKit::RemoteImageBufferProxy::sendSync): (WebKit::RemoteImageBufferProxy::filteredNativeImage): (WebKit::RemoteImageBufferProxy::filteredImage): Deleted. * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h: * Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp: (WebKit::RemoteRenderingBackendProxy::getFilteredImage): Deleted. * Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h: Canonical link: https://commits.webkit.org/268301@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] f77323: ImageBuffer::backendSize() waits for GPUP to creat...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: f77323c9d2ad5455d94e42560ef4bdf89c0c9414 https://github.com/WebKit/WebKit/commit/f77323c9d2ad5455d94e42560ef4bdf89c0c9414 Author: Kimmo Kinnunen Date: 2023-09-28 (Thu, 28 Sep 2023) Changed paths: M Source/WebCore/platform/graphics/ImageBuffer.cpp M Source/WebCore/platform/graphics/ImageBuffer.h M Source/WebCore/platform/graphics/ImageBufferBackend.cpp M Source/WebCore/platform/graphics/ImageBufferBackend.h M Source/WebCore/platform/graphics/ImageBufferBackendParameters.h M Source/WebCore/platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.cpp M Source/WebCore/platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp M Source/WebCore/platform/graphics/cairo/ImageBufferCairoSurfaceBackend.h M Source/WebCore/platform/graphics/cg/IOSurfaceImageBuffer.h M Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp M Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.h M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp M Source/WebKit/Scripts/webkit/messages.py M Source/WebKit/Shared/RemoteLayerTree/DynamicContentScalingImageBufferBackend.h M Source/WebKit/Shared/RemoteLayerTree/DynamicContentScalingImageBufferBackend.mm M Source/WebKit/Shared/UserData.cpp M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in M Source/WebKit/Shared/WebImage.cpp M Source/WebKit/Shared/WebImage.h M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebPageProxy.h M Source/WebKit/UIProcess/WebPageProxy.messages.in M Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp M Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.cpp M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.cpp M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.h Log Message: --- ImageBuffer::backendSize() waits for GPUP to create the backend https://bugs.webkit.org/show_bug.cgi?id=262179 rdar://116117019 Reviewed by Matt Woodrow. The backend size is not backend logic, it is same for all backends. Move the backend size calculation to ImageBuffer. The logical size is not a ImageBufferBackend parameter, it is a ImageBuffer parameter. Store the backend size in ImageBufferBackendParameters. Use the new struct ImageBufferParameters when client code is communicating parameters with the use-case of creating new ImageBuffer instances in WebImage and RemoteSerializedImageBufferProxy. Fixes a case where RemoteImageBufferProxy would wait for the GPUP to send the image buffer handle to WP. This is not needed, the backend size is always known. Later commits will simplify other properties in ImageBufferBackend that are not backend-dependent. * Source/WebCore/platform/graphics/ImageBuffer.cpp: (WebCore::ImageBuffer::ImageBuffer): (WebCore::ImageBuffer::calculateBackendSize): (WebCore::ImageBuffer::backendParameters): (WebCore::ImageBuffer::backendSize const): Deleted. * Source/WebCore/platform/graphics/ImageBuffer.h: (WebCore::ImageBuffer::create): (WebCore::ImageBuffer::backendSize const): (WebCore::ImageBuffer::parameters const): * Source/WebCore/platform/graphics/ImageBufferBackend.cpp: (WebCore::ImageBufferBackend::convertToLuminanceMask): (WebCore::ImageBufferBackend::getPixelBuffer): (WebCore::ImageBufferBackend::putPixelBuffer): (WebCore::ImageBufferBackend::calculateBaseTransform): (WebCore::ImageBufferBackend::calculateBackendSize): Deleted. * Source/WebCore/platform/graphics/ImageBufferBackend.h: (WebCore::ImageBufferBackend::size const): (WebCore::ImageBufferBackend::pixelFormat const): (WebCore::ImageBufferBackend::backendSize const): Deleted. (WebCore::ImageBufferBackend::logicalSize const): Deleted. (WebCore::ImageBufferBackend::renderingPurpose const): Deleted. (WebCore::ImageBufferBackend::logicalRect const): Deleted. (WebCore::ImageBufferBackend::backendRect const): Deleted. * Source/WebCore/platform/graphics/ImageBufferBackendParameters.h: * Source/WebCore/platform/graphics/PlatformImageBuffer.h: * Source/WebCore/platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.cpp: (WebCore::ImageBufferCairoImageSurfaceBackend::calculateSafeBackendSize): (WebCore::ImageBufferCairoImageSurfaceBackend::calculateMemoryCost): (WebCore::ImageBufferCairoImageSurfaceBackend::bytesPerRow const): * Source
[webkit-changes] [WebKit/WebKit] b5117f: ImageBuffer::copyImage is redundant, should use co...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: b5117f4636f67c6f8f8efb3f4a6ca1ce0914866d https://github.com/WebKit/WebKit/commit/b5117f4636f67c6f8f8efb3f4a6ca1ce0914866d Author: Kimmo Kinnunen Date: 2023-09-29 (Fri, 29 Sep 2023) Changed paths: M Source/WebCore/html/CustomPaintCanvas.cpp M Source/WebCore/html/CustomPaintCanvas.h M Source/WebCore/html/HTMLCanvasElement.cpp M Source/WebCore/html/ImageBitmap.cpp M Source/WebCore/html/OffscreenCanvas.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.h M Source/WebCore/platform/graphics/GraphicsContext.cpp M Source/WebCore/platform/graphics/GraphicsContextGL.cpp M Source/WebCore/platform/graphics/ImageBuffer.cpp M Source/WebCore/platform/graphics/ImageBuffer.h M Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp M Source/WebCore/platform/graphics/texmap/BitmapTexture.cpp M Source/WebCore/platform/graphics/texmap/BitmapTexture.h M Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp M Source/WebCore/platform/graphics/texmap/BitmapTextureGL.h M Source/WebCore/platform/graphics/texmap/TextureMapperTile.cpp M Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm Log Message: --- ImageBuffer::copyImage is redundant, should use copyNativeImage instead https://bugs.webkit.org/show_bug.cgi?id=261944 rdar://115891269 Reviewed by Matt Woodrow. Remove ImageBuffer::copyImaage(). WebCore::Image is higher level type. Callers should call sinkIntoNativeImage and then convert the NativeImage into Image, if needed. Note: most callers should use NativeImage, as that is the lowest level source image. These are identical: copyImage(CopyBackingStore, PreserveResolution::Yes) -> copyNativeImage() copyImage(DontCopyBackingStore, PreserveResolution::No) + scale 1 -> createNativeImageReference() Other variants wouldn't have corresponding NativeImage call, but they do not exist. This is work towards simplifying ImageBuffer by making it operate with NativeImage as its primary primitive image source. * Source/WebCore/html/CustomPaintCanvas.cpp: (WebCore::CustomPaintCanvas::copiedImage const): Fix an issue where the code would nullptr deref if Context2D call would try to reset the transform to default. The idea of CanvasBase::baseTransform() is that it would return the transform to be set, but this cannot happen because ImageBuffer has not been created at the time of the call. The transform reset is recorded. * Source/WebCore/html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::copiedImage const): * Source/WebCore/html/ImageBitmap.cpp: (WebCore::ImageBitmap::createCompletionHandler): * Source/WebCore/html/OffscreenCanvas.cpp: (WebCore::OffscreenCanvas::copiedImage const): * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::texImageSource): (WebCore::WebGLRenderingContextBase::drawImageIntoBuffer): (WebCore::WebGLRenderingContextBase::videoFrameToImage): * Source/WebCore/html/canvas/WebGLRenderingContextBase.h: * Source/WebCore/platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::drawPattern): * Source/WebCore/platform/graphics/GraphicsContextGL.cpp: (WebCore::GraphicsContextGL::videoFrameToImage): * Source/WebCore/platform/graphics/ImageBuffer.cpp: (WebCore::ImageBuffer::copyImage const): Deleted. * Source/WebCore/platform/graphics/ImageBuffer.h: * Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp: (Nicosia::CairoOperationRecorder::drawImageBuffer): (Nicosia::CairoOperationRecorder::drawFilteredImageBuffer): (Nicosia::CairoOperationRecorder::clipToImageBuffer): * Source/WebCore/platform/graphics/texmap/BitmapTexture.cpp: (WebCore::BitmapTexture::updateContents): * Source/WebCore/platform/graphics/texmap/BitmapTexture.h: * Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp: (WebCore::BitmapTextureGL::updateContents): * Source/WebCore/platform/graphics/texmap/BitmapTextureGL.h: * Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm: (WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer): Canonical link: https://commits.webkit.org/268643@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 78d90a: BoxDecorationPainter should not use InterpolationQ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 78d90a8e53b2f787f468ac358bb024e4f7390ef2 https://github.com/WebKit/WebKit/commit/78d90a8e53b2f787f468ac358bb024e4f7390ef2 Author: Kimmo Kinnunen Date: 2023-09-29 (Fri, 29 Sep 2023) Changed paths: M Source/WebCore/display/css/DisplayBoxDecorationPainter.cpp Log Message: --- BoxDecorationPainter should not use InterpolationQuality::Default with ImagePaintingOptions https://bugs.webkit.org/show_bug.cgi?id=262360 rdar://116228654 Reviewed by Tim Nguyen. Passing "Default" in ImagePaintingOptions means "Use what is in GraphicsContext". It is the same as not passing anything. This is work towards removing ImagePaintingOptions::Default, as it does not mean what the developers think it means (platform default image quality). * Source/WebCore/display/css/DisplayBoxDecorationPainter.cpp: (WebCore::Display::BoxDecorationPainter::paintFillLayer const): Canonical link: https://commits.webkit.org/268650@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] c879b9: MediaPlayerPrivateAVFoundationObjC::paintWithImage...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c879b942c9a21906b12b0de5edc1805cbe9eafe1 https://github.com/WebKit/WebKit/commit/c879b942c9a21906b12b0de5edc1805cbe9eafe1 Author: Kimmo Kinnunen Date: 2023-09-29 (Fri, 29 Sep 2023) Changed paths: M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm Log Message: --- MediaPlayerPrivateAVFoundationObjC::paintWithImageGenerator is an unused function https://bugs.webkit.org/show_bug.cgi?id=262363 rdar://116231020 Reviewed by Youenn Fablet. Remove the unused function. The function is bad because it sets up GraphicsContext state but then uses CG to draw a CGImage. * Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: * Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithImageGenerator): Deleted. Canonical link: https://commits.webkit.org/268648@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 3febd4: ImageBitmap resize quality "low" is resolved to in...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 3febd45283e31b09b8a63c9739535f7109713eb2 https://github.com/WebKit/WebKit/commit/3febd45283e31b09b8a63c9739535f7109713eb2 Author: Kimmo Kinnunen Date: 2023-09-29 (Fri, 29 Sep 2023) Changed paths: M Source/WebCore/html/ImageBitmap.cpp Log Message: --- ImageBitmap resize quality "low" is resolved to incorrect implementation value https://bugs.webkit.org/show_bug.cgi?id=262361 rdar://116228900 Reviewed by Mike Wyrzykowski. Passing InterpolationQuality::Default as ImagePaintingOptions means "use context default", e.g. the same as if no option would be passed. The context default is typically "Default" which means "Use image should interpolate ? High : None" for Cocoa, "Medium" in Cairo. Use Low if the author asks for Low. * Source/WebCore/html/ImageBitmap.cpp: (WebCore::interpolationQualityForResizeQuality): Canonical link: https://commits.webkit.org/268658@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 18cbc2: Symbolic names for ImageBuffer backends complicate...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 18cbc28a15bebf4e20edcfadd97f145b85d008f8 https://github.com/WebKit/WebKit/commit/18cbc28a15bebf4e20edcfadd97f145b85d008f8 Author: Kimmo Kinnunen Date: 2023-09-27 (Wed, 27 Sep 2023) Changed paths: M Source/WebCore/Headers.cmake M Source/WebCore/PlatformMac.cmake M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/platform/graphics/ImageBuffer.cpp A Source/WebCore/platform/graphics/ImageBufferPlatformBackend.h R Source/WebCore/platform/graphics/PlatformImageBuffer.h R Source/WebCore/platform/graphics/PlatformImageBufferBackend.h A Source/WebCore/platform/graphics/cg/IOSurfaceImageBuffer.h M Source/WebCore/platform/graphics/coreimage/FilterImageCoreImage.mm M Source/WebCore/platform/graphics/coreimage/SourceGraphicCoreImageApplier.mm M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm M Source/WebKit/WebKit.xcodeproj/project.pbxproj M Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp M Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h R Source/WebKit/WebProcess/GPU/graphics/PlatformImageBufferShareableBackend.h M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp M Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.cpp Log Message: --- Symbolic names for ImageBuffer backends complicate the code unneccessarily https://bugs.webkit.org/show_bug.cgi?id=262110 rdar://116049610 Reviewed by Said Abou-Hallawa. The symbolic names UnacceleratedImageBuffer*Backend and AcceleratedImageBuffer*Backend were probably originally introduced to help the caller code to create image buffers in cross-platform way. However, the image buffer instantiation is based on global policy that is invoked by ImageBuffer::create(). Instantiating the Accelerated image buffers is platform-specific operation, as demonstrated by IOSurface specific parameters in ImageBufferCreationContext amalgamation structure. Remove the symbolic names, as they make further simplification unneccessarily complex. Just use the normal class names inside ifdefs that already exist at the call sites. * Source/WebCore/Headers.cmake: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/platform/graphics/ImageBuffer.cpp: (WebCore::ImageBuffer::create): * Source/WebCore/platform/graphics/PlatformImageBuffer.h: * Source/WebCore/platform/graphics/PlatformImageBufferBackend.h: Removed. * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp: (WebKit::RemoteRenderingBackend::createImageBuffer): * Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: * Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm: (WebKit::RemoteLayerBackingStoreCollection::allocateBufferForBackingStore): * Source/WebKit/WebKit.xcodeproj/project.pbxproj: * Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp: (WebKit::ImageBufferShareableBitmapBackend::ImageBufferShareableBitmapBackend): * Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h: * Source/WebKit/WebProcess/GPU/graphics/PlatformImageBufferShareableBackend.h: Removed. * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp: (WebKit::RemoteImageBufferProxy::didCreateBackend): * Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp: (WebKit::RemoteRenderingBackendProxy::createImageBuffer): * Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.cpp: (WebKit::DrawingAreaWC::createImageBuffer): Canonical link: https://commits.webkit.org/268563@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] a54c64: GraphicsContext InterpolationQuality::Default is m...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a54c64ccb14bfa9db06f6649ecc9a843120247e5 https://github.com/WebKit/WebKit/commit/a54c64ccb14bfa9db06f6649ecc9a843120247e5 Author: Kimmo Kinnunen Date: 2023-10-02 (Mon, 02 Oct 2023) Changed paths: M Source/WebCore/html/CanvasBase.cpp M Source/WebCore/platform/graphics/GraphicsTypes.h M Source/WebCore/platform/graphics/cocoa/IconCocoa.mm M Source/WebCore/platform/graphics/texmap/BitmapTexture.cpp M Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp Log Message: --- GraphicsContext InterpolationQuality::Default is misleading name, add documentation https://bugs.webkit.org/show_bug.cgi?id=262288 rdar://116169474 Reviewed by Antti Koivisto. Add a FIXME documentation what InterpolationQuality::Default means and why it should be removed. Remove the FIXME question in CanvasBase asking what is the InterpolationQuality::Default. Remove few uses of GraphicsContext::setImageInterpolationQuality(InterpolationQuality::Default) where a newly created context obviously tries to use the default quality. The default quality should be the quality set to a newly created context by default. Change a call to GraphicsContext::setImageInterpolationQuality(InterpolationQuality::High) to use ImagePaintingOptions { InterpolationQuality::High }. This conveys the idea better, limit the quality setting to that particular draw. This leaves the setImageInterpolationQuality call-sites to cases where the intention is to leave the state on indefinitively. * Source/WebCore/html/CanvasBase.cpp: * Source/WebCore/platform/graphics/GraphicsTypes.h: * Source/WebCore/platform/graphics/cocoa/IconCocoa.mm: (WebCore::Icon::paint): * Source/WebCore/platform/graphics/texmap/BitmapTexture.cpp: (WebCore::BitmapTexture::updateContents): * Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp: (WebCore::MockRealtimeVideoSource::imageBuffer const): Canonical link: https://commits.webkit.org/268720@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] de7538: REGRESSION(268243@main) ~9/21: MotionMark Images 1...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: de7538e40c42ca6292df250a984e8737ca9baec6 https://github.com/WebKit/WebKit/commit/de7538e40c42ca6292df250a984e8737ca9baec6 Author: Kimmo Kinnunen Date: 2023-09-26 (Tue, 26 Sep 2023) Changed paths: M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.h Log Message: --- REGRESSION(268243@main) ~9/21: MotionMark Images 15% on multiple models https://bugs.webkit.org/show_bug.cgi?id=262032 rdar://115907669 Reviewed by Matt Woodrow. Before 268243@main, call ImageBuffer::copyImageForDrawing() would do the work: if (can use ref) else After 268243@main, the invocation was moved to GraphicsContext::nativeImageForDrawing(): if (can use ref) imageBuffer->createNativeImageReference(); else imageBuffer->copyNativeImage(); ImageBufferShareableMappedIOSurfaceBackend happened to have an copyNativeImage() override that caused a difference in behavior. Remove this code altogether, it was a leftover from eariler days working around the issues of backbuffer reading from WP and updating from GPUP. This code was not needed anymore. It is not correct, as IOSurface seed cannot be used to determine read cache invalidation accurately. The seed is updated during HW rasterization, which happens at undefined time. The drawing commands might be on their way from WP -> GPUP or from GPUP -> CG, and not yet issued at the HW rasterization level. The read cache is cleared when the drawing context, e.g. RemoteDisplayListRecorderProxy detects the first modification after a copyNativeImage() call. RemoteImageBufferProxy::backingStoreWillChange() notification will invalidate the read caches. * Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.h: * Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp: Canonical link: https://commits.webkit.org/268438@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 797f5c: GraphicsContextGLANGLE::getProgramInfoLog is unnee...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 797f5ce964c76827bf09b27a4a7023783cdbe8e3 https://github.com/WebKit/WebKit/commit/797f5ce964c76827bf09b27a4a7023783cdbe8e3 Author: Kimmo Kinnunen Date: 2023-09-26 (Tue, 26 Sep 2023) Changed paths: M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h Log Message: --- GraphicsContextGLANGLE::getProgramInfoLog is unneeded function https://bugs.webkit.org/show_bug.cgi?id=262036 rdar://115988984 Reviewed by Dan Glastonbury. The infolog filtering is done in ANGLE, where the warning string to filter is also probably more up-to-date. * Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLANGLE::getProgramInfoLog): (WebCore::GraphicsContextGLANGLE::getShaderInfoLog): (WebCore::GraphicsContextGLANGLE::getUnmangledInfoLog): Deleted. * Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h: Canonical link: https://commits.webkit.org/268441@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 45446c: Big drop in canvas performance above 3840px
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 45446c5953762c13ef4ac71be91c535cd064ed24 https://github.com/WebKit/WebKit/commit/45446c5953762c13ef4ac71be91c535cd064ed24 Author: Kimmo Kinnunen Date: 2023-09-26 (Tue, 26 Sep 2023) Changed paths: M LayoutTests/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt M LayoutTests/compositing/canvas/accelerated-canvas-compositing-size-limit.html R LayoutTests/compositing/canvas/accelerated-small-canvas-compositing-expected.txt R LayoutTests/compositing/canvas/accelerated-small-canvas-compositing.html M LayoutTests/fast/canvas/image-buffer-backend-variants-expected.txt M LayoutTests/platform/ios/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt M LayoutTests/platform/ios/fast/canvas/image-buffer-backend-variants-expected.txt A LayoutTests/platform/mac-wk1/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt M LayoutTests/platform/mac-wk1/fast/canvas/image-buffer-backend-variants-expected.txt M LayoutTests/platform/mac-wk2/TestExpectations R LayoutTests/platform/mac-wk2/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt M LayoutTests/platform/wincairo/TestExpectations M Source/WebCore/html/CanvasBase.cpp M Source/WebCore/html/CanvasBase.h M Source/WebCore/page/Chrome.cpp M Source/WebCore/page/Chrome.h M Source/WebCore/page/ChromeClient.h M Source/WebCore/page/Settings.yaml M Source/WebCore/platform/GraphicsClient.h M Source/WebCore/platform/graphics/ImageBuffer.cpp M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm M Source/WebKit/Shared/WebImage.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h M Source/WebKit/WebProcess/WebCoreSupport/WebWorkerClient.cpp M Source/WebKit/WebProcess/WebCoreSupport/WebWorkerClient.h M Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.cpp Log Message: --- Big drop in canvas performance above 3840px https://bugs.webkit.org/show_bug.cgi?id=236173 rdar://88536159 Reviewed by Simon Fraser. Limiting the accelerted canvas 2d context to arbitrary 5120*2880 is not useful. The performance difference gets more beneficial to hardware rasterization the higher the resolution. The limit did not protect against hitting hardware rasterization limits, since the limits are always per dimension, not per area. As per above, capping based on any upper limit is not useful. Thus remove the upper limit. Reuse the unused lower limit as the trigger. The lower limit is justified, as very small areas might be useful to rasterize with CPU. Start the limit at 0, to match the previous behavior. The hardware acceleration limits are checked in the respective ImageBufferBackends, e.g. ImageBufferIOSurfaceBackend::calculateSafeSize. This is done in WP for both GPUP mode and in-process mode. Both will fall back to Unaccelerated. Changes the RemoteRenderingBackend::createImageBuffer() to use buffer options instead of rendering mode. The the buffer options may be honored, but rendering mode would imply that it must be honored. Later on when the rendering mode is more policy based on rendering purpose, this is more clear. * LayoutTests/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt: * LayoutTests/compositing/canvas/accelerated-canvas-compositing-size-limit.html: * LayoutTests/compositing/canvas/accelerated-small-canvas-compositing-expected.txt: Removed. * LayoutTests/compositing/canvas/accelerated-small-canvas-compositing.html: Removed. * LayoutTests/fast/canvas/image-buffer-backend-variants-expected.txt: * LayoutTests/platform/ios/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt: Removed. * LayoutTests/platform/ios/fast/canvas/image-buffer-backend-variants-expected.txt: * LayoutTests/platform/mac-wk1/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt: Added. * LayoutTests/platform/mac-wk1/fast/canvas/image-buffer-backend-variants-expected.txt: * LayoutTests/platform/mac-wk2/TestExpectations: * LayoutTests/platform/mac-wk2/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt: Removed. * LayoutTests/platform/wincairo/TestExpectations: * Source/WebCore/html/CanvasBase.cpp: (WebCore::CanvasBase::shouldAccelerate const): (WebCore::CanvasBase::allocateImageBuffer const): * Source/WebCore/html/CanvasBase.h: * Source/WebCore/page/Settings.yaml: Canonical link: https://commits.webkit.org/268440@main ___ webkit
[webkit-changes] [WebKit/WebKit] 46d4af: ImageBuffer::sinkIntoImage is redundant, should us...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 46d4af9dec904b64811e47050ceedc1c64c7c004 https://github.com/WebKit/WebKit/commit/46d4af9dec904b64811e47050ceedc1c64c7c004 Author: Kimmo Kinnunen Date: 2023-09-26 (Tue, 26 Sep 2023) Changed paths: M Source/WebCore/page/ContextMenuController.cpp M Source/WebCore/page/TextIndicator.cpp M Source/WebCore/platform/DragImage.cpp M Source/WebCore/platform/graphics/BitmapImage.h M Source/WebCore/platform/graphics/ImageBuffer.cpp M Source/WebCore/platform/graphics/ImageBuffer.h M Source/WebKit/WebProcess/WebCoreSupport/ShareableBitmapUtilities.cpp M Source/WebKitLegacy/mac/WebCoreSupport/WebContextMenuClient.mm M Tools/TestWebKitAPI/Tests/WebCore/ImageBufferTests.cpp Log Message: --- ImageBuffer::sinkIntoImage is redundant, should use sinkIntoNativeImage instead https://bugs.webkit.org/show_bug.cgi?id=261942 rdar://115889056 Reviewed by Matt Woodrow. Remove ImageBuffer::sinkIntoImage(). WebCore::Image is higher level type. Callers should call sinkIntoNativeImage and then convert the NativeImage into Image, if needed. Note: most callers should use NativeImage, as that is the lowest level source image. This is work towards simplifying ImageBuffer by making it operate with NativeImage as its primary primitive image source. * Source/WebCore/page/ContextMenuController.cpp: (WebCore::prepareContextForQRCode): * Source/WebCore/page/TextIndicator.cpp: (WebCore::takeSnapshot): * Source/WebCore/platform/DragImage.cpp: (WebCore::createDragImageFromSnapshot): * Source/WebCore/platform/graphics/BitmapImage.h: * Source/WebCore/platform/graphics/ImageBuffer.cpp: (WebCore::ImageBuffer::sinkIntoImage): Deleted. * Source/WebCore/platform/graphics/ImageBuffer.h: * Source/WebKit/WebProcess/WebCoreSupport/ShareableBitmapUtilities.cpp: (WebKit::createShareableBitmap): * Source/WebKitLegacy/mac/WebCoreSupport/WebContextMenuClient.mm: (WebContextMenuClient::imageForCurrentSharingServicePickerItem): * Tools/TestWebKitAPI/Tests/WebCore/ImageBufferTests.cpp: (TestWebKitAPI::AnyScaleTest::imageBufferOptions const): (TestWebKitAPI::TEST_P): (TestWebKitAPI::PreserveResolutionOperationTest::deviceScaleFactor const): Deleted. (TestWebKitAPI::PreserveResolutionOperationTest::imageBufferOptions const): Deleted. (TestWebKitAPI::PreserveResolutionOperationTest::operationPreserveResolution): Deleted. Canonical link: https://commits.webkit.org/268445@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] efab4b: GraphicsContextCG is instantiated redundantly to r...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: efab4b9bc302ea934c09eed6f7fff30a5dfddff5 https://github.com/WebKit/WebKit/commit/efab4b9bc302ea934c09eed6f7fff30a5dfddff5 Author: Kimmo Kinnunen Date: 2023-10-04 (Wed, 04 Oct 2023) Changed paths: M Source/WebCore/PlatformMac.cmake M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/platform/graphics/GraphicsContext.h A Source/WebCore/platform/graphics/cg/CGUtilities.h M Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp M Source/WebCore/platform/graphics/cg/GraphicsContextCG.h M Source/WebCore/platform/graphics/cg/PatternCG.cpp M Source/WebCore/platform/ios/wak/WAKView.mm Log Message: --- GraphicsContextCG is instantiated redundantly to round rects https://bugs.webkit.org/show_bug.cgi?id=262364 rdar://116233471 Reviewed by Tim Horton. GraphicsContext construction does non-trivial work to ensure the context state is constent. It shouldn't be called just to round rects. Extract the rect rounding code to a freestanding function in CGUtilities.h Unduplicate interpolation quality enum conversion code to the file, too. * Source/WebCore/PlatformMac.cmake: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/platform/graphics/GraphicsContext.h: * Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::drawPatternCallback): (WebCore::GraphicsContextCG::roundToDevicePixels const): (WebCore::cgInterpolationQuality): Deleted. (WebCore::GraphicsContextCG::scaleForRoundingToDevicePixels const): Deleted. * Source/WebCore/platform/graphics/cg/GraphicsContextCG.h: * Source/WebCore/platform/graphics/cg/PatternCG.cpp: (WebCore::patternCallback): * Source/WebCore/platform/ios/wak/WAKView.mm: (+[WAKView _setInterpolationQuality:]): (toCGInterpolationQuality): Deleted. Canonical link: https://commits.webkit.org/268841@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] af33ec: ColorMac creates GraphicsContextCG only to set CGC...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: af33ec387361b90b9972cc1fbd859e59090fbffb https://github.com/WebKit/WebKit/commit/af33ec387361b90b9972cc1fbd859e59090fbffb Author: Kimmo Kinnunen Date: 2023-10-04 (Wed, 04 Oct 2023) Changed paths: M Source/WebCore/platform/cocoa/LocalCurrentGraphicsContext.h M Source/WebCore/platform/graphics/GraphicsContextStateSaver.h M Source/WebCore/platform/graphics/mac/ColorMac.mm M Source/WebCore/platform/ios/LocalCurrentGraphicsContextIOS.mm M Source/WebCore/platform/mac/LocalCurrentGraphicsContextMac.mm Log Message: --- ColorMac creates GraphicsContextCG only to set CGContext as the NSGraphicsContext https://bugs.webkit.org/show_bug.cgi?id=262377 rdar://116241128 Reviewed by Tim Horton. Add LocalCurrentCGContext, similar to LocalCurrentGraphicsContext except it uses direct CGContext instead of GraphicsContextCG. Avoids constructing GraphicsContextCG trivially in this use-case. * Source/WebCore/platform/cocoa/LocalCurrentGraphicsContext.h: (WebCore::LocalCurrentCGContext::LocalCurrentCGContext): (WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext): (WebCore::LocalCurrentGraphicsContext::cgContext): * Source/WebCore/platform/graphics/GraphicsContextStateSaver.h: * Source/WebCore/platform/graphics/mac/ColorMac.mm: (WebCore::makeSimpleColorFromNSColor): * Source/WebCore/platform/ios/LocalCurrentGraphicsContextIOS.mm: (WebCore::LocalCurrentContextSaver::LocalCurrentContextSaver): (WebCore::LocalCurrentContextSaver::~LocalCurrentContextSaver): (WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext): Deleted. (WebCore::LocalCurrentGraphicsContext::~LocalCurrentGraphicsContext): Deleted. * Source/WebCore/platform/mac/LocalCurrentGraphicsContextMac.mm: (WebCore::LocalCurrentContextSaver::LocalCurrentContextSaver): (WebCore::LocalCurrentContextSaver::~LocalCurrentContextSaver): (WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext): Deleted. (WebCore::LocalCurrentGraphicsContext::~LocalCurrentGraphicsContext): Deleted. Canonical link: https://commits.webkit.org/268842@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] c4193e: ImageBuffer has inconsistent drawing virtual funct...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c4193e7297347e14476e7ea1000deaac46ec2d03 https://github.com/WebKit/WebKit/commit/c4193e7297347e14476e7ea1000deaac46ec2d03 Author: Kimmo Kinnunen Date: 2023-09-20 (Wed, 20 Sep 2023) Changed paths: M Source/WebCore/platform/graphics/GraphicsContext.cpp M Source/WebCore/platform/graphics/GraphicsContext.h M Source/WebCore/platform/graphics/ImageBuffer.cpp M Source/WebCore/platform/graphics/ImageBuffer.h M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h Log Message: --- ImageBuffer has inconsistent drawing virtual functions https://bugs.webkit.org/show_bug.cgi?id=261735 rdar://115721568 Reviewed by Matt Woodrow. virtual ImageBuffer::drawPattern() invoked GraphicsContext logic, and was never overwritten. virtual ImageBuffer::drawConsuming() invoked GraphicsContext logic, was overwritten by RemoteImageBufferProxy with the assumption that the destination was remote GraphicsContext. The polymorphism is at GraphicsContext level. Let the functions be at that level: - drawPattern already is - Add virtual GraphicsContext::drawConsumingImageBufer and the real base implementation and Recorder::drawConsumingImageBuffer override. Similar issue with ImageBuffer::draw is handled in another patch. This is work towards making the NativeImage the only image primitive being drawn from, where as currently also ImageBuffer is a pseudo-primitive. * Source/WebCore/platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::drawConsumingImageBuffer): (WebCore::GraphicsContext::drawPattern): * Source/WebCore/platform/graphics/GraphicsContext.h: (WebCore::GraphicsContext::drawConsumingImageBuffer): * Source/WebCore/platform/graphics/ImageBuffer.cpp: (WebCore::copyImageBuffer): (WebCore::ImageBuffer::drawPattern): Deleted. (WebCore::ImageBuffer::drawConsuming): Deleted. * Source/WebCore/platform/graphics/ImageBuffer.h: (WebCore::ImageBuffer::drawConsuming): Deleted. * Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp: (WebCore::DisplayList::Recorder::drawConsumingImageBuffer): * Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h: * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp: (WebKit::RemoteImageBufferProxy::drawConsuming): Deleted. * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h: Canonical link: https://commits.webkit.org/268234@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 238cf2: AttachmentElement cannot be tested with MiniBrowser
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 238cf2fd98964b7cd12b04f476c6739c1f975d03 https://github.com/WebKit/WebKit/commit/238cf2fd98964b7cd12b04f476c6739c1f975d03 Author: Kimmo Kinnunen Date: 2023-10-09 (Mon, 09 Oct 2023) Changed paths: M Tools/MiniBrowser/mac/AppDelegate.m M Tools/MiniBrowser/mac/SettingsController.h M Tools/MiniBrowser/mac/SettingsController.m M Tools/MiniBrowser/mac/WK1BrowserWindowController.m Log Message: --- AttachmentElement cannot be tested with MiniBrowser https://bugs.webkit.org/show_bug.cgi?id=262686 rdar://116509843 Reviewed by Aditya Keerthi. Add a menu entry to enable AttachmentElement. The setting takes place for new windows only. * Tools/MiniBrowser/mac/AppDelegate.m: (-[BrowserAppDelegate defaultConfiguration]): * Tools/MiniBrowser/mac/SettingsController.h: * Tools/MiniBrowser/mac/SettingsController.m: (-[SettingsController _populateMenu:]): (-[SettingsController validateMenuItem:]): (-[SettingsController attachmentElementEnabled]): (-[SettingsController preferenceValueForAttachmentElementEnabledTag:]): (-[SettingsController attachmentElementEnabled:]): (-[SettingsController changeAttachmentElementEnabled:]): * Tools/MiniBrowser/mac/WK2BrowserWindowController.m: (-[WK2BrowserWindowController didChangeSettings]): Canonical link: https://commits.webkit.org/269071@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 9703ab: REGRESSION (267014@main): [ Sonoma debug wk2 ] ASS...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 9703abbca7a62e2945f8cc66dc4fc2fff23919af https://github.com/WebKit/WebKit/commit/9703abbca7a62e2945f8cc66dc4fc2fff23919af Author: Kimmo Kinnunen Date: 2023-10-12 (Thu, 12 Oct 2023) Changed paths: M LayoutTests/platform/mac-wk2/TestExpectations Log Message: --- REGRESSION (267014@main): [ Sonoma debug wk2 ] ASSERTION FAILED: Unhandled message GPUConnectionToWebProcess_ReleaseGraphicsContextGL to 0 https://bugs.webkit.org/show_bug.cgi?id=262401 rdar://116254494 Reviewed by Chris Dumez. Enable the test, the bug was fixed in 269209@main. * LayoutTests/platform/mac-wk2/TestExpectations: Canonical link: https://commits.webkit.org/269252@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 3a5521: ImagePaintingOptions does not have TextStream <
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 3a5521b1d7ea8451a7105bdd32def99a3249 https://github.com/WebKit/WebKit/commit/3a5521b1d7ea8451a7105bdd32def99a3249 Author: Kimmo Kinnunen Date: 2023-10-09 (Mon, 09 Oct 2023) Changed paths: M Source/WebCore/Sources.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/html/CustomPaintImage.cpp M Source/WebCore/html/CustomPaintImage.h M Source/WebCore/html/HTMLCanvasElement.cpp M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/platform/graphics/BifurcatedGraphicsContext.cpp M Source/WebCore/platform/graphics/BifurcatedGraphicsContext.h M Source/WebCore/platform/graphics/BitmapImage.cpp M Source/WebCore/platform/graphics/BitmapImage.h M Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp M Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h M Source/WebCore/platform/graphics/DecodingOptions.h M Source/WebCore/platform/graphics/GeneratedImage.h M Source/WebCore/platform/graphics/GradientImage.cpp M Source/WebCore/platform/graphics/GradientImage.h M Source/WebCore/platform/graphics/GraphicsContext.cpp M Source/WebCore/platform/graphics/GraphicsContext.h M Source/WebCore/platform/graphics/GraphicsContextState.h M Source/WebCore/platform/graphics/Image.cpp M Source/WebCore/platform/graphics/Image.h M Source/WebCore/platform/graphics/ImageBuffer.cpp M Source/WebCore/platform/graphics/ImageOrientation.h A Source/WebCore/platform/graphics/ImagePaintingOptions.cpp M Source/WebCore/platform/graphics/ImagePaintingOptions.h M Source/WebCore/platform/graphics/NamedImageGeneratedImage.cpp M Source/WebCore/platform/graphics/NamedImageGeneratedImage.h M Source/WebCore/platform/graphics/NativeImage.h M Source/WebCore/platform/graphics/NullGraphicsContext.h M Source/WebCore/platform/graphics/cairo/CairoOperations.cpp M Source/WebCore/platform/graphics/cairo/CairoOperations.h M Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp M Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.h M Source/WebCore/platform/graphics/cairo/NativeImageCairo.cpp M Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp M Source/WebCore/platform/graphics/cg/GraphicsContextCG.h M Source/WebCore/platform/graphics/cg/NativeImageCG.cpp M Source/WebCore/platform/graphics/cg/PDFDocumentImage.cpp M Source/WebCore/platform/graphics/cg/PDFDocumentImage.h M Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp M Source/WebCore/platform/graphics/displaylists/DisplayListItems.h M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp M Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h M Source/WebCore/platform/graphics/filters/software/FECompositeSoftwareApplier.cpp M Source/WebCore/platform/graphics/filters/software/SourceAlphaSoftwareApplier.cpp M Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp M Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h M Source/WebCore/rendering/BackgroundPainter.cpp M Source/WebCore/rendering/svg/RenderSVGImage.cpp M Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp M Source/WebCore/rendering/svg/RenderSVGResourceMasker.h M Source/WebCore/svg/graphics/SVGImage.cpp M Source/WebCore/svg/graphics/SVGImage.h M Source/WebCore/svg/graphics/SVGImageForContainer.cpp M Source/WebCore/svg/graphics/SVGImageForContainer.h M Source/WebCore/svg/graphics/SVGResourceImage.cpp M Source/WebCore/svg/graphics/SVGResourceImage.h M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp M Tools/TestWebKitAPI/Tests/WebCore/ImageBufferTests.cpp Log Message: --- ImagePaintingOptions does not have TextStream <https://bugs.webkit.org/show_bug.cgi?id=262772 rdar://116567502 Reviewed by Simon Fraser. Most likely TextStream& operator<<(TextStream&, ImagePaintingOptions) was not implemented sooner since it is a bit more involved. ImagePaintingOptions had variadic non-explicit constructor, that accepted, say, CompositeOperator. Since CompositeOperator had operator<<, adding operator<< to Imag
[webkit-changes] [WebKit/WebKit] 3f684c: SequenceLockedTest.Works times out frequently
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 3f684c97ab593f5a75aad7eb88813841b8dbb5ad https://github.com/WebKit/WebKit/commit/3f684c97ab593f5a75aad7eb88813841b8dbb5ad Author: Kimmo Kinnunen Date: 2023-10-09 (Mon, 09 Oct 2023) Changed paths: M Tools/TestWebKitAPI/Tests/WTF/SequenceLockedTest.cpp Log Message: --- SequenceLockedTest.Works times out frequently https://bugs.webkit.org/show_bug.cgi?id=262875 Reviewed by Antti Koivisto. Avoid the timeout by using less iterations in the loop that tests for races. * Tools/TestWebKitAPI/Tests/WTF/SequenceLockedTest.cpp: (TestWebKitAPI::TEST_F): Canonical link: https://commits.webkit.org/269089@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 765dff: ColorMac creates GraphicsContextCG only to set CGC...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 765dffe2f0dfdd86abab15b6c4c2da4419d4d943 https://github.com/WebKit/WebKit/commit/765dffe2f0dfdd86abab15b6c4c2da4419d4d943 Author: Kimmo Kinnunen Date: 2023-10-11 (Wed, 11 Oct 2023) Changed paths: M Source/WebCore/platform/cocoa/LocalCurrentGraphicsContext.h M Source/WebCore/platform/graphics/GraphicsContextStateSaver.h M Source/WebCore/platform/graphics/mac/ColorMac.mm M Source/WebCore/platform/ios/LocalCurrentGraphicsContextIOS.mm M Source/WebCore/platform/mac/LocalCurrentGraphicsContextMac.mm Log Message: --- ColorMac creates GraphicsContextCG only to set CGContext as the NSGraphicsContext https://bugs.webkit.org/show_bug.cgi?id=262377 rdar://116241128 Reviewed by Tim Horton. Add LocalCurrentCGContext, similar to LocalCurrentGraphicsContext except it uses direct CGContext instead of GraphicsContextCG. Avoids constructing GraphicsContextCG trivially in this use-case. Reland after revert: underlying bugs fixed in commits before. * Source/WebCore/platform/cocoa/LocalCurrentGraphicsContext.h: (WebCore::LocalCurrentCGContext::LocalCurrentCGContext): (WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext): (WebCore::LocalCurrentGraphicsContext::cgContext): * Source/WebCore/platform/graphics/GraphicsContextStateSaver.h: * Source/WebCore/platform/graphics/mac/ColorMac.mm: (WebCore::makeSimpleColorFromNSColor): * Source/WebCore/platform/ios/LocalCurrentGraphicsContextIOS.mm: (WebCore::LocalCurrentContextSaver::LocalCurrentContextSaver): (WebCore::LocalCurrentContextSaver::~LocalCurrentContextSaver): (WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext): Deleted. (WebCore::LocalCurrentGraphicsContext::~LocalCurrentGraphicsContext): Deleted. * Source/WebCore/platform/mac/LocalCurrentGraphicsContextMac.mm: (WebCore::LocalCurrentContextSaver::LocalCurrentContextSaver): (WebCore::LocalCurrentContextSaver::~LocalCurrentContextSaver): (WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext): Deleted. (WebCore::LocalCurrentGraphicsContext::~LocalCurrentGraphicsContext): Deleted. Canonical link: https://commits.webkit.org/269197@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 3b928c: Update ANGLE to 2023-10-14 (cd6b265c262346dca0c236...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 3b928ce58d577d94a25fe6fba82be98a7638f3fb https://github.com/WebKit/WebKit/commit/3b928ce58d577d94a25fe6fba82be98a7638f3fb Author: Kimmo Kinnunen Date: 2023-10-16 (Mon, 16 Oct 2023) Changed paths: M Source/ThirdParty/ANGLE/.gitmodules M Source/ThirdParty/ANGLE/ANGLE.plist M Source/ThirdParty/ANGLE/DEPS M Source/ThirdParty/ANGLE/WebKit/ANGLEShaderProgramVersion.h M Source/ThirdParty/ANGLE/WebKit/angle_commit.h M Source/ThirdParty/ANGLE/changes.diff M Source/ThirdParty/ANGLE/infra/specs/angle.json M Source/ThirdParty/ANGLE/infra/specs/gn_isolate_map.pyl M Source/ThirdParty/ANGLE/infra/specs/test_suites.pyl M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_CTS_(dEQP)_build_files.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_entry_points.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_internal_shader_programs.json M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json M Source/ThirdParty/ANGLE/scripts/generate_entry_points.py M Source/ThirdParty/ANGLE/src/common/FixedQueue.h M Source/ThirdParty/ANGLE/src/common/FixedQueue_unittest.cpp M Source/ThirdParty/ANGLE/src/common/utilities.h M Source/ThirdParty/ANGLE/src/image_util/loadimage.h M Source/ThirdParty/ANGLE/src/image_util/loadimage_etc.cpp M Source/ThirdParty/ANGLE/src/libANGLE/Texture.cpp M Source/ThirdParty/ANGLE/src/libANGLE/capture/FrameCapture.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/TextureGL.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandProcessor.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandProcessor.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DeviceVk.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/FenceNVVk.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/FramebufferVk.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderTargetVk.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ResourceVk.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ResourceVk.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SecondaryCommandPool.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SecondaryCommandPool.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/Suballocation.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/Suballocation.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SyncVk.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SyncVk.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/UtilsVk.cpp M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/UtilsVk.h M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/gen_vk_internal_shaders.py A Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/Blit3DSrc.frag..inc A Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/Blit3DSrc.frag.0001.inc A Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/Blit3DSrc.frag.0002.inc M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag..inc M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0001.inc M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0002.inc M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0003.inc M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0004.inc M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0005.inc M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0006.inc M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0007.inc M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0008.inc M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0009.inc M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.000A.inc M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.000B.inc M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.000C.inc M Source/ThirdParty/ANGLE/src/libANGLE/renderer
[webkit-changes] [WebKit/WebKit] 62439d: AttachmentElement uses AppKit in WebContent process
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 62439d6ff75ce918cff1584fde18e920eaac4901 https://github.com/WebKit/WebKit/commit/62439d6ff75ce918cff1584fde18e920eaac4901 Author: Kimmo Kinnunen Date: 2023-10-06 (Fri, 06 Oct 2023) Changed paths: M Source/WebCore/platform/cocoa/LocalCurrentGraphicsContext.h M Source/WebCore/platform/graphics/cocoa/GraphicsContextCocoa.mm M Source/WebCore/platform/graphics/mac/IconMac.mm M Source/WebCore/platform/graphics/mac/controls/ControlMac.mm M Source/WebCore/platform/graphics/mac/controls/MenuListButtonMac.mm M Source/WebCore/platform/graphics/mac/controls/ProgressBarMac.mm M Source/WebCore/platform/mac/ThemeMac.mm M Source/WebCore/rendering/RenderThemeMac.mm Log Message: --- AttachmentElement uses AppKit in WebContent process https://bugs.webkit.org/show_bug.cgi?id=262684 rdar://116509223 Reviewed by Aditya Keerthi. * Source/WebCore/rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintAttachment): Attachment painting is implemented using GraphicsContext. It should not set the AppKit NSGraphicsContext. If the rendering mode is GPUP, the LocalCurrentGraphicsContext is no-op since the context does not have a platform context. * Source/WebCore/platform/graphics/cocoa/GraphicsContextCocoa.mm: * Source/WebCore/platform/graphics/mac/controls/ControlMac.mm: (WebCore::ControlMac::drawListButton): * Source/WebCore/platform/graphics/mac/controls/MenuListButtonMac.mm: (WebCore::drawMenuListBackground): * Source/WebCore/platform/graphics/mac/controls/ProgressBarMac.mm: (WebCore::ProgressBarMac::draw): Remove use of ContextContainer, it is no-op code. Replace with direct GraphicsContext::platformContext() call. * Source/WebCore/platform/graphics/mac/IconMac.mm: * Source/WebCore/platform/mac/ThemeMac.mm: Remove unused LocalCurrentGraphicsContext.h include. Canonical link: https://commits.webkit.org/268978@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 6a55c5: WebGL resource creation is not robust against cont...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 6a55c5eda697bbd893e6db2a7e7b899553c9227d https://github.com/WebKit/WebKit/commit/6a55c5eda697bbd893e6db2a7e7b899553c9227d Author: Kimmo Kinnunen Date: 2023-08-23 (Wed, 23 Aug 2023) Changed paths: M Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp M Source/WebCore/html/canvas/WebGL2RenderingContext.cpp M Source/WebCore/html/canvas/WebGLBuffer.cpp M Source/WebCore/html/canvas/WebGLBuffer.h M Source/WebCore/html/canvas/WebGLFramebuffer.cpp M Source/WebCore/html/canvas/WebGLFramebuffer.h M Source/WebCore/html/canvas/WebGLObject.cpp M Source/WebCore/html/canvas/WebGLObject.h M Source/WebCore/html/canvas/WebGLProgram.cpp M Source/WebCore/html/canvas/WebGLProgram.h M Source/WebCore/html/canvas/WebGLQuery.cpp M Source/WebCore/html/canvas/WebGLQuery.h M Source/WebCore/html/canvas/WebGLRenderbuffer.cpp M Source/WebCore/html/canvas/WebGLRenderbuffer.h M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/html/canvas/WebGLSampler.cpp M Source/WebCore/html/canvas/WebGLSampler.h M Source/WebCore/html/canvas/WebGLShader.cpp M Source/WebCore/html/canvas/WebGLShader.h M Source/WebCore/html/canvas/WebGLSync.cpp M Source/WebCore/html/canvas/WebGLSync.h M Source/WebCore/html/canvas/WebGLTexture.cpp M Source/WebCore/html/canvas/WebGLTexture.h M Source/WebCore/html/canvas/WebGLTimerQueryEXT.cpp M Source/WebCore/html/canvas/WebGLTimerQueryEXT.h M Source/WebCore/html/canvas/WebGLTransformFeedback.cpp M Source/WebCore/html/canvas/WebGLTransformFeedback.h M Source/WebCore/html/canvas/WebGLVertexArrayObject.cpp M Source/WebCore/html/canvas/WebGLVertexArrayObject.h M Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.cpp M Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.h M Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.cpp M Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.h Log Message: --- WebGL resource creation is not robust against context loss https://bugs.webkit.org/show_bug.cgi?id=260513 rdar://problem/114245538 Reviewed by Dan Glastonbury. At the moment, the various GraphicsContextGL::create{Resource}() calls might return 0 if the context is lost during that call. Handle this in all the WebGL resource constructors. Return RefPtr and handle the nullptr in the caller. * Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp: (WebCore::WebXROpaqueFramebuffer::create): * Source/WebCore/html/canvas/WebGL2RenderingContext.cpp: (WebCore::WebGL2RenderingContext::fenceSync): * Source/WebCore/html/canvas/WebGLBuffer.cpp: (WebCore::WebGLBuffer::create): (WebCore::WebGLBuffer::WebGLBuffer): * Source/WebCore/html/canvas/WebGLBuffer.h: * Source/WebCore/html/canvas/WebGLFramebuffer.cpp: (WebCore::WebGLFramebuffer::create): (WebCore::WebGLFramebuffer::createOpaque): (WebCore::WebGLFramebuffer::WebGLFramebuffer): * Source/WebCore/html/canvas/WebGLFramebuffer.h: * Source/WebCore/html/canvas/WebGLObject.cpp: (WebCore::WebGLObject::WebGLObject): (WebCore::WebGLObject::setObject): Deleted. * Source/WebCore/html/canvas/WebGLObject.h: * Source/WebCore/html/canvas/WebGLProgram.cpp: (WebCore::WebGLProgram::create): (WebCore::WebGLProgram::WebGLProgram): * Source/WebCore/html/canvas/WebGLProgram.h: * Source/WebCore/html/canvas/WebGLQuery.cpp: (WebCore::WebGLQuery::create): (WebCore::WebGLQuery::WebGLQuery): * Source/WebCore/html/canvas/WebGLQuery.h: * Source/WebCore/html/canvas/WebGLRenderbuffer.cpp: (WebCore::WebGLRenderbuffer::create): (WebCore::WebGLRenderbuffer::WebGLRenderbuffer): * Source/WebCore/html/canvas/WebGLRenderbuffer.h: * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::createProgram): * Source/WebCore/html/canvas/WebGLSampler.cpp: (WebCore::WebGLSampler::create): (WebCore::WebGLSampler::WebGLSampler): * Source/WebCore/html/canvas/WebGLSampler.h: * Source/WebCore/html/canvas/WebGLShader.cpp: (WebCore::WebGLShader::create): (WebCore::WebGLShader::WebGLShader): * Source/WebCore/html/canvas/WebGLShader.h: * Source/WebCore/html/canvas/WebGLSync.cpp: (WebCore::WebGLSync::create): (WebCore::WebGLSync::WebGLSync): (WebCore::m_sync): (WebCore::WebGLSync::deleteObjectImpl): * Source/WebCore/html/canvas/WebGLSync.h: * Source/WebCore/html/canvas/WebGLTexture.cpp: (WebCore::WebGLTexture::create): (WebCore::WebGLTexture::WebGLTexture): * Source/WebCore/html/canvas/WebGLTexture.h: * Source/WebCore/html/canvas/WebGLTimerQueryEXT.cpp: (WebCore::WebGLTimerQueryEXT::create): (WebCore::WebGLTimerQueryEXT::WebGLTimerQueryEXT): * Source/WebCore/html/canvas/WebGLTimerQueryEXT.h: * Source/WebCore/html/canvas/WebGLTransformFeedback.cpp: (WebCore::WebGLTransformFeedback::create): (WebCore::WebGLTransformFeedback::WebGLTransformFeedback): * Source/WebCore/html/canvas/WebGLTransformFeedback.h: * Source/WebCore/html/canvas
[webkit-changes] [WebKit/WebKit] 803da1: WebGL extensions have unneeded virtual functions
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 803da124a7ebdbf1cff428047f4f47e2a44e353f https://github.com/WebKit/WebKit/commit/803da124a7ebdbf1cff428047f4f47e2a44e353f Author: Kimmo Kinnunen Date: 2023-08-15 (Tue, 15 Aug 2023) Changed paths: M Source/WebCore/CMakeLists.txt M Source/WebCore/Sources.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/bindings/js/JSDOMConvertWebGL.cpp M Source/WebCore/html/canvas/ANGLEInstancedArrays.cpp M Source/WebCore/html/canvas/ANGLEInstancedArrays.h M Source/WebCore/html/canvas/EXTBlendMinMax.cpp M Source/WebCore/html/canvas/EXTBlendMinMax.h M Source/WebCore/html/canvas/EXTClipControl.cpp M Source/WebCore/html/canvas/EXTClipControl.h M Source/WebCore/html/canvas/EXTColorBufferFloat.cpp M Source/WebCore/html/canvas/EXTColorBufferFloat.h M Source/WebCore/html/canvas/EXTColorBufferHalfFloat.cpp M Source/WebCore/html/canvas/EXTColorBufferHalfFloat.h M Source/WebCore/html/canvas/EXTConservativeDepth.cpp M Source/WebCore/html/canvas/EXTConservativeDepth.h M Source/WebCore/html/canvas/EXTDepthClamp.cpp M Source/WebCore/html/canvas/EXTDepthClamp.h M Source/WebCore/html/canvas/EXTDisjointTimerQuery.cpp M Source/WebCore/html/canvas/EXTDisjointTimerQuery.h M Source/WebCore/html/canvas/EXTDisjointTimerQueryWebGL2.cpp M Source/WebCore/html/canvas/EXTDisjointTimerQueryWebGL2.h M Source/WebCore/html/canvas/EXTFloatBlend.cpp M Source/WebCore/html/canvas/EXTFloatBlend.h M Source/WebCore/html/canvas/EXTFragDepth.cpp M Source/WebCore/html/canvas/EXTFragDepth.h M Source/WebCore/html/canvas/EXTPolygonOffsetClamp.cpp M Source/WebCore/html/canvas/EXTPolygonOffsetClamp.h M Source/WebCore/html/canvas/EXTRenderSnorm.cpp M Source/WebCore/html/canvas/EXTRenderSnorm.h M Source/WebCore/html/canvas/EXTShaderTextureLOD.cpp M Source/WebCore/html/canvas/EXTShaderTextureLOD.h M Source/WebCore/html/canvas/EXTTextureCompressionBPTC.cpp M Source/WebCore/html/canvas/EXTTextureCompressionBPTC.h M Source/WebCore/html/canvas/EXTTextureCompressionRGTC.cpp M Source/WebCore/html/canvas/EXTTextureCompressionRGTC.h M Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.cpp M Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.h M Source/WebCore/html/canvas/EXTTextureMirrorClampToEdge.cpp M Source/WebCore/html/canvas/EXTTextureMirrorClampToEdge.h M Source/WebCore/html/canvas/EXTTextureNorm16.cpp M Source/WebCore/html/canvas/EXTTextureNorm16.h M Source/WebCore/html/canvas/EXTsRGB.cpp M Source/WebCore/html/canvas/EXTsRGB.h M Source/WebCore/html/canvas/KHRParallelShaderCompile.cpp M Source/WebCore/html/canvas/KHRParallelShaderCompile.h M Source/WebCore/html/canvas/NVShaderNoperspectiveInterpolation.cpp M Source/WebCore/html/canvas/NVShaderNoperspectiveInterpolation.h M Source/WebCore/html/canvas/OESDrawBuffersIndexed.cpp M Source/WebCore/html/canvas/OESDrawBuffersIndexed.h M Source/WebCore/html/canvas/OESElementIndexUint.cpp M Source/WebCore/html/canvas/OESElementIndexUint.h M Source/WebCore/html/canvas/OESFBORenderMipmap.cpp M Source/WebCore/html/canvas/OESFBORenderMipmap.h M Source/WebCore/html/canvas/OESSampleVariables.cpp M Source/WebCore/html/canvas/OESSampleVariables.h M Source/WebCore/html/canvas/OESShaderMultisampleInterpolation.cpp M Source/WebCore/html/canvas/OESShaderMultisampleInterpolation.h M Source/WebCore/html/canvas/OESStandardDerivatives.cpp M Source/WebCore/html/canvas/OESStandardDerivatives.h M Source/WebCore/html/canvas/OESTextureFloat.cpp M Source/WebCore/html/canvas/OESTextureFloat.h M Source/WebCore/html/canvas/OESTextureFloatLinear.cpp M Source/WebCore/html/canvas/OESTextureFloatLinear.h M Source/WebCore/html/canvas/OESTextureHalfFloat.cpp M Source/WebCore/html/canvas/OESTextureHalfFloat.h M Source/WebCore/html/canvas/OESTextureHalfFloatLinear.cpp M Source/WebCore/html/canvas/OESTextureHalfFloatLinear.h M Source/WebCore/html/canvas/OESVertexArrayObject.cpp M Source/WebCore/html/canvas/OESVertexArrayObject.h M Source/WebCore/html/canvas/WebGLClipCullDistance.cpp M Source/WebCore/html/canvas/WebGLClipCullDistance.h M Source/WebCore/html/canvas/WebGLColorBufferFloat.cpp M Source/WebCore/html/canvas/WebGLColorBufferFloat.h M Source/WebCore/html/canvas/WebGLCompressedTextureASTC.cpp M Source/WebCore/html/canvas/WebGLCompressedTextureASTC.h M Source/WebCore/html/canvas/WebGLCompressedTextureETC.cpp M Source/WebCore/html/canvas/WebGLCompressedTextureETC.h M Source/WebCore/html/canvas/WebGLCompressedTextureETC1.cpp M Source/WebCore/html/canvas/WebGLCompressedTextureETC1.h M Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.cpp M Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.h M Source
[webkit-changes] [WebKit/WebKit] 1bce7e: WebGL has unfinished context sharing feature
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 1bce7e57fc29e682b95cfa4b27114ed6b1f4be94 https://github.com/WebKit/WebKit/commit/1bce7e57fc29e682b95cfa4b27114ed6b1f4be94 Author: Kimmo Kinnunen Date: 2023-08-15 (Tue, 15 Aug 2023) Changed paths: M Source/WebCore/CMakeLists.txt M Source/WebCore/Sources.txt M Source/WebCore/WebCore.order M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/html/canvas/EXTDisjointTimerQuery.cpp M Source/WebCore/html/canvas/OESVertexArrayObject.cpp M Source/WebCore/html/canvas/WebGL2RenderingContext.cpp M Source/WebCore/html/canvas/WebGLBuffer.cpp M Source/WebCore/html/canvas/WebGLBuffer.h R Source/WebCore/html/canvas/WebGLContextGroup.cpp R Source/WebCore/html/canvas/WebGLContextGroup.h R Source/WebCore/html/canvas/WebGLContextObject.cpp R Source/WebCore/html/canvas/WebGLContextObject.h M Source/WebCore/html/canvas/WebGLFramebuffer.cpp M Source/WebCore/html/canvas/WebGLFramebuffer.h M Source/WebCore/html/canvas/WebGLObject.cpp M Source/WebCore/html/canvas/WebGLObject.h M Source/WebCore/html/canvas/WebGLProgram.cpp M Source/WebCore/html/canvas/WebGLProgram.h M Source/WebCore/html/canvas/WebGLQuery.cpp M Source/WebCore/html/canvas/WebGLQuery.h M Source/WebCore/html/canvas/WebGLRenderbuffer.cpp M Source/WebCore/html/canvas/WebGLRenderbuffer.h M Source/WebCore/html/canvas/WebGLRenderingContext.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.h M Source/WebCore/html/canvas/WebGLSampler.cpp M Source/WebCore/html/canvas/WebGLSampler.h M Source/WebCore/html/canvas/WebGLShader.cpp M Source/WebCore/html/canvas/WebGLShader.h R Source/WebCore/html/canvas/WebGLSharedObject.cpp R Source/WebCore/html/canvas/WebGLSharedObject.h M Source/WebCore/html/canvas/WebGLSync.cpp M Source/WebCore/html/canvas/WebGLSync.h M Source/WebCore/html/canvas/WebGLTexture.cpp M Source/WebCore/html/canvas/WebGLTexture.h M Source/WebCore/html/canvas/WebGLTimerQueryEXT.cpp M Source/WebCore/html/canvas/WebGLTimerQueryEXT.h M Source/WebCore/html/canvas/WebGLTransformFeedback.cpp M Source/WebCore/html/canvas/WebGLTransformFeedback.h M Source/WebCore/html/canvas/WebGLVertexArrayObject.cpp M Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.cpp M Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.h M Source/WebCore/platform/graphics/GraphicsContextGLAttributes.h M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in Log Message: --- WebGL has unfinished context sharing feature https://bugs.webkit.org/show_bug.cgi?id=260062 rdar://113735088 Reviewed by Dan Glastonbury. WebGL rendering context code was organized as if multiple contexts could share the same objects via the context group. This was feature never fully specified due to technical difficulties and never implemented. The objects always belong to a single context. The partial support makes the code overly complex. This commit removes the feature. Remove WebGLContextObject, WebGLSharedObject subclasses. Just have one WebGLObject base class for the rendering context subobjects. The rendering context held the subobjects in two lists: - Context object list in WebGLRenderingContextBase - Shared object list in WebGLContextGroup The purpose of these lists were: 1. Destroy the underlying GL objects when the rendering context is destroyed. 2. Mark the subobjects as detached when the owning rendering context is lost. Maintaining these lists is more a bit complex than current code leads to believe. Upon failure to allocate the underlying GL object, the subobject creation should fail and then the list append skipped. The creation failure is not handled correctly. To simplify the upcoming fix, just remove the lists altogether. Instead of lists, just represent the subobject <-> rendering context link via WeakPtr. Instead of traversing the lists upon destruction and context loss, invalidate the weak pointers by revoking. This changes the behavior of case 1., where before the underlying GL objects were destroyed and now just abandoned. This is as intended, since the GL context is being destroyed and this takes care of all the underlying GL objects directly. * Source/WebCore/CMakeLists.txt: * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.order: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/html/canvas/EXTDisjointTimerQuery.cpp: (WebCore::EXTDisjointTimerQuery::createQueryEXT): (WebCore::EXTDisjointTimerQuery::deleteQueryEXT): (WebCore::EXTDisjointTimerQuery::isQueryEXT): * Source/WebCore/html/canvas/OESVertexArrayObject.cpp: (WebCore::OESVertexArrayObject::createVertexArrayOES): (WebCore::OESVertexArrayObject::deleteVertexArrayOES): (WebCore::OESVertexArrayObject::isVertexArrayOES): *
[webkit-changes] [WebKit/WebKit] 99dc8d: WebGL extensions access the context root in racy w...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 99dc8dc84d403a8322e9d6ec448667877427d2ee https://github.com/WebKit/WebKit/commit/99dc8dc84d403a8322e9d6ec448667877427d2ee Author: Kimmo Kinnunen Date: 2023-08-16 (Wed, 16 Aug 2023) Changed paths: M Source/WebCore/bindings/scripts/CodeGeneratorJS.pm M Source/WebCore/html/canvas/ANGLEInstancedArrays.idl M Source/WebCore/html/canvas/EXTBlendMinMax.idl M Source/WebCore/html/canvas/EXTClipControl.idl M Source/WebCore/html/canvas/EXTColorBufferFloat.idl M Source/WebCore/html/canvas/EXTColorBufferHalfFloat.idl M Source/WebCore/html/canvas/EXTConservativeDepth.idl M Source/WebCore/html/canvas/EXTDepthClamp.idl M Source/WebCore/html/canvas/EXTDisjointTimerQuery.idl M Source/WebCore/html/canvas/EXTDisjointTimerQueryWebGL2.idl M Source/WebCore/html/canvas/EXTFloatBlend.idl M Source/WebCore/html/canvas/EXTFragDepth.idl M Source/WebCore/html/canvas/EXTPolygonOffsetClamp.idl M Source/WebCore/html/canvas/EXTRenderSnorm.idl M Source/WebCore/html/canvas/EXTShaderTextureLOD.idl M Source/WebCore/html/canvas/EXTTextureCompressionBPTC.idl M Source/WebCore/html/canvas/EXTTextureCompressionRGTC.idl M Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.idl M Source/WebCore/html/canvas/EXTTextureMirrorClampToEdge.idl M Source/WebCore/html/canvas/EXTTextureNorm16.idl M Source/WebCore/html/canvas/EXTsRGB.idl M Source/WebCore/html/canvas/KHRParallelShaderCompile.idl M Source/WebCore/html/canvas/NVShaderNoperspectiveInterpolation.idl M Source/WebCore/html/canvas/OESDrawBuffersIndexed.idl M Source/WebCore/html/canvas/OESElementIndexUint.idl M Source/WebCore/html/canvas/OESFBORenderMipmap.idl M Source/WebCore/html/canvas/OESSampleVariables.idl M Source/WebCore/html/canvas/OESShaderMultisampleInterpolation.idl M Source/WebCore/html/canvas/OESStandardDerivatives.idl M Source/WebCore/html/canvas/OESTextureFloat.idl M Source/WebCore/html/canvas/OESTextureFloatLinear.idl M Source/WebCore/html/canvas/OESTextureHalfFloat.idl M Source/WebCore/html/canvas/OESTextureHalfFloatLinear.idl M Source/WebCore/html/canvas/OESVertexArrayObject.idl M Source/WebCore/html/canvas/WebGLClipCullDistance.idl M Source/WebCore/html/canvas/WebGLColorBufferFloat.idl M Source/WebCore/html/canvas/WebGLCompressedTextureASTC.idl M Source/WebCore/html/canvas/WebGLCompressedTextureETC.idl M Source/WebCore/html/canvas/WebGLCompressedTextureETC1.idl M Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.idl M Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.idl M Source/WebCore/html/canvas/WebGLCompressedTextureS3TCsRGB.idl M Source/WebCore/html/canvas/WebGLDebugRendererInfo.idl M Source/WebCore/html/canvas/WebGLDebugShaders.idl M Source/WebCore/html/canvas/WebGLDepthTexture.idl M Source/WebCore/html/canvas/WebGLDrawBuffers.idl M Source/WebCore/html/canvas/WebGLDrawInstancedBaseVertexBaseInstance.idl M Source/WebCore/html/canvas/WebGLExtension.h M Source/WebCore/html/canvas/WebGLLoseContext.idl M Source/WebCore/html/canvas/WebGLMultiDraw.idl M Source/WebCore/html/canvas/WebGLMultiDrawInstancedBaseVertexBaseInstance.idl M Source/WebCore/html/canvas/WebGLPolygonMode.idl M Source/WebCore/html/canvas/WebGLProvokingVertex.idl M Source/WebCore/html/canvas/WebGLRenderSharedExponent.idl M Source/WebCore/html/canvas/WebGLStencilTexturing.idl Log Message: --- WebGL extensions access the context root in racy way during GC https://bugs.webkit.org/show_bug.cgi?id=260137 rdar://113846683 Reviewed by Dan Glastonbury. The bindings would load WebGLExtension::m_context in GC thread to navigate to the rendering context that is the opaque root of the extension. The WebGL would store WebGLExtension::m_context = nullptr during context lost in JS thread. These loads and stores are theoretically racy. Instead, use std::atomic for m_context, and load in relaxed way in the store thread, i.e. the JS thread. Instead of using GenerateIsReachable=ImplWebGLRenderingContext that hides the issue, use just normal GenerateIsReachable and implement `WebCoreOpaqueRoot root(const WebGLExtension*)` for obtaining the root. * Source/WebCore/bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): * Source/WebCore/html/canvas/ANGLEInstancedArrays.idl: * Source/WebCore/html/canvas/EXTBlendMinMax.idl: * Source/WebCore/html/canvas/EXTClipControl.idl: * Source/WebCore/html/canvas/EXTColorBufferFloat.idl: * Source/WebCore/html/canvas/EXTColorBufferHalfFloat.idl: * Source/WebCore/html/canvas/EXTConservativeDepth.idl: * Source/WebCore/html/canvas/EXTDepthClamp.idl: * Source/WebCore/html/canvas/EXTDisjointTimerQuery.idl: * Source/WebCore/html/canvas/EXTDisjointTimerQueryWebGL2.idl: * Source/WebCore/html/canvas/EXTFloatBlend.idl: * Source/WebCore/html/canvas/EXTFragDepth.idl
[webkit-changes] [WebKit/WebKit] 5cf998: WebGL extension context loss handling is more comp...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5cf998d9e7b5d88a55ad8a402d94b08f2f0eaf34 https://github.com/WebKit/WebKit/commit/5cf998d9e7b5d88a55ad8a402d94b08f2f0eaf34 Author: Kimmo Kinnunen Date: 2023-08-18 (Fri, 18 Aug 2023) Changed paths: M Source/WebCore/Headers.cmake M Source/WebCore/WebCore.order M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/bindings/IDLTypes.h M Source/WebCore/bindings/js/JSDOMConvert.h M Source/WebCore/bindings/js/JSDOMConvertWebGL.cpp M Source/WebCore/bindings/js/JSDOMConvertWebGL.h M Source/WebCore/bindings/js/JSDOMPromiseDeferredForward.h M Source/WebCore/bindings/scripts/CodeGeneratorJS.pm M Source/WebCore/html/canvas/ANGLEInstancedArrays.cpp M Source/WebCore/html/canvas/ANGLEInstancedArrays.h M Source/WebCore/html/canvas/EXTBlendMinMax.cpp M Source/WebCore/html/canvas/EXTBlendMinMax.h M Source/WebCore/html/canvas/EXTClipControl.cpp M Source/WebCore/html/canvas/EXTClipControl.h M Source/WebCore/html/canvas/EXTColorBufferFloat.cpp M Source/WebCore/html/canvas/EXTColorBufferFloat.h M Source/WebCore/html/canvas/EXTColorBufferHalfFloat.cpp M Source/WebCore/html/canvas/EXTColorBufferHalfFloat.h M Source/WebCore/html/canvas/EXTConservativeDepth.cpp M Source/WebCore/html/canvas/EXTConservativeDepth.h M Source/WebCore/html/canvas/EXTDepthClamp.cpp M Source/WebCore/html/canvas/EXTDepthClamp.h M Source/WebCore/html/canvas/EXTDisjointTimerQuery.cpp M Source/WebCore/html/canvas/EXTDisjointTimerQuery.h M Source/WebCore/html/canvas/EXTDisjointTimerQueryWebGL2.cpp M Source/WebCore/html/canvas/EXTDisjointTimerQueryWebGL2.h M Source/WebCore/html/canvas/EXTFloatBlend.cpp M Source/WebCore/html/canvas/EXTFloatBlend.h M Source/WebCore/html/canvas/EXTFragDepth.cpp M Source/WebCore/html/canvas/EXTFragDepth.h M Source/WebCore/html/canvas/EXTPolygonOffsetClamp.cpp M Source/WebCore/html/canvas/EXTPolygonOffsetClamp.h M Source/WebCore/html/canvas/EXTRenderSnorm.cpp M Source/WebCore/html/canvas/EXTRenderSnorm.h M Source/WebCore/html/canvas/EXTShaderTextureLOD.cpp M Source/WebCore/html/canvas/EXTShaderTextureLOD.h M Source/WebCore/html/canvas/EXTTextureCompressionBPTC.cpp M Source/WebCore/html/canvas/EXTTextureCompressionBPTC.h M Source/WebCore/html/canvas/EXTTextureCompressionRGTC.cpp M Source/WebCore/html/canvas/EXTTextureCompressionRGTC.h M Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.cpp M Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.h M Source/WebCore/html/canvas/EXTTextureMirrorClampToEdge.cpp M Source/WebCore/html/canvas/EXTTextureMirrorClampToEdge.h M Source/WebCore/html/canvas/EXTTextureNorm16.cpp M Source/WebCore/html/canvas/EXTTextureNorm16.h M Source/WebCore/html/canvas/EXTsRGB.cpp M Source/WebCore/html/canvas/EXTsRGB.h M Source/WebCore/html/canvas/KHRParallelShaderCompile.cpp M Source/WebCore/html/canvas/KHRParallelShaderCompile.h M Source/WebCore/html/canvas/NVShaderNoperspectiveInterpolation.cpp M Source/WebCore/html/canvas/NVShaderNoperspectiveInterpolation.h M Source/WebCore/html/canvas/OESDrawBuffersIndexed.cpp M Source/WebCore/html/canvas/OESDrawBuffersIndexed.h M Source/WebCore/html/canvas/OESElementIndexUint.cpp M Source/WebCore/html/canvas/OESElementIndexUint.h M Source/WebCore/html/canvas/OESFBORenderMipmap.cpp M Source/WebCore/html/canvas/OESFBORenderMipmap.h M Source/WebCore/html/canvas/OESSampleVariables.cpp M Source/WebCore/html/canvas/OESSampleVariables.h M Source/WebCore/html/canvas/OESShaderMultisampleInterpolation.cpp M Source/WebCore/html/canvas/OESShaderMultisampleInterpolation.h M Source/WebCore/html/canvas/OESStandardDerivatives.cpp M Source/WebCore/html/canvas/OESStandardDerivatives.h M Source/WebCore/html/canvas/OESTextureFloat.cpp M Source/WebCore/html/canvas/OESTextureFloat.h M Source/WebCore/html/canvas/OESTextureFloatLinear.cpp M Source/WebCore/html/canvas/OESTextureFloatLinear.h M Source/WebCore/html/canvas/OESTextureHalfFloat.cpp M Source/WebCore/html/canvas/OESTextureHalfFloat.h M Source/WebCore/html/canvas/OESTextureHalfFloatLinear.cpp M Source/WebCore/html/canvas/OESTextureHalfFloatLinear.h M Source/WebCore/html/canvas/OESVertexArrayObject.cpp M Source/WebCore/html/canvas/OESVertexArrayObject.h M Source/WebCore/html/canvas/WebGL2RenderingContext.cpp M Source/WebCore/html/canvas/WebGL2RenderingContext.h M Source/WebCore/html/canvas/WebGLClipCullDistance.cpp M Source/WebCore/html/canvas/WebGLClipCullDistance.h M Source/WebCore/html/canvas/WebGLColorBufferFloat.cpp M Source/WebCore/html/canvas/WebGLColorBufferFloat.h M Source/WebCore/html/canvas/WebGLCompressedTextureASTC.cpp M Source/WebCore/html/canvas/WebGLCompressedTextureASTC.h M Source
[webkit-changes] [WebKit/WebKit] 5e5018: WebGL sends nonstandard webglcontextchanged event
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5e5018b1d23d63e034f6ba8c0551752b261e521e https://github.com/WebKit/WebKit/commit/5e5018b1d23d63e034f6ba8c0551752b261e521e Author: Kimmo Kinnunen Date: 2023-08-14 (Mon, 14 Aug 2023) Changed paths: M LayoutTests/TestExpectations R LayoutTests/fast/canvas/webgl/context-update-on-display-configuration-expected.txt R LayoutTests/fast/canvas/webgl/context-update-on-display-configuration.html R LayoutTests/fast/canvas/webgl/webglcontextchangedevent-expected.txt R LayoutTests/fast/canvas/webgl/webglcontextchangedevent.html M LayoutTests/platform/ios/TestExpectations M LayoutTests/platform/mac-wk2/TestExpectations M LayoutTests/platform/wincairo/TestExpectations M Source/WebCore/dom/EventNames.h M Source/WebCore/html/HTMLCanvasElement.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.h M Source/WebCore/platform/graphics/GraphicsContextGL.cpp M Source/WebCore/platform/graphics/GraphicsContextGL.h M Source/WebCore/platform/graphics/GraphicsContextGLEnums.h M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp M Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm M Source/WebCore/testing/Internals.cpp M Source/WebCore/testing/Internals.h M Source/WebCore/testing/Internals.idl M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h M Source/WebKit/Headers.cmake M Source/WebKit/Modules/OSX_Private.modulemap M Source/WebKit/Modules/iOS_Private.modulemap M Source/WebKit/Shared/WebCoreArgumentCoders.h M Source/WebKit/Sources.txt R Source/WebKit/UIProcess/API/C/WKMockDisplay.cpp R Source/WebKit/UIProcess/API/C/WKMockDisplay.h M Source/WebKit/UIProcess/WebProcessPool.cpp M Source/WebKit/UIProcess/WebProcessPool.h M Source/WebKit/WebKit.xcodeproj/project.pbxproj M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.messages.in M Tools/TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLCocoa.mm M Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl M Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp M Tools/WebKitTestRunner/InjectedBundle/TestRunner.h M Tools/WebKitTestRunner/TestController.cpp M Tools/WebKitTestRunner/TestController.h M Tools/WebKitTestRunner/TestInvocation.cpp Log Message: --- WebGL sends nonstandard webglcontextchanged event https://bugs.webkit.org/show_bug.cgi?id=260018 rdar://113677584 Reviewed by Dan Glastonbury. Remove the code to send the webglcontextchanged event. The event was not in the specification. It was only dispatched for OpenGL based dual-GPU machines, e.g. on specific machines on Big Sur. Remove the code to test the delivering webglcontextchanged. Note: preserve the code for changing WebGL contexts to current GPU. So for example, if user plugs external monitor to such a computer, the WebGL contexts will still migrate to dGPU. This is just not observable through webglcontextchanged. Naturally, the intention is that this is not observable in any way other than performance difference. * LayoutTests/fast/canvas/webgl/context-update-on-display-configuration-expected.txt: Removed. * LayoutTests/fast/canvas/webgl/context-update-on-display-configuration.html: Removed. * LayoutTests/fast/canvas/webgl/webglcontextchangedevent-expected.txt: Removed. * LayoutTests/fast/canvas/webgl/webglcontextchangedevent.html: Removed. * Source/WebCore/dom/EventNames.h: * Source/WebCore/html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::virtualHasPendingActivity const): (WebCore::HTMLCanvasElement::eventListenersDidChange): * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::dispatchContextChangedNotification): Deleted. * Source/WebCore/html/canvas/WebGLRenderingContextBase.h: * Source/WebCore/platform/graphics/GraphicsContextGL.cpp: (WebCore::GraphicsContextGL::dispatchContextChangedNotification): Deleted. * Source/WebCore/platform/graphics/GraphicsContextGL.h: * Source/WebCore/platform/graphics/GraphicsContextGLEnums.h: * Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLANGLE::simulateEventForTesting): * Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm: (WebCore::GraphicsContextGLCocoa::updateContextOnDisplayReconfiguration): * Source/WebCore/testing/Internals.cpp: (WebCore::Internals::simulateEventForWebGLContext): * Source/WebCore/testing/Internals.h: * Source/WebCore/testing/Internals.idl: * Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp: (WebKit
[webkit-changes] [WebKit/WebKit] c7e433: WebGL rendering contexts have redundant framebuffe...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c7e4339d34a867f39dad1f7cd37ac46ef5982749 https://github.com/WebKit/WebKit/commit/c7e4339d34a867f39dad1f7cd37ac46ef5982749 Author: Kimmo Kinnunen Date: 2023-08-29 (Tue, 29 Aug 2023) Changed paths: M Source/WebCore/html/canvas/WebGL2RenderingContext.cpp M Source/WebCore/html/canvas/WebGL2RenderingContext.h M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.h Log Message: --- WebGL rendering contexts have redundant framebuffer functions, TexImageSource typedef https://bugs.webkit.org/show_bug.cgi?id=260381 rdar://problem/114072108 Reviewed by Dan Glastonbury. Remove the unused functions and duplicated TexImageSource typedef. Move ensureNotNull to a translation unit local free function. * Source/WebCore/html/canvas/WebGL2RenderingContext.cpp: (WebCore::WebGL2RenderingContext::getReadFramebufferBinding): Deleted. (WebCore::WebGL2RenderingContext::restoreCurrentFramebuffer): Deleted. * Source/WebCore/html/canvas/WebGL2RenderingContext.h: * Source/WebCore/html/canvas/WebGLRenderingContext.cpp: (WebCore::root): * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp: (WebCore::ensureNotNull): (WebCore::root): (WebCore::WebGLRenderingContextBase::getReadFramebufferBinding): Deleted. (WebCore::WebGLRenderingContextBase::ensureNotNull const): Deleted. (WebCore::WebGLRenderingContextBase::enableOrDisable): Deleted. (WebCore::WebGLRenderingContextBase::restoreCurrentFramebuffer): Deleted. (WebCore::WebGLRenderingContextBase::restoreCurrentTexture2D): Deleted. * Source/WebCore/html/canvas/WebGLRenderingContextBase.h: Canonical link: https://commits.webkit.org/267394@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] f13b4b: WebGL "is resource" checking and object validation...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: f13b4beff03458f7ee54332a23507cd35e22ad35 https://github.com/WebKit/WebKit/commit/f13b4beff03458f7ee54332a23507cd35e22ad35 Author: Kimmo Kinnunen Date: 2023-08-21 (Mon, 21 Aug 2023) Changed paths: M Source/WebCore/html/canvas/EXTDisjointTimerQuery.cpp M Source/WebCore/html/canvas/EXTDisjointTimerQueryWebGL2.cpp M Source/WebCore/html/canvas/OESVertexArrayObject.cpp M Source/WebCore/html/canvas/WebGL2RenderingContext.cpp M Source/WebCore/html/canvas/WebGL2RenderingContext.h M Source/WebCore/html/canvas/WebGLBuffer.h M Source/WebCore/html/canvas/WebGLDebugShaders.cpp M Source/WebCore/html/canvas/WebGLFramebuffer.cpp M Source/WebCore/html/canvas/WebGLFramebuffer.h M Source/WebCore/html/canvas/WebGLObject.h M Source/WebCore/html/canvas/WebGLProgram.h M Source/WebCore/html/canvas/WebGLQuery.h M Source/WebCore/html/canvas/WebGLRenderbuffer.cpp M Source/WebCore/html/canvas/WebGLRenderbuffer.h M Source/WebCore/html/canvas/WebGLRenderingContext.h M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.h M Source/WebCore/html/canvas/WebGLSampler.h M Source/WebCore/html/canvas/WebGLShader.h M Source/WebCore/html/canvas/WebGLSync.h M Source/WebCore/html/canvas/WebGLTexture.cpp M Source/WebCore/html/canvas/WebGLTexture.h M Source/WebCore/html/canvas/WebGLTimerQueryEXT.h M Source/WebCore/html/canvas/WebGLTransformFeedback.h M Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.h M Source/WebCore/inspector/InspectorShaderProgram.cpp Log Message: --- WebGL "is resource" checking and object validation contains repeated code https://bugs.webkit.org/show_bug.cgi?id=260475 rdar://114207432 Reviewed by Dan Glastonbury. Checks of "isTexture()" and others, and webgl object validation has following problems: - Uses inheritance for customizing behavior, forcing the base class have state which is not common to all subclasses - Has custom but similar code for each resource, with varying level of consistency (slight checking differences) - Has duplicated isContextLost() checks inside validation functions Fix these by: - Using templates to implement the common logic for validation instead of using WebGLObject base class. This allows future changes to remove the virtualization, further simplifying the code. - Expose the differences in resource behavior in the `isUsable()`, `isInitialized()` methods in the resources. - Implement WebGLBindingPoint template to implement "this object was bound" marker in a consistent, "provably" not missing any cases kind of way. - Removes unused WebGLRenderbuffer::isInitialized() and related WebGLFramebuffer::WebGLAttachment::isInitialized() code. The code was unused and appropriate to remove here due to the name clash with the added isInitialized(). - Change validateWebGLObject object argument from pointer to object since it was always called with an existing object. * Source/WebCore/html/canvas/EXTDisjointTimerQuery.cpp: (WebCore::EXTDisjointTimerQuery::isQueryEXT): (WebCore::EXTDisjointTimerQuery::beginQueryEXT): (WebCore::EXTDisjointTimerQuery::queryCounterEXT): (WebCore::EXTDisjointTimerQuery::getQueryObjectEXT): * Source/WebCore/html/canvas/EXTDisjointTimerQueryWebGL2.cpp: (WebCore::EXTDisjointTimerQueryWebGL2::queryCounterEXT): * Source/WebCore/html/canvas/OESVertexArrayObject.cpp: (WebCore::OESVertexArrayObject::isVertexArrayOES): (WebCore::OESVertexArrayObject::bindVertexArrayOES): * Source/WebCore/html/canvas/WebGL2RenderingContext.cpp: (WebCore::WebGL2RenderingContext::validateAndCacheBufferBinding): (WebCore::WebGL2RenderingContext::bindFramebuffer): (WebCore::WebGL2RenderingContext::framebufferTextureLayer): (WebCore::WebGL2RenderingContext::getFragDataLocation): (WebCore::WebGL2RenderingContext::deleteQuery): (WebCore::WebGL2RenderingContext::isQuery): (WebCore::WebGL2RenderingContext::beginQuery): (WebCore::WebGL2RenderingContext::getQueryParameter): (WebCore::WebGL2RenderingContext::isSampler): (WebCore::WebGL2RenderingContext::bindSampler): (WebCore::WebGL2RenderingContext::samplerParameteri): (WebCore::WebGL2RenderingContext::samplerParameterf): (WebCore::WebGL2RenderingContext::getSamplerParameter): (WebCore::WebGL2RenderingContext::isSync): (WebCore::WebGL2RenderingContext::clientWaitSync): (WebCore::WebGL2RenderingContext::waitSync): (WebCore::WebGL2RenderingContext::getSyncParameter): (WebCore::WebGL2RenderingContext::isTransformFeedback): (WebCore::WebGL2RenderingContext::bindTransformFeedback): (WebCore::WebGL2RenderingContext::transformFeedbackVaryings): (WebCore::WebGL2RenderingContext::getTransformFeedbackVarying): (WebCore::WebGL2RenderingContext::setIndexedBufferBinding): (WebCore::WebGL2RenderingContext::getUniformIn
[webkit-changes] [WebKit/WebKit] ffc701: Fix unified build issues after 267037@main
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ffc701d1abadc9a6e6dd5c07bd9cacb1bd737077 https://github.com/WebKit/WebKit/commit/ffc701d1abadc9a6e6dd5c07bd9cacb1bd737077 Author: Kimmo Kinnunen Date: 2023-08-22 (Tue, 22 Aug 2023) Changed paths: M Source/WebCore/html/canvas/ANGLEInstancedArrays.h M Source/WebCore/html/canvas/EXTBlendMinMax.h M Source/WebCore/html/canvas/EXTClipControl.h M Source/WebCore/html/canvas/EXTColorBufferFloat.h M Source/WebCore/html/canvas/EXTColorBufferHalfFloat.h M Source/WebCore/html/canvas/EXTConservativeDepth.h M Source/WebCore/html/canvas/EXTDepthClamp.h M Source/WebCore/html/canvas/EXTDisjointTimerQuery.cpp M Source/WebCore/html/canvas/EXTDisjointTimerQuery.h M Source/WebCore/html/canvas/EXTDisjointTimerQueryWebGL2.h M Source/WebCore/html/canvas/EXTFloatBlend.h M Source/WebCore/html/canvas/EXTFragDepth.h M Source/WebCore/html/canvas/EXTPolygonOffsetClamp.h M Source/WebCore/html/canvas/EXTRenderSnorm.h M Source/WebCore/html/canvas/EXTShaderTextureLOD.h M Source/WebCore/html/canvas/EXTTextureCompressionRGTC.h M Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.h M Source/WebCore/html/canvas/EXTTextureMirrorClampToEdge.h M Source/WebCore/html/canvas/EXTTextureNorm16.h M Source/WebCore/html/canvas/EXTsRGB.h M Source/WebCore/html/canvas/OESVertexArrayObject.h M Source/WebCore/html/canvas/WebGLMultiDraw.h M Source/WebCore/html/canvas/WebGLMultiDrawInstancedBaseVertexBaseInstance.h M Source/WebCore/html/canvas/WebGLPolygonMode.h M Source/WebCore/html/canvas/WebGLProvokingVertex.h M Source/WebCore/html/canvas/WebGLRenderSharedExponent.h M Source/WebCore/html/canvas/WebGLRenderingContext.h M Source/WebCore/html/canvas/WebGLStencilTexturing.h Log Message: --- Fix unified build issues after 267037@main https://bugs.webkit.org/show_bug.cgi?id=260512 rdar://problem/114243089 Unreviewed, build fix. Fix headers and make NONCOPYABLE consistent among WebGL extensions after "WebGL extension context loss handling is more complex than needed". * Source/WebCore/html/canvas/ANGLEInstancedArrays.h: * Source/WebCore/html/canvas/EXTBlendMinMax.h: * Source/WebCore/html/canvas/EXTClipControl.h: * Source/WebCore/html/canvas/EXTColorBufferFloat.h: * Source/WebCore/html/canvas/EXTColorBufferHalfFloat.h: * Source/WebCore/html/canvas/EXTConservativeDepth.h: * Source/WebCore/html/canvas/EXTDepthClamp.h: * Source/WebCore/html/canvas/EXTDisjointTimerQuery.cpp: * Source/WebCore/html/canvas/EXTDisjointTimerQuery.h: * Source/WebCore/html/canvas/EXTDisjointTimerQueryWebGL2.h: * Source/WebCore/html/canvas/EXTFloatBlend.h: * Source/WebCore/html/canvas/EXTFragDepth.h: * Source/WebCore/html/canvas/EXTPolygonOffsetClamp.h: * Source/WebCore/html/canvas/EXTRenderSnorm.h: * Source/WebCore/html/canvas/EXTShaderTextureLOD.h: * Source/WebCore/html/canvas/EXTTextureCompressionRGTC.h: * Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.h: * Source/WebCore/html/canvas/EXTTextureMirrorClampToEdge.h: * Source/WebCore/html/canvas/EXTTextureNorm16.h: * Source/WebCore/html/canvas/EXTsRGB.h: * Source/WebCore/html/canvas/OESVertexArrayObject.h: * Source/WebCore/html/canvas/WebGL2RenderingContext.cpp: (WebCore::root): * Source/WebCore/html/canvas/WebGL2RenderingContext.h: * Source/WebCore/html/canvas/WebGLMultiDraw.h: * Source/WebCore/html/canvas/WebGLMultiDrawInstancedBaseVertexBaseInstance.h: * Source/WebCore/html/canvas/WebGLPolygonMode.h: * Source/WebCore/html/canvas/WebGLProvokingVertex.h: * Source/WebCore/html/canvas/WebGLRenderSharedExponent.h: * Source/WebCore/html/canvas/WebGLRenderingContext.h: * Source/WebCore/html/canvas/WebGLStencilTexturing.h: Canonical link: https://commits.webkit.org/267127@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 1f0f53: Fix unified build issues after 267037@main part 2
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 1f0f531cc86f4a36567c7d8076014d46a56bb662 https://github.com/WebKit/WebKit/commit/1f0f531cc86f4a36567c7d8076014d46a56bb662 Author: Kimmo Kinnunen Date: 2023-08-22 (Tue, 22 Aug 2023) Changed paths: M Source/WebCore/html/canvas/WebGLObject.cpp M Source/WebCore/html/canvas/WebGLObject.h M Source/WebCore/html/canvas/WebGLRenderbuffer.h Log Message: --- Fix unified build issues after 267037@main part 2 https://bugs.webkit.org/show_bug.cgi?id=260514 rdar://problem/114249961 Unreviewed, unified build fix. * Source/WebCore/html/canvas/WebGLObject.cpp: (WebCore::WebGLObject::context const): * Source/WebCore/html/canvas/WebGLObject.h: (WebCore::WebGLObject::context const): Deleted. * Source/WebCore/html/canvas/WebGLRenderbuffer.h: Canonical link: https://commits.webkit.org/267129@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] f1d958: Fix unified build issues after 267037@main part 3
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: f1d958f693fea4eb9a3bf43ba38b448be28787a2 https://github.com/WebKit/WebKit/commit/f1d958f693fea4eb9a3bf43ba38b448be28787a2 Author: Kimmo Kinnunen Date: 2023-08-22 (Tue, 22 Aug 2023) Changed paths: M Source/WebCore/html/canvas/WebGLObject.cpp M Source/WebCore/html/canvas/WebGLObject.h Log Message: --- Fix unified build issues after 267037@main part 3 https://bugs.webkit.org/show_bug.cgi?id=260521 rdar://problem/114260537 Unreviewed, unified build fix. * Source/WebCore/html/canvas/WebGLObject.cpp: (WebCore::WebGLObject::validate const): * Source/WebCore/html/canvas/WebGLObject.h: (WebCore::WebGLObject::validate const): Deleted. Canonical link: https://commits.webkit.org/267133@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 2b6f2e: RunLoop lacks a create operation
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 2b6f2e9cb51ed9c4a01ce76efdab7e1dff3c637b https://github.com/WebKit/WebKit/commit/2b6f2e9cb51ed9c4a01ce76efdab7e1dff3c637b Author: Kimmo Kinnunen Date: 2022-09-28 (Wed, 28 Sep 2022) Changed paths: M Source/WTF/wtf/RunLoop.cpp M Source/WTF/wtf/RunLoop.h M Source/WTF/wtf/generic/WorkQueueGeneric.cpp M Source/WebCore/page/scrolling/ScrollingThread.cpp M Source/WebCore/page/scrolling/ScrollingThread.h M Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp M Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h M Tools/TestWebKitAPI/Tests/WTF/RunLoop.cpp Log Message: --- RunLoop lacks a create operation https://bugs.webkit.org/show_bug.cgi?id=245673 rdar://problem/100411103 Reviewed by Antti Koivisto and Žan Doberšek. Move existing logic to RunLoop::create(). This makes future new invocations less error prone. * Source/WTF/wtf/RunLoop.cpp: (WTF::RunLoop::create): * Source/WTF/wtf/RunLoop.h: * Source/WTF/wtf/generic/WorkQueueGeneric.cpp: (WTF::WorkQueueBase::platformInitialize): * Source/WebCore/page/scrolling/ScrollingThread.cpp: (WebCore::ScrollingThread::ScrollingThread): (WebCore::ScrollingThread::isCurrentThread): * Source/WebCore/page/scrolling/ScrollingThread.h: (WebCore::ScrollingThread::runLoop): (): Deleted. * Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp: (WebKit::CompositingRunLoop::CompositingRunLoop): (WebKit::createRunLoop): Deleted. * Tools/TestWebKitAPI/Tests/WTF/RunLoop.cpp: (TestWebKitAPI::TEST): Canonical link: https://commits.webkit.org/254945@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] d257ea: WebGL has a lot of #if USE(ANGLE) blocks, making i...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d257ea20c5996ada3c009a6a2f4a639f92c0e2ca https://github.com/WebKit/WebKit/commit/d257ea20c5996ada3c009a6a2f4a639f92c0e2ca Author: Kimmo Kinnunen Date: 2022-09-28 (Wed, 28 Sep 2022) Changed paths: M LayoutTests/platform/glib/TestExpectations M Source/ThirdParty/ANGLE/CMakeLists.txt M Source/ThirdParty/ANGLE/PlatformGTK.cmake M Source/ThirdParty/ANGLE/PlatformWPE.cmake M Source/ThirdParty/ANGLE/include/CMakeLists.txt M Source/WTF/wtf/Platform.h M Source/WebCore/CMakeLists.txt M Source/WebCore/Headers.cmake M Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp M Source/WebCore/Modules/webxr/WebXRWebGLLayer.cpp M Source/WebCore/PlatformMac.cmake M Source/WebCore/SourcesGTK.txt M Source/WebCore/SourcesWPE.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/html/canvas/ANGLEInstancedArrays.cpp M Source/WebCore/html/canvas/WebGL2RenderingContext.cpp M Source/WebCore/html/canvas/WebGLBuffer.cpp M Source/WebCore/html/canvas/WebGLBuffer.h M Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.cpp M Source/WebCore/html/canvas/WebGLDrawBuffers.cpp M Source/WebCore/html/canvas/WebGLFramebuffer.cpp M Source/WebCore/html/canvas/WebGLFramebuffer.h M Source/WebCore/html/canvas/WebGLProgram.cpp M Source/WebCore/html/canvas/WebGLRenderingContext.cpp M Source/WebCore/html/canvas/WebGLRenderingContext.h M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp M Source/WebCore/html/canvas/WebGLRenderingContextBase.h M Source/WebCore/html/canvas/WebGLShader.h M Source/WebCore/html/canvas/WebGLTexture.cpp M Source/WebCore/html/canvas/WebGLTexture.h M Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.cpp M Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.h M Source/WebCore/platform/TextureMapper.cmake R Source/WebCore/platform/graphics/ANGLEWebKitBridge.cpp R Source/WebCore/platform/graphics/ANGLEWebKitBridge.h M Source/WebCore/platform/graphics/GraphicsContextGL.cpp M Source/WebCore/platform/graphics/angle/ANGLEHeaders.h M Source/WebCore/platform/graphics/angle/ANGLEUtilities.cpp M Source/WebCore/platform/graphics/angle/ANGLEUtilities.h M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h M Source/WebCore/platform/graphics/cairo/GraphicsContextGLCairo.cpp M Source/WebCore/platform/graphics/cg/GraphicsContextGLCG.cpp M Source/WebCore/platform/graphics/cocoa/ANGLEUtilitiesCocoa.cpp M Source/WebCore/platform/graphics/cocoa/ANGLEUtilitiesCocoa.h M Source/WebCore/platform/graphics/gbm/GraphicsContextGLANGLELinux.cpp M Source/WebCore/platform/graphics/gbm/GraphicsContextGLFallback.cpp M Source/WebCore/platform/graphics/gbm/GraphicsContextGLFallback.h M Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBM.cpp M Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBM.h M Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBMTextureMapper.cpp M Source/WebCore/platform/graphics/gbm/GraphicsContextGLGBMTextureMapper.h M Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp M Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h R Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGCGLLayer.cpp R Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGCGLLayer.h R Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGL.cpp R Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGL.h R Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp R Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGLCommon.h R Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGLES.cpp R Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGLES.h R Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.cpp R Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h R Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp R Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp M Source/WebCore/platform/graphics/texmap/BitmapTextureGL.h R Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp R Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapper.h M Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp M Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.h M Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp M Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp M Source/cmake/OptionsGTK.cmake M Source/cmake/OptionsMac.cmake M Source/cmake
[webkit-changes] [WebKit/WebKit] c42fc3: [ New Test ] (254473@main): [ macOS Debug ] TestI...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c42fc3b27592d4628b5075368b4a088619d9f804 https://github.com/WebKit/WebKit/commit/c42fc3b27592d4628b5075368b4a088619d9f804 Author: Kimmo Kinnunen Date: 2022-10-16 (Sun, 16 Oct 2022) Changed paths: M Source/WebKit/Platform/IPC/Connection.cpp M Source/WebKit/Platform/IPC/Connection.h M Source/WebKit/Platform/IPC/cocoa/ConnectionCocoa.mm M Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp Log Message: --- [ New Test ] (254473@main): [ macOS Debug ] TestIPC.ConnectionTest/OpenedConnectionTest.AInvalidateDeliversBDidClose/ClientIsA is a flaky failure https://bugs.webkit.org/show_bug.cgi?id=245787 rdar://problem/100511956 Reviewed by Chris Dumez. On Cocoa: Before, IPC::Connection would detect the other side disconnecting like so: - Before the other side opens the connection, observe NO_SENDERS message through the listening port. - After the other side opens the connection, stop observing NO_SENDERS and start observing SEND_DEAD of the send port. This would fail in corner cases like the test in the subject, where the client would close the connection during initialization phase. The server Connection would receive InitializeConnection message, containing the send port. The server would stop observing NO_SENDERS, but would not verify whether the send port was already a DEAD_NAME port. Simplify by just observing the NO_SENDERS in both cases: before and after connection open. If the send port is already DEAD_NAME when server receives it, process the messages and then process the NO_SENDERS. This has the added benefit that NO_SENDERS is dispatched after dispatching all the messages. This is useful in scenarios where the sender sends messages and then immediately closes -- the messages should be still delivered as usual. This consistency behavior is not yet implemented due to the dispatching logic of the Connection. * Source/WebKit/Platform/IPC/Connection.cpp: (IPC::Connection::dispatchOnReceiveQueueForTesting): * Source/WebKit/Platform/IPC/Connection.h: * Source/WebKit/Platform/IPC/cocoa/ConnectionCocoa.mm: (IPC::requestNoSenderNotifications): (IPC::clearNoSenderNotifications): (IPC::Connection::platformInvalidate): (IPC::Connection::cancelSendSource): (IPC::Connection::platformOpen): (IPC::Connection::sendMessage): (IPC::Connection::platformCanSendOutgoingMessages const): (IPC::Connection::sendOutgoingMessage): (IPC::Connection::initializeSendSource): (IPC::Connection::resumeSendSource): (IPC::readFromMachPort): (IPC::Connection::receiveSourceEventHandler): (IPC::Connection::getAuditToken): * Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp: (TestWebKitAPI::TEST_F): (TestWebKitAPI::ensureConnectionWorkQueueEmpty): (TestWebKitAPI::ConnectionTestBase::setupBase): (TestWebKitAPI::ConnectionTestBase::teardownBase): (TestWebKitAPI::ConnectionTest::openServer): (TestWebKitAPI::ConnectionTest::openClient): (TestWebKitAPI::ConnectionTest::server): (TestWebKitAPI::ConnectionTest::client): (TestWebKitAPI::ConnectionTest::serverClient): (TestWebKitAPI::ConnectionTest::clientClient): (TestWebKitAPI::ConnectionTest::deleteServer): (TestWebKitAPI::ConnectionTest::deleteClient): (TestWebKitAPI::PrintTo): (TestWebKitAPI::ConnectionTestABBA::serverIsA const): (TestWebKitAPI::TEST_P): (TestWebKitAPI::OpenedConnectionTest::serverIsA const): Deleted. (TestWebKitAPI::OpenedConnectionTest::SetUp): Deleted. (TestWebKitAPI::OpenedConnectionTest::TearDown): Deleted. (TestWebKitAPI::OpenedConnectionTest::openA): Deleted. (TestWebKitAPI::OpenedConnectionTest::openB): Deleted. (TestWebKitAPI::OpenedConnectionTest::openBoth): Deleted. (TestWebKitAPI::OpenedConnectionTest::a): Deleted. (TestWebKitAPI::OpenedConnectionTest::aClient): Deleted. (TestWebKitAPI::OpenedConnectionTest::b): Deleted. (TestWebKitAPI::OpenedConnectionTest::bClient): Deleted. (TestWebKitAPI::OpenedConnectionTest::deleteA): Deleted. (TestWebKitAPI::OpenedConnectionTest::deleteB): Deleted. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm: Canonical link: https://commits.webkit.org/255606@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] e23c41: IPC::Connection cannot be bound to arbitrary run loop
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: e23c41101c83695756b09b8741c7529e7b007212 https://github.com/WebKit/WebKit/commit/e23c41101c83695756b09b8741c7529e7b007212 Author: Kimmo Kinnunen Date: 2022-10-20 (Thu, 20 Oct 2022) Changed paths: M Source/WebKit/Platform/IPC/Connection.cpp M Source/WebKit/Platform/IPC/Connection.h M Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp Log Message: --- IPC::Connection cannot be bound to arbitrary run loop https://bugs.webkit.org/show_bug.cgi?id=246336 rdar://problem/101030022 Reviewed by Chris Dumez. Make it possible to bind IPC::Connection::Client to a particular run loop via Connection::open(Client&, RunLoop&). The messages will be dispatched to the passed run loop. * Source/WebKit/Platform/IPC/Connection.cpp: (IPC::Connection::SyncMessageState::runLoop): (IPC::Connection::Connection): (IPC::Connection::~Connection): (IPC::Connection::connection): (IPC::Connection::open): (IPC::Connection::invalidate): (IPC::Connection::waitForMessage): (IPC::Connection::sendSyncMessage): (IPC::Connection::connectionDidClose): (IPC::Connection::dispatchSyncMessage): (IPC::Connection::dispatchDidReceiveInvalidMessage): (IPC::Connection::dispatchDidCloseAndInvalidate): (IPC::Connection::enqueueIncomingMessage): (IPC::Connection::dispatchMessage): (IPC::Connection::dispatchSyncStateMessages): (IPC::Connection::dispatchIncomingMessages): (IPC::Connection::wakeUpRunLoop): (IPC::Connection::dispatchClient): (IPC::Connection::postConnectionDidCloseOnConnectionWorkQueue): Deleted. * Source/WebKit/Platform/IPC/Connection.h: (IPC::Connection::sendSync): (IPC::Connection::waitForAndDispatchImmediately): (IPC::Connection::waitForAsyncCallbackAndDispatchImmediately): * Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp: (TestWebKitAPI::TEST_P): Canonical link: https://commits.webkit.org/255814@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 0882d1: Make WebGL use GPU process on macOS layout tests b...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0882d1833451a0827debe3d4dd4e50129fdb2e35 https://github.com/WebKit/WebKit/commit/0882d1833451a0827debe3d4dd4e50129fdb2e35 Author: Kimmo Kinnunen Date: 2022-10-25 (Tue, 25 Oct 2022) Changed paths: M Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml M Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml Log Message: --- Make WebGL use GPU process on macOS layout tests by default https://bugs.webkit.org/show_bug.cgi?id=246445 rdar://problem/101113326 Reviewed by Tim Horton. * Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml: * Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml: Canonical link: https://commits.webkit.org/255952@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] b43d92: IPC::MessageSender::sendWithAsyncReply is not cons...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: b43d9276ab01200f23cc6e40dabda2d7b767396d https://github.com/WebKit/WebKit/commit/b43d9276ab01200f23cc6e40dabda2d7b767396d Author: Kimmo Kinnunen Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: M Source/WebKit/Platform/IPC/Connection.cpp M Source/WebKit/Platform/IPC/Connection.h M Source/WebKit/Platform/IPC/HandleMessage.h M Source/WebKit/Platform/IPC/MessageSender.cpp M Source/WebKit/Platform/IPC/MessageSender.h M Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp M Source/WebKit/UIProcess/AuxiliaryProcessProxy.h M Source/WebKit/UIProcess/DrawingAreaProxy.cpp M Source/WebKit/UIProcess/DrawingAreaProxy.h M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp M Source/WebKit/UIProcess/ProvisionalPageProxy.h M Source/WebKit/UIProcess/SuspendedPageProxy.cpp M Source/WebKit/UIProcess/SuspendedPageProxy.h M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebPageProxy.h M Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj M Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp A Tools/TestWebKitAPI/Tests/IPC/IPCTestUtilities.cpp A Tools/TestWebKitAPI/Tests/IPC/IPCTestUtilities.h A Tools/TestWebKitAPI/Tests/IPC/MessageSenderTests.cpp Log Message: --- IPC::MessageSender::sendWithAsyncReply is not consistent with send failures https://bugs.webkit.org/show_bug.cgi?id=246457 rdar://problem/101124692 Reviewed by Chris Dumez. The MessageSender would add the async reply handler to the connection regardless of whether the message send failed or not. This was a result of exposing Connection-internal addAsyncReplyHandler() function. Move the addAsyncReplyHandler() out of the Connection interface and handle the send failures inside Connection. This is possible by changing the async message format: first encode the arguments in the message-specific template and then and inside message agnostic Connection::sendMessageWithAsyncReply encode the pre-allocated replyID. The replyID must be preallocated at the moment as AuxiliaryProcessProxy delays the commit of the reply handler. This is a requirement for fix other concurrency bugs between connection thread calling invalidate() and another thread calling sendWithAsyncReply(). These fixes will be made in future commits. * Source/WebKit/Platform/IPC/Connection.cpp: (IPC::addAsyncReplyHandler): (IPC::Connection::sendMessageWithAsyncReply): * Source/WebKit/Platform/IPC/Connection.h: (IPC::Connection::makeAsyncReplyHandler): (IPC::Connection::sendWithAsyncReply): * Source/WebKit/Platform/IPC/HandleMessage.h: (IPC::handleMessageAsync): (IPC::handleMessageAsyncWantsConnection): * Source/WebKit/Platform/IPC/MessageSender.cpp: (IPC::MessageSender::sendMessage): (IPC::MessageSender::sendMessageWithAsyncReply): * Source/WebKit/Platform/IPC/MessageSender.h: * Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp: (WebKit::AuxiliaryProcessProxy::sendMessage): (WebKit::AuxiliaryProcessProxy::didFinishLaunching): (WebKit::AuxiliaryProcessProxy::replyToPendingMessages): * Source/WebKit/UIProcess/AuxiliaryProcessProxy.h: (WebKit::AuxiliaryProcessProxy::sendWithAsyncReply): * Source/WebKit/UIProcess/DrawingAreaProxy.cpp: (WebKit::DrawingAreaProxy::sendMessage): (WebKit::DrawingAreaProxy::sendMessageWithAsyncReply): * Source/WebKit/UIProcess/DrawingAreaProxy.h: * Source/WebKit/UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::sendMessage): (WebKit::ProvisionalPageProxy::sendMessageWithAsyncReply): * Source/WebKit/UIProcess/ProvisionalPageProxy.h: * Source/WebKit/UIProcess/SuspendedPageProxy.cpp: (WebKit::SuspendedPageProxy::sendMessage): (WebKit::SuspendedPageProxy::sendMessageWithAsyncReply): * Source/WebKit/UIProcess/SuspendedPageProxy.h: * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::sendMessage): (WebKit::WebPageProxy::sendMessageWithAsyncReply): * Source/WebKit/UIProcess/WebPageProxy.h: * Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp: (WebKit::IPCTestingAPI::sendMessageWithJSArguments): * Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp: (): Deleted. (TestWebKitAPI::PrintTo): Deleted. (TestWebKitAPI::OpenedConnectionTest::serverIsA const): Deleted. (TestWebKitAPI::OpenedConnectionTest::SetUp): Deleted. (TestWebKitAPI::OpenedConnectionTest::TearDown): Deleted. (TestWebKitAPI::OpenedConnectionTest::openA): Deleted. (TestWebKitAPI::OpenedConnectionTest::openB): Deleted. (TestWebKitAPI::OpenedConnectionTest::openBoth): Deleted. (TestWebKitAPI::OpenedConnectionTest::a): Deleted. (TestWebKitAPI::OpenedConnectionTest::aClient): Deleted. (TestWebKitAPI::OpenedConnectionTest::b): Deleted. (TestWebKitAPI::OpenedConnectionTest::bClient): Deleted. (TestWebKitAPI::OpenedConnectionTest::deleteA): Deleted. (TestWebKitAPI
[webkit-changes] [WebKit/WebKit] 7f9455: WebGL crashes when GPUP DOM Rendering is enabled
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 7f9455e083da3fd2948d702e423a41d8494acf9a https://github.com/WebKit/WebKit/commit/7f9455e083da3fd2948d702e423a41d8494acf9a Author: Kimmo Kinnunen Date: 2022-10-26 (Wed, 26 Oct 2022) Changed paths: A LayoutTests/webgl/webgl-and-dom-in-gpup-expected.html A LayoutTests/webgl/webgl-and-dom-in-gpup.html M Source/WebKit/WebProcess/WebPage/WebPage.cpp Log Message: --- WebGL crashes when GPUP DOM Rendering is enabled https://bugs.webkit.org/show_bug.cgi?id=247056 rdar://problem/101582758 Reviewed by Antti Koivisto. When WebGL GPUP is enabled without UI-side compositing, WebGL must use IOSurfaces in WebContent process. Ensure IOKit blocking is turned on only when UI-side compositing is on. * LayoutTests/webgl/webgl-and-dom-in-gpup-expected.html: Added. * LayoutTests/webgl/webgl-and-dom-in-gpup.html: Added. * Source/WebKit/WebProcess/WebPage/WebPage.cpp: (WebKit::m_appHighlightsVisible): Canonical link: https://commits.webkit.org/256051@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 1ba108: ImageBuffer::drawingContext() is an unused function
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 1ba10815475254633e8ee67462898ca27ac5516b https://github.com/WebKit/WebKit/commit/1ba10815475254633e8ee67462898ca27ac5516b Author: Kimmo Kinnunen Date: 2022-10-29 (Sat, 29 Oct 2022) Changed paths: M Source/WebCore/platform/graphics/ImageBuffer.h M Source/WebCore/platform/graphics/displaylists/DisplayListImageBuffer.h M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h Log Message: --- ImageBuffer::drawingContext() is an unused function https://bugs.webkit.org/show_bug.cgi?id=247193 rdar://problem/101676969 Reviewed by Wenson Hsieh. Remove the unused function to simplify the future renamings of functions with related terms. * Source/WebCore/platform/graphics/ImageBuffer.h: (WebCore::ImageBuffer::drawingContext): Deleted. * Source/WebCore/platform/graphics/displaylists/DisplayListImageBuffer.h: * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp: (WebKit::RemoteImageBufferProxy::drawingContext): Deleted. * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h: Canonical link: https://commits.webkit.org/256129@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] d4f69d: StringOperations.cpp test re-defines WTF::StringTy...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d4f69df7d5b19c44e70860fabf379690682cf896 https://github.com/WebKit/WebKit/commit/d4f69df7d5b19c44e70860fabf379690682cf896 Author: Kimmo Kinnunen Date: 2022-10-29 (Sat, 29 Oct 2022) Changed paths: M Source/WTF/wtf/text/StringConcatenate.h M Source/WTF/wtf/text/StringView.cpp M Tools/TestWebKitAPI/CMakeLists.txt M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj M Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp R Tools/TestWebKitAPI/WTFStringUtilities.cpp M Tools/TestWebKitAPI/WTFStringUtilities.h Log Message: --- StringOperations.cpp test re-defines WTF::StringTypeAdapter implementation, undefined behaviour https://bugs.webkit.org/show_bug.cgi?id=247121 rdar://problem/101669240 Reviewed by Antti Koivisto. In C++, one definition rule states that in one program each definition must consists out of same tokens in all compilation units in the program. https://en.cppreference.com/w/cpp/language/definition ... There can be more than one definition in a program of each of the following: class type, enumeration type, inline function, inline variable (since C++17), templated entity (template or member of template, but not full template specialization), as long as all of the following is true: ... - each definition consists of the same sequence of tokens (typically, appears in the same header file) ... if the definition is for a template, then all these requirements apply to both names at the point of definition and dependent names at the point of instantiation If all these requirements are satisfied, the program behaves as if there is only one definition in the entire program. Otherwise, the program is ill-formed, no diagnostic required. In other words: you cannot have two implementations of same template member function, one 100 bytes and one 1000mbs in size and select between them based on an #define before #include in different .cpp files in the same program. The tests would alter the StringView operator+ used templates via custom define before include. This results in undefined behavior, since libWTF.a would contain one implementation and use of the templates, while the StringOperators.cpp test would intend to contain a different implementation. Also, any other test in TestWTF would use the same version as StringOperators.cpp, due to how the includes are currently written. Using the hack only for StringOperators.cpp would preserve the UB but be the minimalistic change. However, this does not work: The requirement that WTFStringUtilities.h needs to be included before StringView.h is messing up the include order in tests. When trying to fix the include order for all other files except the StringOperators.cpp, the omission of the hack include will cause new, non-hacked template definition for the same templates that are hacked for StringOperators.cpp. This in turn causes non-deterministic selection of the template: the non-hacked, correct template is selected for all instantiations, including the ones in StringOperators.cpp. This causes the test to fail, as the hack is not present. This means that this sort of UB hack cannot be used for StringOperators.cpp while using the correct templates for other instantiations in the binary. This means that almost all WTFString-using tests must use WTFStringUtilities.h to get the hack. This has the problem: - UB - Messed up includes Fix this properly by not using the hack, rather putting the debug logic into the Debug build and disabling the test for non-Debug builds. Use atomic to count the copies so that it doesn't show up in TSAN or similar tools when running normally for other purposes. The test itself of course does not need the atomic. This is work that is prerequisite to fix tests to obey normal WebKit include rules. * Source/WTF/wtf/text/StringConcatenate.h: * Source/WTF/wtf/text/StringView.cpp: * Tools/TestWebKitAPI/CMakeLists.txt: * Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp: (TestWebKitAPI::TEST): * Tools/TestWebKitAPI/WTFStringUtilities.cpp: Removed. * Tools/TestWebKitAPI/WTFStringUtilities.h: Canonical link: https://commits.webkit.org/256131@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 411c08: GraphicsContextFlushIdentifier is defined in wrong...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 411c085135810ca6b030fc5e357e9cefed0908ec https://github.com/WebKit/WebKit/commit/411c085135810ca6b030fc5e357e9cefed0908ec Author: Kimmo Kinnunen Date: 2022-10-29 (Sat, 29 Oct 2022) Changed paths: M Source/WebCore/Headers.cmake M Source/WebCore/WebCore.xcodeproj/project.pbxproj R Source/WebCore/platform/graphics/GraphicsContextFlushIdentifier.h M Source/WebCore/platform/graphics/ImageBuffer.h M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h M Source/WebKit/Scripts/webkit/messages.py M Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp M Source/WebKit/WebKit.xcodeproj/project.pbxproj A Source/WebKit/WebProcess/GPU/graphics/DisplayListRecorderFlushIdentifier.h A Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderFlushIdentifier.h M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in M Source/WebKit/WebProcess/GPU/graphics/ThreadSafeRemoteImageBufferFlusher.h Log Message: --- GraphicsContextFlushIdentifier is defined in wrong layer https://bugs.webkit.org/show_bug.cgi?id=247185 rdar://problem/101674440 Reviewed by Wenson Hsieh. Move ImageBuffer::didFlush(GraphicsContextFlushIdentifier) to RemoteImageBufferProxy::didFlush(RemoteDisplayListRecorderFlushIdentifier). The former is not part of WebCore:ImageBuffer, it's an implementation detail of latter, RemoteImageBufferProxy. This is part of work reworking how the RemoteImageBuffer identifiers are shared between WP and GPUP. This work is part of making it possible for Context2D and WebGL have faster interop. * Source/WebCore/Headers.cmake: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/platform/graphics/ImageBuffer.h: (WebCore::ImageBuffer::flushDrawingContextAsync): (WebCore::ImageBuffer::didFlush): Deleted. * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp: (WebKit::RemoteDisplayListRecorder::flushContext): * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h: * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in: * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp: (WebKit::RemoteRenderingBackend::didFlush): * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h: * Source/WebKit/Scripts/webkit/messages.py: (serialized_identifiers): (types_that_cannot_be_forward_declared): * Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp: (IPC::serializedIdentifiers): * Source/WebKit/WebKit.xcodeproj/project.pbxproj: * Source/WebKit/WebProcess/GPU/graphics/DisplayListRecorderFlushIdentifier.h: Copied from Source/WebCore/platform/graphics/GraphicsContextFlushIdentifier.h. * Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderFlushIdentifier.h: Renamed from Source/WebCore/platform/graphics/GraphicsContextFlushIdentifier.h. * Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp: (WebKit::RemoteDisplayListRecorderProxy::flushContext): * Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h: * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp: (WebKit::RemoteImageBufferProxy::waitForDidFlushOnSecondaryThread): (WebKit::RemoteImageBufferProxy::didFlush): (WebKit::RemoteImageBufferProxy::flushDrawingContextAsync): * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h: (WebKit::RemoteImageBufferProxy::lastSentFlushIdentifier const): * Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp: (WebKit::RemoteRenderingBackendProxy::didFlush): * Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h: * Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in: * Source/WebKit/WebProcess/GPU/graphics/ThreadSafeRemoteImageBufferFlusher.h: Canonical link: https://commits.webkit.org/256127@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 2419e9: Style checker has issue with test implementation f...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 2419e966a284c22a483f6f9bdc02141bed8e0c29 https://github.com/WebKit/WebKit/commit/2419e966a284c22a483f6f9bdc02141bed8e0c29 Author: Kimmo Kinnunen Date: 2022-10-29 (Sat, 29 Oct 2022) Changed paths: M Tools/Scripts/webkitpy/style/checkers/cpp.py M Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py Log Message: --- Style checker has issue with test implementation files with no primary headers https://bugs.webkit.org/show_bug.cgi?id=185057 rdar://problem/101670878 Reviewed by Jonathan Bedard. Fix the cpp style checker to account for test .cpp files. These files do not have a primary header file. The style checker would make many mistakes flagging a wrong include as primary include. For file ConnectionTests.cpp: - It would think "Connection.h" would be a primary include. - It would think "Test.h" would be a primary include. * Tools/Scripts/webkitpy/style/checkers/cpp.py: (_classify_include): * Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py: Canonical link: https://commits.webkit.org/256128@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 53f84d: ANGLE builtin metal shader compilation outputs dur...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 53f84db88a67e7772fde6336984c139591ed1ade https://github.com/WebKit/WebKit/commit/53f84db88a67e7772fde6336984c139591ed1ade Author: Kimmo Kinnunen Date: 2022-09-21 (Wed, 21 Sep 2022) Changed paths: M Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj Log Message: --- ANGLE builtin metal shader compilation outputs during build time https://bugs.webkit.org/show_bug.cgi?id=245413 rdar://problem/100159634 Reviewed by Alexey Proskuryakov. Remove the "echo" command that was probably used for debugging. * Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj: Canonical link: https://commits.webkit.org/254718@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] abe387: filter-webkit-build does not catch build preparati...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: abe3878de54ffed9a6eb6de74e246bee9739e209 https://github.com/WebKit/WebKit/commit/abe3878de54ffed9a6eb6de74e246bee9739e209 Author: Kimmo Kinnunen Date: 2022-09-21 (Wed, 21 Sep 2022) Changed paths: M Tools/Scripts/filter-build-webkit M Tools/Scripts/webkitperl/filter-build-webkit_unittest/shouldIgnoreLine_unittests.pl Log Message: --- filter-webkit-build does not catch build preparation, preferences, inspector protocol bindings and settings generators https://bugs.webkit.org/show_bug.cgi?id=245412 rdar://problem/100159026 Reviewed by Alexey Proskuryakov. Also adds a debug mode so debugging the script is easier. * Tools/Scripts/filter-build-webkit: (usageAndExit): (main): (printLine): (setOutputFormatOption): (shouldIgnoreLine): * Tools/Scripts/webkitperl/filter-build-webkit_unittest/shouldIgnoreLine_unittests.pl: Canonical link: https://commits.webkit.org/254719@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes