CanvasCaptureMediaStreamTrack enables WebGL drawing buffer preserving This changes de-facto observable behavior, as websites expect rAF to prepare the drawing buffer for display. Web sites in general sometimes depend on the buffer clearing semantics.
Marking as blocking WebGL GPU Process work, since this is buggy that would need to be implemented in remote WebGL. This should be instead fixed by introducing a canvas monitoring callback for drawing buffer prepare and calling that before the buffer is being prepared for display.
<rdar://problem/70946812>
So the purpose of the feature is to take the webgl canvas contents and send it through webrtc, if I understand correctly. What the implementation does is: 1) Turn on WebGL "preserve drawing buffer" flag of the webgl context. 2) Takes a snapshot of the webgl canvas contents at random point in time after each modification when the execution drops to main loop 3) send that picture over webrtc Steps 1 and 2 are not good.