Yeah, but they were only flags before, you didn't have to code any differently to use them. I used to try loading most surfaces in hardware, letting them fallback to software if it failed. Now they have separated them out, you're going to either have to abstract a new "Surface" or have two lots of functions based on if you created you them SW or HW.
"Batshit crazy" is what springs to mind