diff --git a/webxrlayers-1.bs b/webxrlayers-1.bs
index 0c3e178..361c9af 100755
--- a/webxrlayers-1.bs
+++ b/webxrlayers-1.bs
@@ -502,18 +502,12 @@ The ignoreDepthValues attribute, if
is false it indicates that the content of the depth buffer attachment will be used by the
[=XR Compositor=] and is expected to be representative of the scene rendered into the layer.
-
null on getting, and setting should be a no-op. This attribute describes the
-incremental application-applied transform, if any, since the previous frame that affects the view. When artificial
-locomotion happens, the experience transforms the whole world from one application pose to another pose between frames
-and {{XRProjectionLayer/deltaPose}} MUST be populated with the difference in the scene's world position.
-The {{XRProjectionLayer/deltaPose}} should be identity when there is no transformation between the previous and the current {{XRFrame}}.
-
-null on getting, and setting should be a no-op.
+A null value indicates that no application-applied transform is being supplied.
+The value of {{XRProjectionLayer/deltaPose}} persists until the author changes it; the user agent does not reset it at the end of an {{XRSession/requestAnimationFrame()}} callback.
+When artificial locomotion transforms the world from one application pose to another between frames, setting {{XRProjectionLayer/deltaPose}} to the difference between those poses helps the [=XR Compositor=] synthesize missing frames.
+Authors should update {{XRProjectionLayer/deltaPose}} when that transform changes and set it to null or an identity transform for frames where no application-applied transform occurred.
XRQuadLayer {#xrquadlayertype}
-----------
@@ -786,8 +780,6 @@ The {{XRWebGLSubImage}} object is used during rendering of the layer.
readonly attribute unsigned long colorTextureHeight;
readonly attribute unsigned long? depthStencilTextureWidth;
readonly attribute unsigned long? depthStencilTextureHeight;
- readonly attribute unsigned long? motionVectorTextureWidth;
- readonly attribute unsigned long? motionVectorTextureHeight;
};
@@ -796,29 +788,17 @@ The colorTexture attribute returns th
The depthStencilTexture attribute returns the depth/stencil [=opaque texture=] for the {{XRCompositionLayer}}.
If the layer was created without depth/stencil, this attribute returns null.
-0, return |array| and abort these steps.
1. If |context| is a {{WebGLRenderingContext}} and the {{WEBGL_depth_texture}} [=extension=] is not enabled in |context|, return |array| and abort these steps.
1. If |textureFormat| is not in the [=list of depth formats for projection layers=], throw a {{NotSupportedError}} and abort these steps.
1. let |numViews| be the number of the |session|'s [=list of views=] excluding the [=secondary view|secondary views=].
1. Let |view| be the first entry in the |session|'s [=list of views=] that is not a [=secondary view=].
- 1. Let |width| be the width of |view|'s [=recommended WebGL depth texture resolution=] multiplied by |scaleFactor|.
- 1. Let |height| be the height of |view|'s [=recommended WebGL depth texture resolution=] multiplied by |scaleFactor|.
+ 1. Let |recommendedDepthResolution| be |view|'s [=recommended WebGL depth texture resolution=].
+ 1. If |session| was created with the "[=space-warp=]" [=feature descriptor=], set |recommendedDepthResolution| to |view|'s [=recommended motion vector texture resolution=].
+ 1. Let |width| be the width of |recommendedDepthResolution| multiplied by |scaleFactor|.
+ 1. Let |height| be the height of |recommendedDepthResolution| multiplied by |scaleFactor|.
1. If |layer|'s {{XRCompositionLayer/layout}} is {{XRLayerLayout/"mono"}} or {{XRLayerLayout/"default"}}:
false.
1. Initialize |layer|'s {{XRProjectionLayer/ignoreDepthValues}} as follows:
false
false and the [=XR Compositor=] will make use of depth values
false
true.
1. let |layer|'s [=colorTextures=] be the result of [=allocate color textures for projection layers|allocating color textures for projection layers=] with |layer|, |init|'s {{XRProjectionLayerInit/textureType}}, |init|'s {{XRProjectionLayerInit/colorFormat}} and |init|'s {{XRProjectionLayerInit/scaleFactor}}.
1. let |layer|'s [=depthStencilTextures=] be the result of [=allocate depth textures for projection layers|allocating depth textures for projection layers=] with |layer|, |init|'s {{XRProjectionLayerInit/textureType}}, |init|'s {{XRProjectionLayerInit/depthFormat}} and |init|'s {{XRProjectionLayerInit/scaleFactor}}.
- 1. let |layer|'s [=motionVectorTextures=] be the result of [=allocate motion vector textures for projection layers|allocating motion vector textures for projection layers=] with |layer|, |init|'s {{XRProjectionLayerInit/depthFormat}} and |init|'s {{XRProjectionLayerInit/scaleFactor}}.
+ 1. let |layer|'s [=motionVectorTextures=] be the result of [=allocate motion vector textures for projection layers|allocating motion vector textures for projection layers=] with |layer|, |init|'s {{XRProjectionLayerInit/textureType}} and |init|'s {{XRProjectionLayerInit/scaleFactor}}.
1. Initialize the [=XRProjectionLayer/colortextures for secondary views=] as follows:
null.
+ 1. Initialize |subimage|'s {{XRWebGLSubImage/depthStencilTextureWidth}}, {{XRWebGLSubImage/depthStencilTextureHeight}}, and {{XRWebGLSubImage/motionVectorTexture}} with null.
1. Set |subimage|'s {{XRWebGLSubImage/colorTextureWidth}} to the pixel width of |subimage|'s {{XRWebGLSubImage/colorTexture}}.
1. Set |subimage|'s {{XRWebGLSubImage/colorTextureHeight}} to the pixel height of |subimage|'s {{XRWebGLSubImage/colorTexture}}.
1. If |subimage|'s {{XRWebGLSubImage/depthStencilTexture}} is not null, set |subimage|'s {{XRWebGLSubImage/depthStencilTextureWidth}} to the pixel width of the first texture in the {{XRWebGLSubImage/depthStencilTexture}} array.
@@ -1803,10 +1790,9 @@ When this method is invoked on an {{XRWebGLBinding}} |binding|, it MUST run the
null.
1. If |subimage|'s {{XRWebGLSubImage/depthStencilTexture}} is not null, set |subimage|'s {{XRWebGLSubImage/depthStencilTextureWidth}} to the pixel width of the first texture in the {{XRWebGLSubImage/depthStencilTexture}} array.
1. If |subimage|'s {{XRWebGLSubImage/depthStencilTexture}} is not null, set |subimage|'s {{XRWebGLSubImage/depthStencilTextureHeight}} to the pixel height of the first texture in the {{XRWebGLSubImage/depthStencilTexture}} array.
- 1. If |subimage|'s {{XRWebGLSubImage/motionVectorTexture}} is not null, set |subimage|'s {{XRWebGLSubImage/motionVectorTextureWidth}} to the pixel width of the first texture in the {{XRWebGLSubImage/motionVectorTexture}} array.
- 1. If |subimage|'s {{XRWebGLSubImage/motionVectorTexture}} is not null, set |subimage|'s {{XRWebGLSubImage/motionVectorTextureHeight}} to the pixel height of the first texture in the {{XRWebGLSubImage/motionVectorTexture}} array.
1. Run [=initialize the viewport=] on |subimage|'s {{XRSubImage/viewport}} with |subimage|'s {{XRWebGLSubImage/colorTexture}}, |layer|'s {{XRCompositionLayer/layout}}, |index| and the number of the |session|'s [=list of views=].
1. Set {{XRCompositionLayer/needsRedraw}} to false.
1. return |subimage|
@@ -2097,18 +2083,22 @@ Other layers types MUST continue to be sorted as before.
Space warp {#spacewarp}
==========
-