I 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.
"name": "webxr-layers",I think it's better to add a comment and keep the name the same, as changing the flag name can IIRC cause all kinds of problems.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
I think it's better to add a comment and keep the name the same, as changing the flag name can IIRC cause all kinds of problems.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
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.
chromestatus or launch entry?
| 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. |
// It actually enables WebXR layers feature, not just projection layers.I don't think the comment is needed.
// It actually enables WebXR layers feature, not just projection layers.Comment unneeded
#if BUILDFLAG(IS_ANDROID)
BASE_FEATURE(kWebXRLayers, base::FEATURE_ENABLED_BY_DEFAULT);
#else
BASE_FEATURE(kWebXRLayers, base::FEATURE_DISABLED_BY_DEFAULT);
#endif
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?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
#if BUILDFLAG(IS_ANDROID)
BASE_FEATURE(kWebXRLayers, base::FEATURE_ENABLED_BY_DEFAULT);
#else
BASE_FEATURE(kWebXRLayers, base::FEATURE_DISABLED_BY_DEFAULT);
#endif
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?
I 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.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
// It actually enables WebXR layers feature, not just projection layers.I don't think the comment is needed.
Done
// It actually enables WebXR layers feature, not just projection layers.Yong Li (xWF)Comment unneeded
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?
I 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.
Not 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.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
#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.
Not 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.
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
#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.
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
It 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?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
#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
It 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?
Let 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.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
#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?
Let 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.
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!