Bug 246388

Summary: Max Uniform Block Size (UBO) is too small
Product: WebKit Reporter: munrocket <munsocket>
Component: WebGLAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: dino, geofflang, gman, jonahr, karlcow, kbr, kkinnunen, webkit-bug-importer
Priority: P2 Keywords: BrowserCompat, InRadar
Version: Safari Technology Preview   
Hardware: Other   
OS: Unspecified   

Description munrocket 2022-10-11 20:58:23 PDT
I am tried to implement compute shader with UBO and faced with a problem that WebGL2 Max Uniform Block Size in Safari is much smaller than in Firefox/Chrome.
16384 instead of 65536.
Comment 1 Radar WebKit Bug Importer 2022-10-18 20:59:18 PDT
<rdar://problem/101322218>
Comment 2 Kenneth Russell 2022-10-19 11:54:44 PDT
Do you have a test case for your problem?

Gregg (gman@, cc'd) raised several of these limits in ANGLE's Metal backend, but I'm not sure they made it into Safari yet. Have you tried Safari Technology Preview?

If you try Chrome Canary, go to about:flags, set "Choose ANGLE graphics backend" to "Metal" and restart, is the UBO size larger?
Comment 3 munrocket 2022-10-19 12:25:38 PDT
Interesting. The same issue exist in Chrome Canary (with Metal backend) and Safari Technology Preview. Test case is visible on https://webglreport.com where Max Uniform Block Size is smaller in 4 times.
Comment 4 munrocket 2022-10-21 15:22:57 PDT
In WebKit UBO size in fact almost unlimited. Looks like this bug easy to fix.

Test case:

https://jsgist.org/?src=cb64%2CeJyNVo9P4zYU_lfeskmkLCQpB6etB2jAwe0k0CF-aJso4kzitGaO3dlO2o71f9-znYQU7k4nQHWfnz9_3_tlngJBShqMgvMlPOoPTJsgCjQ1homJDkZPqygoGKe4vO1cmcjpIp6akqNvJoWhwqB5z1oOxgJgb0pJ7la4LqkhkE2JQtT9cVCZYuuXcQBJu2-Y4fTg5ugTnCxIOeN0L_Emh5R0UHsPMl-2hzIiaqIP9pJm0Zh1ptjMgFYZ3jQ1ZqZHSZLlIn7UOeWsVrGgJhGzMjHzCUfrb7vxME6THHUnu_HCmbeKitu9cYD4HrHh0jBAUlZpsIpehCTTei0i1h-e7NmSqAkTI0jf2W-ypqrgcj6CKctzKtC4GgsvxfvPWW6mIximaT13R6aUTabGW6bOgpxnnCxH8MBl9reFeE3ocZ0PpwbO_7o_P_zz3sZ7H3bSX9--gyTB5TlZwI1ghVQlHFlEuGL_Ukhg-HYs7A_CaAO1Rt_PP6IAzaSAN2kKVFs6SEVWJsSTxNidfUgHwATUNNsGciE1s2ak6QJQIZLdwKwY4uTUkuUYJiZCuxr4MKBK64BgfQRrn_D71oK7iLUTdi4RpHEaASZ24Lwxtp_dxV5C8TUJM0Uz5mxTDPYMMEXEOIRWR0vX2qomWG6juqRa8qoj2G46CKiuWUlfHLvCjqB5K9MKgOqUUZ7f_vT0nKPVnVewHrcdKJgg_Fhyqb4VPE-tRrnhdryJITtVZHIspcrjxRK2-qwHmOkSz_dM8SLqe8RLH03oXd6GPt6FnyHe3dQWocY1XudED2wa7N9g8wvqtoatvjZDtkJ9H0SY4ghTIieKlB9FISN4qIqCKrt2vkUlMpd_JpgJnWiLhdU8QZQ_6MOHs21wxb8wdqPpr33IZVaV2BHxPxVVyyvKaWakCseB9xgHXuiEo683xYh47JHQbU4fJny7dWMFhD9MeBd0wqky4YZzGoKQoKvZTCpD841BoxVAUY3dFVqEhjNOx2oGH86uzlrRTU12AUA2bmplihJDL543Qhup2xpDVui7lntc6dYn7IHEzfrVzcQYxR4q41vBd4q32ZA9PTfgCL_kxJAR3G4NI7B_b_yHW95FIKryWJYzKTDGegTbsHIFDL0Erms56uynSpaHSpGldqIaAl6TO4Bkvbc-FPlhx9l5f6VYXkltWtAJbUGb0af7sYralPa6AFU3JeFGdNQWiJ_Pd1FzwNY-TnuX71f3Y-X3guzG9-uYNITcKO6SvEZuHPgZ0haihZOcxlxOwg70ReisuZPaOT0LdT06AkHn4NIQPjfr5s4gxn8FeDj0ZbyO3Kf7hWT06WADjMUcHyg5j0men9RYJmf4AFNBVbjhO2MjAgr7B12f2HNdv7dGz9ox8KZjl4tr-d4_jfYBC9tp0lyY05pl9IItKL-0D1XXLjWjc9umIb4c-PuNJHcaeoTwtVWhaRjZHHJKFMYhPv509uny_ujm9PQEPz5ew392-_3JxfXvPWtbIt9Xjb64jH2b0zR1JdcVmUPIFZk_95RLx3o7rNMngpVYcR3_To6LjaI4JrU5dE7ojm9IScPmTAfmZzB-a8EG74LV3ep_oUeBOQ%3D%3D
Comment 5 munrocket 2022-10-22 02:14:43 PDT
Ok, looks like UBO performance is x10 slower than texture packing for big arrays. Maybe I should close this issue and open a new one about performance.