Branch: refs/heads/webkitglib/2.52
  Home:   https://github.com/WebKit/WebKit
  Commit: d945f9ea601f4a2fc3e89e1233f5002115b46fac
      
https://github.com/WebKit/WebKit/commit/d945f9ea601f4a2fc3e89e1233f5002115b46fac
  Author: Roberto Rodriguez <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M Source/ThirdParty/ANGLE/src/libANGLE/es3_format_type_combinations.json
    M Source/ThirdParty/ANGLE/src/libANGLE/format_map_autogen.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/DepthStencilFormatsTest.cpp

  Log Message:
  -----------
  Cherry-pick [email protected] (8b1c27595893). 
https://bugs.webkit.org/show_bug.cgi?id=315712

    [ANGLE] Fix GL_DEPTH_COMPONENT32_OES format validation to reject 
GL_UNSIGNED_INT_24_8
    https://bugs.webkit.org/show_bug.cgi?id=315712
    rdar://176813583

    Reviewed by Kimmo Kinnunen.

    es3_format_type_combinations.json incorrectly pairs 
GL_DEPTH_COMPONENT32_OES with GL_UNSIGNED_INT_24_8,
    allowing TexImage2D with internalformat=GL_DEPTH_COMPONENT32_OES, 
format=GL_DEPTH_COMPONENT, and
    type=GL_UNSIGNED_INT_24_8 to pass ES3 format validation. 
GL_UNSIGNED_INT_24_8 is only valid with
    GL_DEPTH_STENCIL (per OpenGL ES 3.0.6, Table 3.6). Metal backend's 
load-function table has no converter
    for this combination and falls through to UnreachableLoadFunction which in 
release-mode is a no-op,
    causing an uninitialized malloc'd buffer to be uploaded into the GPU 
process depth texture.

    Change the JSON entry from GL_UNSIGNED_INT_24_8 to GL_UNSIGNED_INT and 
regenerate format_map_autogen.cpp.
    The invalid combination is now rejected with GL_INVALID_OPERATION before 
any buffer allocation occurs.

    * Source/ThirdParty/ANGLE/src/libANGLE/es3_format_type_combinations.json:
    * Source/ThirdParty/ANGLE/src/libANGLE/format_map_autogen.cpp:
    (gl::ValidES3FormatCombination):
    * Source/ThirdParty/ANGLE/src/tests/gl_tests/DepthStencilFormatsTest.cpp:

    Identifier: [email protected]

Canonical link: https://commits.webkit.org/305877.1117@webkitglib/2.52


  Commit: b2139ded406227ebf18951dd3e4ffdf8c7ae05f3
      
https://github.com/WebKit/WebKit/commit/b2139ded406227ebf18951dd3e4ffdf8c7ae05f3
  Author: Roberto Rodriguez <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj
    M Source/ThirdParty/ANGLE/src/compiler/translator/msl/EmitMetal.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/msl/ProgramPrelude.cpp
    M Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests.gni
    A Source/ThirdParty/ANGLE/src/tests/gl_tests/IntegerOverflowClampTest.cpp

  Log Message:
  -----------
  Cherry-pick [email protected] (43afeddf1aab). 
https://bugs.webkit.org/show_bug.cgi?id=315543

    [ANGLE] MSL translator missing integer UB wrappers allow array bounds clamp 
elimination
    https://bugs.webkit.org/show_bug.cgi?id=315543
    rdar://176813852

    Reviewed by Kimmo Kinnunen.

    The MSL translator uses UB-safe wrapper functions to perform integer 
arithmetic via unsigned
    operations, preventing Metal's LLVM backend from exploiting undefined 
behavior to fold away
    the ANGLE_int_clamp array-bounds guard. Three operations are not routed 
through these wrappers:
    signed unary negate, signed division by -1, and unsigned div/mod. The 
resulting UB lets LLVM's
    optimizer eliminate the bounds clamp, allowing a WebGL2 page to index 
arbitrarily into GPU
    device memory.

    The fix routes all three operations through UB-safe wrappers: a new 
ANGLE_negateInt that negates
    via unsigned subtraction, an extended ANGLE_div that guards divisor -1 in 
addition to 0, and
    routing unsigned div/mod through the existing ANGLE_div/ANGLE_imod whose 
unsigned branches already
    mask zero divisors.

    The new wrappers are tested in IntegerOverflowClampTest.cpp.

    * Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj:
    * Source/ThirdParty/ANGLE/src/compiler/translator/msl/EmitMetal.cpp:
    (GetOperatorString):
    * Source/ThirdParty/ANGLE/src/compiler/translator/msl/ProgramPrelude.cpp:
    (PROGRAM_PRELUDE_DECLARE):
    * Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests.gni:
    * Source/ThirdParty/ANGLE/src/tests/gl_tests/IntegerOverflowClampTest.cpp: 
Added.
    (angle::IntegerOverflowClampTest::IntegerOverflowClampTest):
    (angle::IntegerOverflowClampTest::runShader):

    Identifier: [email protected]

Canonical link: https://commits.webkit.org/305877.1118@webkitglib/2.52


  Commit: c8ab82498cbe84c9990f847a1b053597bc639c97
      
https://github.com/WebKit/WebKit/commit/c8ab82498cbe84c9990f847a1b053597bc639c97
  Author: Kimmo Kinnunen <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M Source/ThirdParty/ANGLE/src/libANGLE/VertexArray.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/VertexAttributeTest.cpp

  Log Message:
  -----------
  Cherry-pick [email protected] (3320c0a36383). 
https://bugs.webkit.org/show_bug.cgi?id=317294

    ANGLE: Element limit not updated after format only VertexAttribPointer 
change
    https://bugs.webkit.org/show_bug.cgi?id=317294
    rdar://176813568

    Reviewed by Dan Glastonbury.

    Before, changing the type of a vertex attrib would not cause recomputation
    of how many elements can be drawn. The type size affects this, as
    last attrib of the buffer accesses only the type size amount of data, not
    the stride amount of data.

    Example buffer size == 32:
    - type size == 1, stride == 28  --> buffer fits 2 elements.
    - type size == 16, stride == 28 --> buffer fits 1 element.

    Fix by recomputing the element count also in case the type changes.

    * Source/ThirdParty/ANGLE/src/libANGLE/VertexArray.cpp:
    (gl::VertexArray::bindVertexBufferImpl):
    (gl::VertexArray::bindVertexBuffer):
    (gl::VertexArray::setVertexAttribPointerImpl):
    * Source/ThirdParty/ANGLE/src/tests/gl_tests/VertexAttributeTest.cpp:

    Identifier: [email protected]

Canonical link: https://commits.webkit.org/305877.1119@webkitglib/2.52


  Commit: 4de8bc28e5cfff734ac8c65ac943af91e75c4712
      
https://github.com/WebKit/WebKit/commit/4de8bc28e5cfff734ac8c65ac943af91e75c4712
  Author: Kimmo Kinnunen <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    A 
LayoutTests/ipc/set-fill-pattern-image-buffer-cross-backend-race-expected.txt
    A LayoutTests/ipc/set-fill-pattern-image-buffer-cross-backend-race.html
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp

  Log Message:
  -----------
  Cherry-pick [email protected] (d5c5da3f748b). 
https://bugs.webkit.org/show_bug.cgi?id=317295

    SerializedImageBuffer leaks cross-RemoteRenderingBackend data through 
GraphicsContext
    https://bugs.webkit.org/show_bug.cgi?id=317295
    rdar://175520296

    Reviewed by Dan Glastonbury.

    ImageBuffer context state might leak non-thread-safe
    cross-RemoteRenderingBackend instances through GraphicsContext state.

    Release the GraphicsContext when transfering the ImageBuffer to
    different RRB.

    * 
LayoutTests/ipc/set-fill-pattern-image-buffer-cross-backend-race-expected.txt: 
Added.
    * LayoutTests/ipc/set-fill-pattern-image-buffer-cross-backend-race.html: 
Added.
    * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
    (WebKit::RemoteRenderingBackend::moveToSerializedBuffer):

    Identifier: [email protected]

Canonical link: https://commits.webkit.org/305877.1120@webkitglib/2.52


  Commit: 418b3e661af8865550df72bf272be4913a08f6ee
      
https://github.com/WebKit/WebKit/commit/418b3e661af8865550df72bf272be4913a08f6ee
  Author: Said Abou-Hallawa <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp

  Log Message:
  -----------
  Cherry-pick [email protected] (33120ad29238). 
https://bugs.webkit.org/show_bug.cgi?id=316439

    RemoteRenderingBackend can still allocateImageBuffer() with 
RenderingMode::DisplayList
    https://bugs.webkit.org/show_bug.cgi?id=316439
    rdar://176382472

    Reviewed by Simon Fraser.

    RemoteRenderingBackend::allocateImageBuffer() is called from
    1. RemoteRenderingBackend::createImageBuffer()
    2. RemoteImageBufferSet::ensureBufferForDisplay().

    In 311931@main, which fixes bug 307843, a MESSAGE_CHECK() was added in
    RemoteRenderingBackend::allocateImageBuffer() to prevent creating a remote
    ImageBufferDisplayListBackend. But this change left the call from
    RemoteImageBufferSet::ensureBufferForDisplay().

    The fix is to move the MESSAGE_CHECK from 
RemoteRenderingBackend::createImageBuffer()
    to RemoteRenderingBackend::allocateImageBuffer().

    * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
    (WebKit::RemoteRenderingBackend::allocateImageBuffer):
    (WebKit::RemoteRenderingBackend::createImageBuffer):

    Identifier: [email protected]

Canonical link: https://commits.webkit.org/305877.1121@webkitglib/2.52


Compare: https://github.com/WebKit/WebKit/compare/d532453033db...418b3e661af8

To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to