add usage hint, split render into upload and draw