Use uniform buffers for gfx
don't update materials if they are valid in the uniform buffer