-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
-[MTLCommandBuffer commit] may be called while encoding is still in progress #28680
Conversation
EWS run on previous version of this PR (hash e6abd5f) |
e6abd5f
to
383923a
Compare
EWS run on previous version of this PR (hash 383923a) |
β¦rogress WebKit#28680 <radar://128202303> Reviewed by NOBODY (OOPS!). ensureBlitCommandEncoder needs to ensure the encoding hasn't ended otherwise a new blit command encoder needs to be created. Depends on WebKit#28680 for the test to pass. * LayoutTests/TestExpectations: * LayoutTests/fast/webgpu/fuzz-274289-expected.txt: Added. * LayoutTests/fast/webgpu/fuzz-274289.html: Added. Add regression test. * Source/WebGPU/WebGPU/Queue.mm: (WebGPU::Queue::ensureBlitCommandEncoder):
https://bugs.webkit.org/show_bug.cgi?id=274289 <radar://128202303> Reviewed by NOBODY (OOPS!). ensureBlitCommandEncoder needs to ensure the encoding hasn't ended otherwise a new blit command encoder needs to be created. Depends on WebKit#28680 for the test to pass. * LayoutTests/TestExpectations: * LayoutTests/fast/webgpu/fuzz-274289-expected.txt: Added. * LayoutTests/fast/webgpu/fuzz-274289.html: Added. Add regression test. * Source/WebGPU/WebGPU/Queue.mm: (WebGPU::Queue::ensureBlitCommandEncoder):
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
{ | ||
id<MTLCommandEncoder> currentEncoder = encoderForBuffer(commandBuffer); | ||
if (currentEncoder != commandEncoder) | ||
return; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it an error to try close the non-current encoder? Should it be?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not currently because we automatically stop encoding when the website attempts to leave more than 64 open encoders.
It would seem we should never reach this if we remove that logic dependent on the outcome of gpuweb/gpuweb#4622
383923a
to
e5bb4b0
Compare
e5bb4b0
to
6860782
Compare
β¦rogress https://bugs.webkit.org/show_bug.cgi?id=274275 <radar://128201828> Reviewed by Dan Glastonbury. Ensure we don't leave encoders open or commit command buffers before encoding has ended. * LayoutTests/TestExpectations: * LayoutTests/fast/webgpu/fuzz-274275-expected.txt: Added. * LayoutTests/fast/webgpu/fuzz-274275.html: Added. Add regression test. * Source/WebGPU/WebGPU/CommandEncoder.mm: (WebGPU::CommandEncoder::endEncoding): (WebGPU::CommandEncoder::runClearEncoder): * Source/WebGPU/WebGPU/PresentationContextIOSurface.mm: * Source/WebGPU/WebGPU/Queue.h: * Source/WebGPU/WebGPU/Queue.mm: (WebGPU::Queue::~Queue): (WebGPU::Queue::ensureBlitCommandEncoder): (WebGPU::Queue::finalizeBlitCommandEncoder): (WebGPU::Queue::endEncoding const): (WebGPU::Queue::setEncoderForBuffer): Centralize endEncoding calls. Canonical link: https://commits.webkit.org/279008@main
Committed 279008@main (03357c1): https://commits.webkit.org/279008@main Reviewed commits have been landed. Closing PR #28680 and removing active labels. |
6860782
to
03357c1
Compare
https://bugs.webkit.org/show_bug.cgi?id=274289 <radar://128202303> Reviewed by NOBODY (OOPS!). ensureBlitCommandEncoder needs to ensure the encoding hasn't ended otherwise a new blit command encoder needs to be created. Depends on WebKit#28680 for the test to pass. * LayoutTests/TestExpectations: * LayoutTests/fast/webgpu/fuzz-274289-expected.txt: Added. * LayoutTests/fast/webgpu/fuzz-274289.html: Added. Add regression test. * Source/WebGPU/WebGPU/Queue.mm: (WebGPU::Queue::ensureBlitCommandEncoder):
https://bugs.webkit.org/show_bug.cgi?id=274289 <radar://128202303> Reviewed by NOBODY (OOPS!). ensureBlitCommandEncoder needs to ensure the encoding hasn't ended otherwise a new blit command encoder needs to be created. Depends on WebKit#28680 for the test to pass. * LayoutTests/TestExpectations: * LayoutTests/fast/webgpu/fuzz-274289-expected.txt: Added. * LayoutTests/fast/webgpu/fuzz-274289.html: Added. Add regression test. * Source/WebGPU/WebGPU/Queue.mm: (WebGPU::Queue::ensureBlitCommandEncoder):
https://bugs.webkit.org/show_bug.cgi?id=274289 <radar://128202303> Reviewed by Dan Glastonbury. ensureBlitCommandEncoder needs to ensure the encoding hasn't ended otherwise a new blit command encoder needs to be created. Depends on WebKit#28680 for the test to pass. * LayoutTests/TestExpectations: * LayoutTests/fast/webgpu/fuzz-274289-expected.txt: Added. * LayoutTests/fast/webgpu/fuzz-274289.html: Added. Add regression test. * Source/WebGPU/WebGPU/Queue.mm: (WebGPU::Queue::ensureBlitCommandEncoder): Canonical link: https://commits.webkit.org/279018@main
https://bugs.webkit.org/show_bug.cgi?id=274289 <radar://128202303> Reviewed by Dan Glastonbury. ensureBlitCommandEncoder needs to ensure the encoding hasn't ended otherwise a new blit command encoder needs to be created. Depends on WebKit#28680 for the test to pass. * LayoutTests/TestExpectations: * LayoutTests/fast/webgpu/fuzz-274289-expected.txt: Added. * LayoutTests/fast/webgpu/fuzz-274289.html: Added. Add regression test. * Source/WebGPU/WebGPU/Queue.mm: (WebGPU::Queue::ensureBlitCommandEncoder): Canonical link: https://commits.webkit.org/279026@main
03357c1
e5bb4b0
π§ͺ wpe-wk2π§ͺ ios-wk2-wptπ§ͺ mac-AS-debug-wk2