Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7e67d72fd8ad22a6976516aa50109d511ad802b8
https://github.com/WebKit/WebKit/commit/7e67d72fd8ad22a6976516aa50109d511ad802b8
Author: Kimmo Kinnunen <[email protected]>
Date: 2026-04-23 (Thu, 23 Apr 2026)
Changed paths:
M Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj
M Source/ThirdParty/ANGLE/src/libANGLE/Buffer.cpp
M Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp
M Source/ThirdParty/ANGLE/src/libANGLE/Context.h
M Source/ThirdParty/ANGLE/src/libANGLE/TransformFeedback.cpp
M Source/ThirdParty/ANGLE/src/libANGLE/TransformFeedback.h
M Source/ThirdParty/ANGLE/src/libANGLE/validationES.cpp
M Source/ThirdParty/ANGLE/src/tests/gl_tests/TransformFeedbackTest.cpp
Log Message:
-----------
ANGLE: Metal: TransformFeedbackTest.RenderOnceChangeXfbBufferRenderAgain
fails validation
https://bugs.webkit.org/show_bug.cgi?id=312988
rdar://175334405
Reviewed by Dan Glastonbury.
TransformFeedbackTest.RenderOnceChangeXfbBufferRenderAgain would draw
the second draw with too small transform feedback buffer.
This should generate INVALID_OPERATION, but didn't.
Implement the feature by invalidating the vertex capacity of the
transform feedback buffer when the buffer is updated. Recalculate
the capacity upon the draw call validation check.
WebGL does not use this feature, as updating the buffer is disallowed
by WebGL specification. However, the validation failure would make
running the ANGLEEnd2EndTests inconventient on Metal, as the tests
stop when the process crashes.
Enable TransformFeedback_unittest in WebKit build.
* Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj:
* Source/ThirdParty/ANGLE/src/libANGLE/Buffer.cpp:
(gl::Buffer::onStateChange):
(gl::Buffer::onContentsChange):
* Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp:
(gl::Context::invalidateTransformFeedbackCapacities const):
* Source/ThirdParty/ANGLE/src/libANGLE/Context.h:
* Source/ThirdParty/ANGLE/src/libANGLE/TransformFeedback.cpp:
(gl::TransformFeedbackState::TransformFeedbackState):
(gl::TransformFeedback::begin):
(gl::TransformFeedback::end):
(gl::TransformFeedback::resume):
(gl::TransformFeedback::checkBufferSpaceForDraw):
(gl::TransformFeedback::checkBufferSpaceForDraw const): Deleted.
(gl::TransformFeedback::recomputeVertexCapacity): Deleted.
* Source/ThirdParty/ANGLE/src/libANGLE/TransformFeedback.h:
* Source/ThirdParty/ANGLE/src/libANGLE/validationES.cpp:
(gl::ValidateDrawArraysTransformFeedbackBufferSize):
* Source/ThirdParty/ANGLE/src/tests/gl_tests/TransformFeedbackTest.cpp:
* Source/ThirdParty/ANGLE/src/tests/gl_tests/VertexAttributeTest.cpp:
Canonical link: https://commits.webkit.org/311839@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications