OK, here is the rev 4 of ipdf.
The major enhancement here is using shared memory to pass the image from ipdf to the X server instead of shoving it down the Xlib pipe to the X server.
I also removed the fill rectangle code and handled its function in the code that transfers the Splash bitmap to the shared memory buffer. The shared memory buffer is a full sized CLIENT_AREA buffer. If the Splash bitmap is too narrow and/or too short I fill the unused areas in the buffer with white bytes (rather than fill the whole client area with white, then paint in the bitmap.)
Just that extra bit quicker now, you can see it, but you can't describe it, but you know you want it.
Enjoy.