When using CompositeLayer to render immersive spaces through the Metal API, the screen resolution cannot reach 4K

When using CompositeLayer to render immersive spaces through the Metal API, regardless of whether foveation is enabled or not, the resolution of the Drawable is always 1920x1824, which cannot output 4K quality.

The setup code is as follows:

struct ContentStageConfiguration: CompositorLayerConfiguration {
    func makeConfiguration(capabilities: LayerRenderer.Capabilities, configuration: inout LayerRenderer.Configuration) {
        configuration.depthFormat = .depth32Float
        configuration.colorFormat = .bgra8Unorm_srgb

        let foveationEnabled = capabilities.supportsFoveation
        configuration.isFoveationEnabled = foveationEnabled // or false

        let options: LayerRenderer.Capabilities.SupportedLayoutsOptions = foveationEnabled ? [.foveationEnabled] : []
        let supportedLayouts = capabilities.supportedLayouts(options: options)

        configuration.layout = supportedLayouts.contains(.layered) ? .layered : .dedicated
    }
}

In the render loop, the resolution of the Drawable's color texture is always 1920x1824.

When using CompositeLayer to render immersive spaces through the Metal API, the screen resolution cannot reach 4K
 
 
Q