レトロ2Dゲーに限ってDrawPrimitiveを毎回呼び出すのは無理だよ
32x32マップチップを800x600の画面に描画するのでさえ処理落ちするし
そういう用途に限ってVertexBufferを使用する最大数まで確保しておいて
使用頂点数指定して描画したほうがいい

ただ、マテリアルの切替とかできないから汎用性をつけるのははっきりいって無駄
もうそこだけ限定でおk