WebGL first clear is lost when scissor is used for preserveDrawingBuffer:true in some conditions Possibly c.enable(c.SCISSOR_TEST); c.clearColor(0., 1., 0., 0.5); c.scissor(0, 0, 300, 50); c.clear(c.COLOR_BUFFER_BIT); c.scissor(125, 50, 50, 50); c.clearColor(0., 1., 0., 1.); c.clear(c.COLOR_BUFFER_BIT); c.scissor(0, 0, 300, 50); c.clear(c.COLOR_BUFFER_BIT);
Great find - let's try to write a conformance test for this once it's understood.
<rdar://problem/83668270>
Created attachment 439850 [details] Patch
Created attachment 439852 [details] Patch
Comment on attachment 439852 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=439852&action=review > LayoutTests/ChangeLog:9 > + done-scissor ?
Created attachment 439969 [details] Patch for landing
I defer to Dean's review, but have filed: Add test for scissor affecting compositing https://github.com/KhronosGroup/WebGL/issues/3337 to make sure this doesn't get lost, and is handled properly in other browsers.
Committed r283979 (242825@main): <https://commits.webkit.org/242825@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 439969 [details].