I don't think there is a better between the SDL and D3D, just a matter of which works best for the hardware you are running it on.
As far as I know there is no puNES core planned for Retroarch, but that could be wrong and could change.
I copied over my RA shader folder to my puNES folder and loaded it from there.