Add `GPU_material_batch` API. It uses the new `GPU_shader_batch` from #122232 internally and it works in the same way. Note: This doesn't implement parallel material optimizations. Pull Request: https://projects.blender.org/blender/blender/pulls/122793
Update #121137 to store the reused GPUPass on its own GPUMaterial, instead of replacing the GPUMaterial itself. Pull Request: https://projects.blender.org/blender/blender/pulls/121790
Pull Request: https://projects.blender.org/blender/blender/pulls/119807