RESOLVED FIXED Bug 238914
Max Limits have been reduced
https://bugs.webkit.org/show_bug.cgi?id=238914
Summary Max Limits have been reduced
Dean Jackson
Reported 2022-04-06 17:25:34 PDT
An internal reporter says: It looks like WebGL capabilities have also changed between 15.3 and 15.4 (on MacOS + Metal, at any rate). Iā€™m seeing GL_MAX_FRAGMENT_UNIFORM_VECTORS (and VERTEX too) drop from 1024 (15.3) to 256 (15.4) on several devices: MacBook Pro intel MacBook Pro radeon MacBook Pro M1 Max Presumably another side effect of the ANGLE bump. (Apple folks - there is some discussion on Slack about what might have gone wrong - see radar)
Attachments
Patch (3.23 KB, patch)
2022-04-07 17:10 PDT, Kyle Piddington
no flags
Patch (4.08 KB, patch)
2022-04-07 17:32 PDT, Kyle Piddington
no flags
Radar WebKit Bug Importer
Comment 1 2022-04-06 17:25:45 PDT
Kyle Piddington
Comment 2 2022-04-07 17:10:19 PDT
EWS Watchlist
Comment 3 2022-04-07 17:11:50 PDT
Note that there are important steps to take when updating ANGLE. See https://trac.webkit.org/wiki/UpdatingANGLE
Dean Jackson
Comment 4 2022-04-07 17:17:19 PDT
Comment on attachment 456994 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=456994&action=review > Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ProgramMtl.mm:1294 > + > + Nit: Blank lines.
Kyle Piddington
Comment 5 2022-04-07 17:32:09 PDT
Dean Jackson
Comment 6 2022-04-07 17:34:11 PDT
Comment on attachment 456997 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=456997&action=review > Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ProgramMtl.mm:1286 > + ANGLE_TRY(getBufferPool(context)->allocate(context, > + uniformBlock.uniformData.size(), &ptrOut, &mtlBufferOut, &offsetOut)); I'm not familiar with ANGLE but I expect you don't need to worry about deallocation? > Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ProgramMtl.mm:1288 > + memcpy(ptrOut, uniformBlock.uniformData.data(), uniformBlock.uniformData.size()); And we don't need to worry about reading out of bounds here?
Kyle Piddington
Comment 7 2022-04-08 13:41:52 PDT
Comment on attachment 456997 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=456997&action=review >> Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ProgramMtl.mm:1286 >> + uniformBlock.uniformData.size(), &ptrOut, &mtlBufferOut, &offsetOut)); > > I'm not familiar with ANGLE but I expect you don't need to worry about deallocation? That's correct, deallocation will happen when the buffer pool is destroyed. Any in-flight buffers can be reused. >> Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ProgramMtl.mm:1288 >> + memcpy(ptrOut, uniformBlock.uniformData.data(), uniformBlock.uniformData.size()); > > And we don't need to worry about reading out of bounds here? Also correct, ANGLE_TRY will return early if we fail to allocate a buffer of proper size.
Gphone
Comment 8 2022-04-12 21:28:31 PDT
the kDefaultUniformsMaxSize = 16 * 1024; is just one UBO buffer max size. does it support that if i define many UBOs in one shader program each size is 16 * 1024?
EWS
Comment 9 2022-04-26 19:32:37 PDT
Committed r293494 (250027@main): <https://commits.webkit.org/250027@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 456997 [details].
Brent Fulgham
Comment 10 2022-06-23 16:34:46 PDT
*** Bug 239116 has been marked as a duplicate of this bug. ***
Note You need to log in before you can comment on or make changes to this bug.