Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 37cb0315e58b50bdaacded723a686faa123cc176
      
https://github.com/WebKit/WebKit/commit/37cb0315e58b50bdaacded723a686faa123cc176
  Author: Roberto Rodriguez <[email protected]>
  Date:   2026-08-27 (Thu, 27 Aug 2026)

  Changed paths:
    M 
Source/ThirdParty/ANGLE/src/compiler/translator/tree_ops/msl/RewriteInterpolants.cpp
    M 
Source/ThirdParty/ANGLE/src/tests/gl_tests/ShaderMultisampleInterpolation.cpp

  Log Message:
  -----------
  [ANGLE] Correctly rewrite unindexed interpolant array references
https://bugs.webkit.org/show_bug.cgi?id=322224
rdar://181806881

Reviewed by Kimmo Kinnunen.

In a fragment shader, calling interpolateAt on a single element of an input 
array
marks the whole array as an interpolant. ANGLE's MSL translator then has to wrap
other references to it in an interpolation function. Since no overload takes an
entire array the internal symbol table returns nullptr. The caller then asserts
non-null in debug builds and dereferences the nullptr in release, crashing
either way.

Fix by interpolating each element and building a new array from the results. The
new array is just a temp, so it is not an interpolant itself. Each element gets
its own copy of the original reference, so the original is dropped rather than
reused.

* 
Source/ThirdParty/ANGLE/src/compiler/translator/tree_ops/msl/RewriteInterpolants.cpp:
* Source/ThirdParty/ANGLE/src/tests/gl_tests/ShaderMultisampleInterpolation.cpp:

Canonical link: https://commits.webkit.org/319977@main



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

Reply via email to