Rely more on the libGL code to avoid duplicated efforts. Also fix confusion arising from multiple __DRIscreen objects.