docs: use c:expr role shorthand
Reviewed-by: Eric Engestrom <eric@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19575>
This commit is contained in:

committed by
Marge Bot

parent
4be9600ccb
commit
293d8eb20e
@@ -134,16 +134,16 @@ tile, the data is arranged in an X-major linear fashion. You can also look at
|
||||
X-tiling as being an 8x8 cache line grid where the cache lines are arranged
|
||||
X-major as follows:
|
||||
|
||||
===== ===== ===== ===== ===== ===== ===== =====
|
||||
0x000 0x040 0x080 0x0c0 0x100 0x140 0x180 0x1c0
|
||||
0x200 0x240 0x280 0x2c0 0x300 0x340 0x380 0x3c0
|
||||
0x400 0x440 0x480 0x4c0 0x500 0x540 0x580 0x5c0
|
||||
0x600 0x640 0x680 0x6c0 0x700 0x740 0x780 0x7c0
|
||||
0x800 0x840 0x880 0x8c0 0x900 0x940 0x980 0x9c0
|
||||
0xa00 0xa40 0xa80 0xac0 0xb00 0xb40 0xb80 0xbc0
|
||||
0xc00 0xc40 0xc80 0xcc0 0xd00 0xd40 0xd80 0xdc0
|
||||
0xe00 0xe40 0xe80 0xec0 0xf00 0xf40 0xf80 0xfc0
|
||||
===== ===== ===== ===== ===== ===== ===== =====
|
||||
======= ======= ======= ======= ======= ======= ======= =======
|
||||
`0x000` `0x040` `0x080` `0x0c0` `0x100` `0x140` `0x180` `0x1c0`
|
||||
`0x200` `0x240` `0x280` `0x2c0` `0x300` `0x340` `0x380` `0x3c0`
|
||||
`0x400` `0x440` `0x480` `0x4c0` `0x500` `0x540` `0x580` `0x5c0`
|
||||
`0x600` `0x640` `0x680` `0x6c0` `0x700` `0x740` `0x780` `0x7c0`
|
||||
`0x800` `0x840` `0x880` `0x8c0` `0x900` `0x940` `0x980` `0x9c0`
|
||||
`0xa00` `0xa40` `0xa80` `0xac0` `0xb00` `0xb40` `0xb80` `0xbc0`
|
||||
`0xc00` `0xc40` `0xc80` `0xcc0` `0xd00` `0xd40` `0xd80` `0xdc0`
|
||||
`0xe00` `0xe40` `0xe80` `0xec0` `0xf00` `0xf40` `0xf80` `0xfc0`
|
||||
======= ======= ======= ======= ======= ======= ======= =======
|
||||
|
||||
Each cache line represents a piece of a single row of pixels within the image.
|
||||
The memory locations of two vertically adjacent pixels within the same X-tile
|
||||
@@ -170,25 +170,25 @@ Y-tiling
|
||||
The Y-tiling format, also available since gen4, is substantially different from
|
||||
X-tiling and performs much better in practice. Each Y-tile is an 8x8 grid of cache lines arranged Y-major as follows:
|
||||
|
||||
===== ===== ===== ===== ===== ===== ===== =====
|
||||
0x000 0x200 0x400 0x600 0x800 0xa00 0xc00 0xe00
|
||||
0x040 0x240 0x440 0x640 0x840 0xa40 0xc40 0xe40
|
||||
0x080 0x280 0x480 0x680 0x880 0xa80 0xc80 0xe80
|
||||
0x0c0 0x2c0 0x4c0 0x6c0 0x8c0 0xac0 0xcc0 0xec0
|
||||
0x100 0x300 0x500 0x700 0x900 0xb00 0xd00 0xf00
|
||||
0x140 0x340 0x540 0x740 0x940 0xb40 0xd40 0xf40
|
||||
0x180 0x380 0x580 0x780 0x980 0xb80 0xd80 0xf80
|
||||
0x1c0 0x3c0 0x5c0 0x7c0 0x9c0 0xbc0 0xdc0 0xfc0
|
||||
===== ===== ===== ===== ===== ===== ===== =====
|
||||
======= ======= ======= ======= ======= ======= ======= =======
|
||||
`0x000` `0x200` `0x400` `0x600` `0x800` `0xa00` `0xc00` `0xe00`
|
||||
`0x040` `0x240` `0x440` `0x640` `0x840` `0xa40` `0xc40` `0xe40`
|
||||
`0x080` `0x280` `0x480` `0x680` `0x880` `0xa80` `0xc80` `0xe80`
|
||||
`0x0c0` `0x2c0` `0x4c0` `0x6c0` `0x8c0` `0xac0` `0xcc0` `0xec0`
|
||||
`0x100` `0x300` `0x500` `0x700` `0x900` `0xb00` `0xd00` `0xf00`
|
||||
`0x140` `0x340` `0x540` `0x740` `0x940` `0xb40` `0xd40` `0xf40`
|
||||
`0x180` `0x380` `0x580` `0x780` `0x980` `0xb80` `0xd80` `0xf80`
|
||||
`0x1c0` `0x3c0` `0x5c0` `0x7c0` `0x9c0` `0xbc0` `0xdc0` `0xfc0`
|
||||
======= ======= ======= ======= ======= ======= ======= =======
|
||||
|
||||
Each 64B cache line within the tile is laid out as 4 rows of 16B each:
|
||||
|
||||
==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====
|
||||
0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f
|
||||
0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f
|
||||
0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2a 0x2b 0x2c 0x2d 0x2e 0x2f
|
||||
0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3a 0x3b 0x3c 0x3d 0x3e 0x3f
|
||||
==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====
|
||||
====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ======
|
||||
`0x00` `0x01` `0x02` `0x03` `0x04` `0x05` `0x06` `0x07` `0x08` `0x09` `0x0a` `0x0b` `0x0c` `0x0d` `0x0e` `0x0f`
|
||||
`0x10` `0x11` `0x12` `0x13` `0x14` `0x15` `0x16` `0x17` `0x18` `0x19` `0x1a` `0x1b` `0x1c` `0x1d` `0x1e` `0x1f`
|
||||
`0x20` `0x21` `0x22` `0x23` `0x24` `0x25` `0x26` `0x27` `0x28` `0x29` `0x2a` `0x2b` `0x2c` `0x2d` `0x2e` `0x2f`
|
||||
`0x30` `0x31` `0x32` `0x33` `0x34` `0x35` `0x36` `0x37` `0x38` `0x39` `0x3a` `0x3b` `0x3c` `0x3d` `0x3e` `0x3f`
|
||||
====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ======
|
||||
|
||||
Y-tiling is widely regarded as being substantially faster than X-tiling so it
|
||||
is generally preferred. However, prior to Sky Lake, Y-tiling was not available
|
||||
@@ -213,16 +213,16 @@ buffers. W-tiling is similar to Y-tiling in that it's arranged as an 8x8
|
||||
Y-major grid of cache lines. The bytes within each cache line are arranged as
|
||||
follows:
|
||||
|
||||
==== ==== ==== ==== ==== ==== ==== ====
|
||||
0x00 0x01 0x04 0x05 0x10 0x11 0x14 0x15
|
||||
0x02 0x03 0x06 0x07 0x12 0x13 0x16 0x17
|
||||
0x08 0x09 0x0c 0x0d 0x18 0x19 0x1c 0x1d
|
||||
0x0a 0x0b 0x0e 0x0f 0x1a 0x1b 0x1e 0x1f
|
||||
0x20 0x21 0x24 0x25 0x30 0x31 0x34 0x35
|
||||
0x22 0x23 0x26 0x27 0x32 0x33 0x36 0x37
|
||||
0x28 0x29 0x2c 0x2d 0x38 0x39 0x3c 0x3d
|
||||
0x2a 0x2b 0x2e 0x2f 0x3a 0x3b 0x3e 0x3f
|
||||
==== ==== ==== ==== ==== ==== ==== ====
|
||||
====== ====== ====== ====== ====== ====== ====== ======
|
||||
`0x00` `0x01` `0x04` `0x05` `0x10` `0x11` `0x14` `0x15`
|
||||
`0x02` `0x03` `0x06` `0x07` `0x12` `0x13` `0x16` `0x17`
|
||||
`0x08` `0x09` `0x0c` `0x0d` `0x18` `0x19` `0x1c` `0x1d`
|
||||
`0x0a` `0x0b` `0x0e` `0x0f` `0x1a` `0x1b` `0x1e` `0x1f`
|
||||
`0x20` `0x21` `0x24` `0x25` `0x30` `0x31` `0x34` `0x35`
|
||||
`0x22` `0x23` `0x26` `0x27` `0x32` `0x33` `0x36` `0x37`
|
||||
`0x28` `0x29` `0x2c` `0x2d` `0x38` `0x39` `0x3c` `0x3d`
|
||||
`0x2a` `0x2b` `0x2e` `0x2f` `0x3a` `0x3b` `0x3e` `0x3f`
|
||||
====== ====== ====== ====== ====== ====== ====== ======
|
||||
|
||||
While W-tiling has been required for stencil all the way back to Sandy Bridge,
|
||||
the docs are somewhat confused as to whether stencil buffers are W or Y-tiled.
|
||||
@@ -249,26 +249,26 @@ The tile4 format, introduced on Xe-HP, is somewhat similar to Y but with more
|
||||
internal shuffling. Each tile4 tile is an 8x8 grid of cache lines arranged
|
||||
as follows:
|
||||
|
||||
===== ===== ===== ===== ===== ===== ===== =====
|
||||
0x000 0x040 0x080 0x0a0 0x200 0x240 0x280 0x2a0
|
||||
0x100 0x140 0x180 0x1a0 0x300 0x340 0x380 0x3a0
|
||||
0x400 0x440 0x480 0x4a0 0x600 0x640 0x680 0x6a0
|
||||
0x500 0x540 0x580 0x5a0 0x700 0x740 0x780 0x7a0
|
||||
0x800 0x840 0x880 0x8a0 0xa00 0xa40 0xa80 0xaa0
|
||||
0x900 0x940 0x980 0x9a0 0xb00 0xb40 0xb80 0xba0
|
||||
0xc00 0xc40 0xc80 0xca0 0xe00 0xe40 0xe80 0xea0
|
||||
0xd00 0xd40 0xd80 0xda0 0xf00 0xf40 0xf80 0xfa0
|
||||
===== ===== ===== ===== ===== ===== ===== =====
|
||||
======= ======= ======= ======= ======= ======= ======= =======
|
||||
`0x000` `0x040` `0x080` `0x0a0` `0x200` `0x240` `0x280` `0x2a0`
|
||||
`0x100` `0x140` `0x180` `0x1a0` `0x300` `0x340` `0x380` `0x3a0`
|
||||
`0x400` `0x440` `0x480` `0x4a0` `0x600` `0x640` `0x680` `0x6a0`
|
||||
`0x500` `0x540` `0x580` `0x5a0` `0x700` `0x740` `0x780` `0x7a0`
|
||||
`0x800` `0x840` `0x880` `0x8a0` `0xa00` `0xa40` `0xa80` `0xaa0`
|
||||
`0x900` `0x940` `0x980` `0x9a0` `0xb00` `0xb40` `0xb80` `0xba0`
|
||||
`0xc00` `0xc40` `0xc80` `0xca0` `0xe00` `0xe40` `0xe80` `0xea0`
|
||||
`0xd00` `0xd40` `0xd80` `0xda0` `0xf00` `0xf40` `0xf80` `0xfa0`
|
||||
======= ======= ======= ======= ======= ======= ======= =======
|
||||
|
||||
Each 64B cache line within the tile is laid out the same way as for a Y-tile,
|
||||
as 4 rows of 16B each:
|
||||
|
||||
==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====
|
||||
0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f
|
||||
0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f
|
||||
0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2a 0x2b 0x2c 0x2d 0x2e 0x2f
|
||||
0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3a 0x3b 0x3c 0x3d 0x3e 0x3f
|
||||
==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====
|
||||
====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ======
|
||||
`0x00` `0x01` `0x02` `0x03` `0x04` `0x05` `0x06` `0x07` `0x08` `0x09` `0x0a` `0x0b` `0x0c` `0x0d` `0x0e` `0x0f`
|
||||
`0x10` `0x11` `0x12` `0x13` `0x14` `0x15` `0x16` `0x17` `0x18` `0x19` `0x1a` `0x1b` `0x1c` `0x1d` `0x1e` `0x1f`
|
||||
`0x20` `0x21` `0x22` `0x23` `0x24` `0x25` `0x26` `0x27` `0x28` `0x29` `0x2a` `0x2b` `0x2c` `0x2d` `0x2e` `0x2f`
|
||||
`0x30` `0x31` `0x32` `0x33` `0x34` `0x35` `0x36` `0x37` `0x38` `0x39` `0x3a` `0x3b` `0x3c` `0x3d` `0x3e` `0x3f`
|
||||
====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ====== ======
|
||||
|
||||
Tiling as a bit pattern
|
||||
-----------------------
|
||||
|
Reference in New Issue
Block a user