VisionOS MR Batching 3D rendering

From what we understand, SRP batcher does not work with RealityKit.
But does GPU Instancing work?

We have performance issue and try to optimize, we are loading hundred of 3D models, and many of them share same mesh and material, is there anyway to batch them in RealityKit??

You can use the PolySpatial Static Batch Element or just enable static batching on the objects (and in the player settings), which will merge objects with the same material into combined meshes. Unlike in the Unity renderer, there’s no way to separately control the visibility of batched objects; all of them will be rendered if any of them are.

RealityKit seems to support instancing of objects within models (based only on transforms: nothing else can vary between instances) via MeshResource.Instance. We plan to investigate supporting instancing using this, but it’s not a great match for Unity’s instancing, so it’s not clear how much it will help.

these 3D models can’t be static as they can be manipulated by the user.

As a workaround, we started to investigate the use of Unity 6 with Metal in mix reality. Does SRP and/or GPU instancing work in Metal?

Can we hope to have better performance in Metal?

I will second the question from @fjacque and also be interested about the current support of GPU instancing on AVP with Metal backend.
Additional derivative question: What about the support of the new GPU Resident Drawer on AVP with Metal backend ?

Context: We are using large CAD models, lot of internal parts and instances, so both of these features will be extremely helpful.