pub fn queue_material_meshes<M>(
    opaque_draw_functions: Res<'_, DrawFunctions<Opaque3d>>,
    alpha_mask_draw_functions: Res<'_, DrawFunctions<AlphaMask3d>>,
    transmissive_draw_functions: Res<'_, DrawFunctions<Transmissive3d>>,
    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>>,
    render_mesh_instances: ResMut<'_, RenderMeshInstances>,
    render_material_instances: Res<'_, ExtractedInstances<AssetId<M>>>,
    render_lightmaps: Res<'_, RenderLightmaps>,
    views: Query<'_, '_, (&ExtractedView, &VisibleEntities, Option<&Tonemapping>, Option<&DebandDither>, Option<&ShadowFilteringMethod>, Has<ScreenSpaceAmbientOcclusionSettings>, (Has<NormalPrepass>, Has<DepthPrepass>, Has<MotionVectorPrepass>, Has<DeferredPrepass>), Option<&Camera3d>, Has<TemporalJitter>, Option<&Projection>, &mut RenderPhase<Opaque3d>, &mut RenderPhase<AlphaMask3d>, &mut RenderPhase<Transmissive3d>, &mut RenderPhase<Transparent3d>, (Has<RenderViewLightProbes<EnvironmentMapLight>>, Has<RenderViewLightProbes<IrradianceVolume>>))>
)
where M: Material, <M as AsBindGroup>::Data: PartialEq + Eq + Hash + Clone,