[webkit-changes] [WebKit/WebKit] 4f132f: LOG_WITH_LEVEL does not compile

2023-08-30 Thread Kimmo Kinnunen
  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

2023-09-05 Thread Kimmo Kinnunen
  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...

2023-09-05 Thread Kimmo Kinnunen
  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...

2023-09-06 Thread Kimmo Kinnunen
  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...

2023-09-06 Thread Kimmo Kinnunen
  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...

2023-09-05 Thread Kimmo Kinnunen
  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

2023-09-07 Thread Kimmo Kinnunen
  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...

2023-09-07 Thread Kimmo Kinnunen
  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...

2023-09-07 Thread Kimmo Kinnunen
  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...

2023-09-11 Thread Kimmo Kinnunen
  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...

2023-08-31 Thread Kimmo Kinnunen
  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...

2023-09-13 Thread Kimmo Kinnunen
  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

2023-09-13 Thread Kimmo Kinnunen
  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...

2023-09-12 Thread Kimmo Kinnunen
  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

2023-09-07 Thread Kimmo Kinnunen
  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...

2023-08-29 Thread Kimmo Kinnunen
  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 ...

2023-09-15 Thread Kimmo Kinnunen
  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...

2023-09-04 Thread Kimmo Kinnunen
  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...

2023-09-04 Thread Kimmo Kinnunen
  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...

2023-09-08 Thread Kimmo Kinnunen
  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...

2023-09-08 Thread Kimmo Kinnunen
  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() ...

2023-09-08 Thread Kimmo Kinnunen
  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...

2023-09-08 Thread Kimmo Kinnunen
  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...

2023-09-08 Thread Kimmo Kinnunen
  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...

2023-10-27 Thread Kimmo Kinnunen
  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...

2023-11-01 Thread Kimmo Kinnunen
  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...

2023-11-02 Thread Kimmo Kinnunen
  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...

2023-11-02 Thread Kimmo Kinnunen
  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...

2023-11-07 Thread Kimmo Kinnunen
  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...

2023-11-07 Thread Kimmo Kinnunen
  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...

2023-11-07 Thread Kimmo Kinnunen
  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...

2023-10-31 Thread Kimmo Kinnunen
  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...

2023-10-30 Thread Kimmo Kinnunen
  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...

2023-10-30 Thread Kimmo Kinnunen
  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...

2023-10-30 Thread Kimmo Kinnunen
  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

2023-10-26 Thread Kimmo Kinnunen
  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...

2023-10-26 Thread Kimmo Kinnunen
  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...

2023-10-25 Thread Kimmo Kinnunen
  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 ...

2023-11-06 Thread Kimmo Kinnunen
  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...

2023-10-30 Thread Kimmo Kinnunen
  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...

2023-10-25 Thread Kimmo Kinnunen
  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...

2023-09-22 Thread Kimmo Kinnunen
  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...

2023-09-21 Thread Kimmo Kinnunen
  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...

2023-09-21 Thread Kimmo Kinnunen
  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 ...

2023-09-22 Thread Kimmo Kinnunen
  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...

2023-09-20 Thread Kimmo Kinnunen
  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...

2023-09-20 Thread Kimmo Kinnunen
  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...

2023-09-20 Thread Kimmo Kinnunen
  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...

2023-09-20 Thread Kimmo Kinnunen
  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...

2023-09-20 Thread Kimmo Kinnunen
  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

2023-09-21 Thread Kimmo Kinnunen
  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...

2023-09-21 Thread Kimmo Kinnunen
  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...

2023-09-20 Thread Kimmo Kinnunen
  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...

2023-09-18 Thread Kimmo Kinnunen
  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...

2023-09-22 Thread Kimmo Kinnunen
  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...

2023-09-29 Thread Kimmo Kinnunen
  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...

2023-09-29 Thread Kimmo Kinnunen
  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...

2023-09-29 Thread Kimmo Kinnunen
  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...

2023-09-29 Thread Kimmo Kinnunen
  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...

2023-09-29 Thread Kimmo Kinnunen
  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...

2023-09-28 Thread Kimmo Kinnunen
  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...

2023-10-02 Thread Kimmo Kinnunen
  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...

2023-09-26 Thread Kimmo Kinnunen
  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...

2023-09-26 Thread Kimmo Kinnunen
  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

2023-09-26 Thread Kimmo Kinnunen
  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...

2023-09-26 Thread Kimmo Kinnunen
  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...

2023-10-04 Thread Kimmo Kinnunen
  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...

2023-10-04 Thread Kimmo Kinnunen
  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...

2023-09-21 Thread Kimmo Kinnunen
  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

2023-10-09 Thread Kimmo Kinnunen
  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...

2023-10-12 Thread Kimmo Kinnunen
  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 <

2023-10-09 Thread Kimmo Kinnunen
  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

2023-10-09 Thread Kimmo Kinnunen
  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...

2023-10-11 Thread Kimmo Kinnunen
  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...

2023-10-16 Thread Kimmo Kinnunen
  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

2023-10-06 Thread Kimmo Kinnunen
  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...

2023-08-23 Thread Kimmo Kinnunen
  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

2023-08-15 Thread Kimmo Kinnunen
  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

2023-08-15 Thread Kimmo Kinnunen
  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...

2023-08-17 Thread Kimmo Kinnunen
  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...

2023-08-18 Thread Kimmo Kinnunen
  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

2023-08-14 Thread Kimmo Kinnunen
  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...

2023-08-29 Thread Kimmo Kinnunen
  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...

2023-08-22 Thread Kimmo Kinnunen
  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

2023-08-22 Thread Kimmo Kinnunen
  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

2023-08-22 Thread Kimmo Kinnunen
  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

2023-08-22 Thread Kimmo Kinnunen
  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

2022-09-28 Thread Kimmo Kinnunen
  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...

2022-09-28 Thread Kimmo Kinnunen
  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...

2022-10-16 Thread Kimmo Kinnunen
  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

2022-10-20 Thread Kimmo Kinnunen
  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...

2022-10-25 Thread Kimmo Kinnunen
  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...

2022-10-26 Thread Kimmo Kinnunen
  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

2022-10-27 Thread Kimmo Kinnunen
  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

2022-10-29 Thread Kimmo Kinnunen
  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...

2022-10-29 Thread Kimmo Kinnunen
  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...

2022-10-29 Thread Kimmo Kinnunen
  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...

2022-10-29 Thread Kimmo Kinnunen
  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...

2022-09-21 Thread Kimmo Kinnunen
  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...

2022-09-21 Thread Kimmo Kinnunen
  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


  1   2   3   4   >