slightly optimized when rendering multiple primitives or always same pass