This way it allows us to use surfaceless contexts in EGL/GLX. It also ensures that the shared context shares a similar setup to the main context's framebuffer, potentially reducing the number of variants a driver needs to generate.