SSIA
Super simple test case: ``` <canvas width="1" height="1"></canvas> <script> let canvas = document.querySelector("canvas"); let context = canvas.getContext("2d"); context.fillStyle = "red"; context.fillRect(0, 0, 1, 1); let data = context.getImageData(0, 0, 1, 1); document.write(`This is solid red (RGBA): ${data.data[0]}, ${data.data[1]}, ${data.data[2]}, ${data.data[3]}`); </script> ``` This is expected to output “This is solid red (RGBA): 255, 0, 0, 255”. However, when forcing unaccelerated remote image buffers using the GPU process, we get this instead: “This is solid red (RGBA): 0, 0, 255, 255”
Created attachment 409434 [details] Patch
Comment on attachment 409434 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=409434&action=review > Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:-63 > -#if PLATFORM(IOS_FAMILY) This change will affect all platforms including Cairo. But I think this is the right behavior even for the Cairo surface.
Comment on attachment 409434 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=409434&action=review >> Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:-63 >> -#if PLATFORM(IOS_FAMILY) > > This change will affect all platforms including Cairo. But I think this is the right behavior even for the Cairo surface. 👍🏻
Committed r267459: <https://trac.webkit.org/changeset/267459> All reviewed patches have been landed. Closing bug and clearing flags on attachment 409434 [details].
<rdar://problem/69410569>