I still strongly dislike this whole thing. The same logic is ran essentially twice. But I also really don't like putting all this stuff into the hwaccel. That's way more logic than a hwaccel integration should have to do.