pub fn queue_material_meshes<M: Material>(
    opaque_draw_functions: Res<'_, DrawFunctions<Opaque3d>>,
    alpha_mask_draw_functions: Res<'_, DrawFunctions<AlphaMask3d>>,
    transparent_draw_functions: Res<'_, DrawFunctions<Transparent3d>>,
    material_pipeline: Res<'_, MaterialPipeline<M>>,
    pipelines: ResMut<'_, SpecializedMeshPipelines<MaterialPipeline<M>>>,
    pipeline_cache: Res<'_, PipelineCache>,
    msaa: Res<'_, Msaa>,
    render_meshes: Res<'_, RenderAssets<Mesh>>,
    render_materials: Res<'_, RenderMaterials<M>>,
    material_meshes: Query<'_, '_, (&Handle<M>, &Handle<Mesh>, &MeshUniform)>,
    images: Res<'_, RenderAssets<Image>>,
    views: Query<'_, '_, (&ExtractedView, &VisibleEntities, Option<&Tonemapping>, Option<&DebandDither>, Option<&EnvironmentMapLight>, &mut RenderPhase<Opaque3d>, &mut RenderPhase<AlphaMask3d>, &mut RenderPhase<Transparent3d>)>
)where
    M::Data: PartialEq + Eq + Hash + Clone,