Ok. So, fixing the other problems didn't work because unity-greeter was never actually drawing to the pixmap it created - the code to draw the background was bubbling through GTK, and hitting
[+20.72s] CRITICAL: gtk_widget_draw: assertion `!widget->priv->alloc_needed' failed’
So, unity-greeter was setting the background pixmap to an uninitialised pixmap, netting random VRAM contents on !intel, and, for some strange reason, the correct image on Intel.
Ok. So, fixing the other problems didn't work because unity-greeter was never actually drawing to the pixmap it created - the code to draw the background was bubbling through GTK, and hitting >priv-> alloc_needed' failed’
[+20.72s] CRITICAL: gtk_widget_draw: assertion `!widget-
So, unity-greeter was setting the background pixmap to an uninitialised pixmap, netting random VRAM contents on !intel, and, for some strange reason, the correct image on Intel.
I should now be able to fix this.