diff --git a/spec/img/cubemap.svg b/spec/img/cubemap.svg
new file mode 100644
index 0000000000..19c8d99915
--- /dev/null
+++ b/spec/img/cubemap.svg
@@ -0,0 +1,45 @@
+
+
diff --git a/spec/index.bs b/spec/index.bs
index c8dfea72dd..63b4b34441 100644
--- a/spec/index.bs
+++ b/spec/index.bs
@@ -157,7 +157,7 @@ p, ul, ol, dl {
color: var(--note-editorial-color);
}
-/* Our SVGs aren't responsive to light/dark mode, so they're opaque with a
+/* Some of our SVGs aren't responsive to light/dark mode, so they're opaque with a
* white or black background. Rounded corners make them a bit less jarring. */
object[type="image/svg+xml"] {
border-radius: .5em;
@@ -4292,7 +4292,22 @@ enum GPUTextureViewDimension {
: "cube"
::
The texture is viewed as a cubemap.
- The view has 6 array layers, corresponding to the [+X, -X, +Y, -Y, +Z, -Z] faces of the cube.
+
+ The view has 6 array layers, each corresponding to a face of the cube in the order
+ `[+X, -X, +Y, -Y, +Z, -Z]` and the following orientations:
+
+
+
+ Cubemap faces.
+ The +U/+V axes indicate the individual faces' texture coordinates,
+ and thus the [=image copy=] memory layout of each face.
+
+
+
+
+ Note: When viewed from the inside, this results in a left-handed coordinate system
+ where +X is right, +Y is up, and +Z is forward.
+
Sampling is done seamlessly across the faces of the cubemap.
Corresponding WGSL types:
@@ -4302,9 +4317,9 @@ enum GPUTextureViewDimension {
: "cube-array"
::
- The texture is viewed as a packed array of `n` cubemaps,
- each with 6 array layers corresponding to the [+X, -X, +Y, -Y, +Z, -Z] faces of the cube.
- Sampling is done seamlessly across the faces of the cubemaps.
+ The texture is viewed as a packed array of |n| cubemaps,
+ each with 6 array layers behaving like one {{GPUTextureViewDimension/"cube"}} view,
+ for 6|n| array layers in total.
Corresponding WGSL types: