My guess is your surface type is wrong/not matching, so its re-converting it on every op, making it slow.For fills, I think you want software surface, not hardware
(If you mix a hardware surface with a software one, or there might be other bad combinations too )
--
Jake