Alexander CooperI started the CQ because this will cause all kinds of other things that need to be updated. Some are I think because of the flag rename which you can avoid, but e.g. `virtual/stable/webexposed` won't be. I *think* we probably also want to update the runtime_enabled_features.json5 entry; and to do that (and the virtual/stable/webexposed), you'll need a completed chromestatus entry which includes the approval from the blink API OWNERS.
Yong Li (xWF)chromestatus or launch entry?
Done
#if BUILDFLAG(IS_ANDROID)
BASE_FEATURE(kWebXRLayers, base::FEATURE_ENABLED_BY_DEFAULT);
#else
BASE_FEATURE(kWebXRLayers, base::FEATURE_DISABLED_BY_DEFAULT);
#endif
Yong Li (xWF)What if we just enabled it by default for all platforms (and for runtime_enabled_features.json5) and put enabling the layers API feature in OpenXR behind a runtime check to deny it on Windows? Do ProjectionLayers work on Windows?
Brandon JonesI don't have a windows setup. (maybe I could request one). Not sure about the project plan on Windows. But according to the current code, creating a projection layer will fail on Windows because CreateCompostionLayer will fail.
Alexander CooperNot advertising the layers feature won't prevent projection layers from being created. And Three.js, at least, will attempt to use them if it sees that the entry point is present, so exposing it be default if the projection layers don't work everywhere will break a lot of Three.js XR content.
Yong Li (xWF)Projection Layer *does* seem to work on Windows unless we use the texture array: https://immersive-web.github.io/webxr-samples/layers-samples/proj-layer.html
Alexander CooperIt seems we won't create layer_manager on Windows. So it will use old code path, and GetFirstLayer() will return the projection layer. It will match the base layer on device/ side.
Even though, should we still keep it disabled for Windows by default given Brandon's comments?
Alexander CooperLet me chat with him; I did get it to work for texture array at one point as well as several THREE.js samples seeming to work fine.
Yong Li (xWF)Chatted offline with Brandon. Given the guard in https://source.chromium.org/chromium/chromium/src/+/main:device/vr/openxr/openxr_api_wrapper.cc;drc=d3ccc328badd8a91517b0360b56de6da5011a2e8;l=600 for Windows and the fact that projection layers do work (I was able to validate this for Windows). Please enable the device::feature and runtime_enabled_features.json5 for all platforms.
Thanks!
Done
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Just one issue. Please double check that your exposed API matches the current spec (I relied on Gemini to find this discrepancy for me, I did not do an exhaustive manual review myself).
getter chromaticAberrationCorrectionIt looks like this member was removed from the spec back in 2023 and so should not be shipped in Chromium: https://github.com/immersive-web/layers/issues/299
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Just one issue. Please double check that your exposed API matches the current spec (I relied on Gemini to find this discrepancy for me, I did not do an exhaustive manual review myself).
I just went through the new API and checked the spec. Thanks!
It looks like this member was removed from the spec back in 2023 and so should not be shipped in Chromium: https://github.com/immersive-web/layers/issues/299
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
Yong Li (xWF)Just one issue. Please double check that your exposed API matches the current spec (I relied on Gemini to find this discrepancy for me, I did not do an exhaustive manual review myself).
I just went through the new API and checked the spec. Thanks!
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |