[WinCairo] WebGL isn't shown in non-AC mode 1. Start WinCairo MiniBrowser 2. Go to a WebGL page, for example, https://get.webgl.org/ A cube is shown 3. Disable Accelerated Compositing. Menu → Debug → Use Accelerated Compositing 4. The cube disappears
Created attachment 417114 [details] WIP patch
Created attachment 417116 [details] Patch
In this case, context creation should fail when the failIfMajorPerformanceCaveat context creation flag is set. Can you verify that is working?
Comment on attachment 417116 [details] Patch r+ assuming jdarpinian's question is answered in the affirmative.
(In reply to James Darpinian from comment #3) > In this case, context creation should fail when the > failIfMajorPerformanceCaveat context creation flag is set. Can you verify > that is working? No, it doesn't fail. I don't think it should fail in the case. Disabling accelerated compositing doesn't necessarily mean no GPU available. I disables WinCairo's accelerated compositing for some purposes: 1. non-AC mode is still faster than AC mode in WinCairo. (WinCairo's compositor should be improved) 2. Comparing AC mode and non-AC mode rendering results for debugging compositor's issues WebGL works nicely in non-AC mode with this patch. I think there is no MajorPerformanceCaveat.
This exact situation, using glReadPixels in the compositing path, is exactly why failIfMajorPerformanceCaveat was originally added to the spec. It is a big performance problem for fullscreen WebGL apps on high resolution monitors.
(In reply to James Darpinian from comment #6) > This exact situation, using glReadPixels in the compositing path, is exactly > why failIfMajorPerformanceCaveat was originally added to the spec. It is a > big performance problem for fullscreen WebGL apps on high resolution > monitors. Yeah, it's pretty likely happening. Reading back from GPU to CPU is so expensive. OK. I'm going to land the patch without solving the failIfMajorPerformanceCaveat problem and leave the task into my lengthy to-do list.
(In reply to Fujii Hironori from comment #7) > (In reply to James Darpinian from comment #6) > > This exact situation, using glReadPixels in the compositing path, is exactly > > why failIfMajorPerformanceCaveat was originally added to the spec. It is a > > big performance problem for fullscreen WebGL apps on high resolution > > monitors. > > Yeah, it's pretty likely happening. Reading back from GPU to CPU is so > expensive. > > OK. I'm going to land the patch without solving the > failIfMajorPerformanceCaveat problem and leave the task into my > lengthy to-do list. Would you mind filing a bug here under the WebGL component and blocking it on this one? That way at least it's tracked in a way that others might potentially contribute to the solution. Thanks!
Sure. Filed: Bug 220428 – [WinCairo] WebGL context creation should fail if accelerated compositing is disabled and the failIfMajorPerformanceCaveat context creation flag is set
Comment on attachment 417116 [details] Patch Clearing flags on attachment: 417116 Committed r271254: <https://trac.webkit.org/changeset/271254>
All reviewed patches have been landed. Closing bug.
<rdar://problem/72900500>