Apparently while i was shuffling code I forgot to set the size and was 0, now I get INVALIDDATA instead of INVALIDCALL
Checked out the console output now that i'm linking to debug libs. It says:
D3DX: Unsupported file format
So I guess D3D9 does not support PNG? If not then I guess I can just load it myself via libpng and pixel buffers.
Upon further research, my C++ style of loading via ifstream was full of fail. For kicks I reverted to the C style of fopen with "rb" and what do you know, load successful
Thanks again guys!