Так как у меня дваде с квадратными спрайтами, я думаю сделать юнит-квад, с юнит-юв, которые буду скейлить под актуальные размеры спрайта уже в шейдере.
У меня работает. Делаешь буфер с вершинами, где одна вершина - один спрайт (с номером спрайта, позицией и размером).
Потом зовёшь draw(0..6, 0..кол-во спрайтов) и в вершинном шейдере генеришь квад.