There’s not a list of frozen meshes per camera, the list used when meshes are frozen is the list built with the last camera processed, so in your case camera2.
Having a list per camera would be quite a big architectural change I think, so I’m not sure it can be done… Maybe @sebavan will have more inputs about this.
I don’t see a workaround, the freezed list of meshes is global and once it is computed it is reused “as is” for all subsequent rendering (until you unfreeze). The layerMask property is used when generating this list, but once a mesh is in the list (or not), layerMask property is not used anymore.
@Evgeni_Popov@sebavan the only workaround I could think is by creating a second scene with same meshes, example: https://playground.babylonjs.com/#1RI2YK#8. but question in this case, will not it be more resource hungry than using viewport? could I share same meshes/lights between scenes?