r600: rework draw functions