SPA 5.0:
{@{!}Pg}
ISBERD{.io}{.base}{.SKEW}{.sz}
Rd, [Ra]
{&req_6}
{&rdN}
{&wrN}
{?sched}
;
.io: {.I*,.O}
Load from the input ISBE (.I) or output ISBE (.O). Only VSa, VSb, TI, and TS can use .O option.
.sz: { .U8*, .U16, .32 }
.base: {.MAP*, .PATCH,.PRIM,.ATTR}
.MAP makes accesses relative to starting address of MAP section of ISBE.
.PATCH makes accesses relative to starting address of PATCH section of ISBE.
.PRIM makes accesses relative to starting address of PRIMITIVE ID section of ISBE.
.ATTR makes accesses relative to starting address of vertex ATTRIBUTE section of ISBE.
Note that MAP section grows reverse in physical ISBE memory, thus Ra offset is negated before accessing ISBE.
Load 32 bits of data from ISBE data structure in shared memory. Operand Ra contains byte address in ISBE relative to .base. This instruction is only allowed in VS/TI/TS/GS shaders.
ISBERD.I.MAP R0, [R2]; ISBERD.O.ATTR.SKEW R2, [R3];