pub fn queue_prepass_material_meshes<M>(
opaque_draw_functions: Res<'_, DrawFunctions<Opaque3dPrepass>>,
alpha_mask_draw_functions: Res<'_, DrawFunctions<AlphaMask3dPrepass>>,
opaque_deferred_draw_functions: Res<'_, DrawFunctions<Opaque3dDeferred>>,
alpha_mask_deferred_draw_functions: Res<'_, DrawFunctions<AlphaMask3dDeferred>>,
prepass_pipeline: Res<'_, PrepassPipeline<M>>,
pipelines: ResMut<'_, SpecializedMeshPipelines<PrepassPipeline<M>>>,
pipeline_cache: Res<'_, PipelineCache>,
msaa: Res<'_, Msaa>,
render_meshes: Res<'_, RenderAssets<GpuMesh>>,
render_mesh_instances: Res<'_, RenderMeshInstances>,
render_materials: Res<'_, RenderAssets<PreparedMaterial<M>>>,
render_material_instances: Res<'_, ExtractedInstances<AssetId<M>>>,
render_lightmaps: Res<'_, RenderLightmaps>,
views: Query<'_, '_, (&ExtractedView, &VisibleEntities, Option<&mut BinnedRenderPhase<Opaque3dPrepass>>, Option<&mut BinnedRenderPhase<AlphaMask3dPrepass>>, Option<&mut BinnedRenderPhase<Opaque3dDeferred>>, Option<&mut BinnedRenderPhase<AlphaMask3dDeferred>>, Option<&DepthPrepass>, Option<&NormalPrepass>, Option<&MotionVectorPrepass>, Option<&DeferredPrepass>), Or<(With<BinnedRenderPhase<Opaque3dPrepass>>, With<BinnedRenderPhase<AlphaMask3dPrepass>>, With<BinnedRenderPhase<Opaque3dDeferred>>, With<BinnedRenderPhase<AlphaMask3dDeferred>>)>>
)