Originally posted by liam
View Post
The issue is that skia draws in process whereas cairo draws predominantly in the X server. The issue is that the gtk2 widgets live in the X server. If we use skia for content then we need to read back the gtk2 widgets from the X server to composite them with skia. This adds a big overhead to every composite cycle. The net result is that regular browsing is slower with skia but benchmarks may show a faster result.
GTK3 lets us do widget (native theme) drawing in-process, so we would no longer need to pay the readback cost. We still need to upload the final results back to the X server (either using XRender or OpenGL), which is an extra cost. I suspect the relative performance here will heavily depend on which GPU drivers you have installed (which decides how good your XRender implementation is). Using SkiaGL to generate content directly onto the GPU should be a clearer win, but again, heavily driver dependent.
GTK3 lets us do widget (native theme) drawing in-process, so we would no longer need to pay the readback cost. We still need to upload the final results back to the X server (either using XRender or OpenGL), which is an extra cost. I suspect the relative performance here will heavily depend on which GPU drivers you have installed (which decides how good your XRender implementation is). Using SkiaGL to generate content directly onto the GPU should be a clearer win, but again, heavily driver dependent.
Comment