| Summary: | webgl/2.0.y/conformance2/vertex_arrays/vertex-array-object.html fails | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Kimmo Kinnunen <kkinnunen> | ||||||||
| Component: | WebGL | Assignee: | Kimmo Kinnunen <kkinnunen> | ||||||||
| Status: | RESOLVED FIXED | ||||||||||
| Severity: | Normal | CC: | cdumez, changseok, dino, esprehn+autocc, ews-watchlist, gyuyoung.kim, kbr, kkinnunen, kondapallykalyan, webkit-bug-importer | ||||||||
| Priority: | P2 | Keywords: | InRadar | ||||||||
| Version: | Other | ||||||||||
| Hardware: | Unspecified | ||||||||||
| OS: | Unspecified | ||||||||||
| Bug Depends on: | |||||||||||
| Bug Blocks: | 222812 | ||||||||||
| Attachments: |
|
||||||||||
|
Description
Kimmo Kinnunen
2021-03-17 00:49:36 PDT
At least macOS 11.3, iMacPro1,1, Radeon Pro Vega 56 Created attachment 437623 [details]
Patch
Created attachment 437627 [details]
Patch
Comment on attachment 437627 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=437627&action=review > Source/WebCore/ChangeLog:14 > + WebGL specific constraint is not checked by ANGLE. Add this check to > + WebCore. Shouldn't this be in ANGLE when validating against WebGL? (In reply to Dean Jackson from comment #5) > Comment on attachment 437627 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=437627&action=review > > > Source/WebCore/ChangeLog:14 > > + WebGL specific constraint is not checked by ANGLE. Add this check to > > + WebCore. > > Shouldn't this be in ANGLE when validating against WebGL? This should be said about 90% of the `validate*` functions. But you're right, there's something special about this logic that I failed to express when writing the ChangeLog. I'll revise it: The problem is that when doing the ANGLE side VAO update on buffer delete, WebCore relies on deleting the ANGLE side buffer. This works when the deleted buffer is in only one VAO. However, when buffer is shared by multiple bindings, the ANGLE side buffer is not deleted until last binding is freed. Thus from ANGLE's perspective the buffer is in the VAO and the validation passes. Comment on attachment 437627 [details]
Patch
Great; yes, this validation was most easily implemented in the browser's code rather than down in ANGLE due to the object lifetimes and the needed caching. (All objects bound into the WebGL context have to have mirrors at the C++ level; this includes vertex array objects.)
Created attachment 437659 [details]
Patch
Committed r282192 (241479@main): <https://commits.webkit.org/241479@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 437659 [details]. |