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