Backend Instructions
Name | Format | Backend Phase | Description |
---|---|---|---|
UVSW | UVSW dest, source | UVSW.writeOp (W0|W1), (S0|S1|S2|S3|S4|S5|_|0...255) | UVS data write See below this table for code examples. |
TESSW | TESSW dest, source | TESSW.tessOp (W0|W1), immediateAddress | Tessellator data write. |
ATST | ATST dest, sourceRef, sourceData, sourceStateWord | ATST{.IFB} (P0|_), S0, S1, S2 | Alpha Test |
DEPTHF | DEPTHF dest | DEPTHF W0 | Depth Feedback |
FITR | FITR dest, sourceDRC, sourceCoeffPtr, sourceCount | FITR.mode{.SAT} S3, (DRC0|DRC1), S0, (1...maxItrCount) | Iterate value(s) See below this table for code examples. |
FITRP | FITRP dest, sourceDRC, sourceCoeffPtr, sourceWCoeffPtr, sourceCount | FITRP.mode{.SAT} S3, (DRC0|DRC1), S0, S2, (1...maxItrCount) | All values should be multiplied by 1/W |
IDF | IDF sourceDRC, sourceSelect | IDF{.DIRECT} (DRC0|DRC1), (S0|S1|S2|S3|S4|S5) | Issue data fence through memory subsystem. The fence is issued for the first valid instance in a task, in the following order; {16, …, 31, 0, …, 15} |
LD | LD dest, sourceDRC, sourceBurstLen, sourceAddress | LD{.DIRECT} S3, (DRC0|DRC1), (S0|S1|S2|S3|S4|S5|1…16), (S0|S1|S2|S3|S4|S5) | Loads data from memory into supplied destination |
ST | ST sourceData, sourceDataSize, sourceDRC, sourceBurstLen, sourceAddress, sourceCoverageMask ST.TEXELMODE sourceData, source, sourceDRC | ST{.TILED} {.DIRECT} (S0|S1|S2|S3|S4|S5), (0…2), (DRC0|DRC1), (S0|S1|S2|S3|S4|S5|1…16), (S0|S1|S2|S3|S4|S5), (S0|S1|S2|S3|S4|S5|_) ST.TEXELMODE S2, W1, (DRC0|DRC1) | Stores data from supplied source to memory. Stores data to memory, texel mode |
SMP (SMP1D SMP2D SMP3D) | SMP1D sourceDRC, sourceTextureState, sourceData, sourceSamplerState, sourceSharedLOD, sourceDestPtr, chan | SMP1D{.PROJ}{.FCNORM}{.NNCOORDS}{.LODM}{.PPLOD}{.TAO}{.SOO}{.SNO} {.WRT}{.SBMode}{.ARRAY}{.INTEGER}{.COMPARISON}{.SCHEDSWAP}{.DIRECT} (DRC0|DRC1), S0, S1, S2, (S3|_), S4, chan | Sample Texture. One, two or three dimensions See below this table for code examples. |
ATOM | ATOM.opCode sourceDestSelect, sourceDRC, sourceSelect | ATOM.opCode {.DIRECT} (S0|S1|S2|S3|S4|S5), (DRC0|DRC1), (S0|S1|S2|S3|S4|S5) | Loads data from memory which is operated on with supplied data and operation type is written back to memory and supplied destination |
UVSW code example:
void main()
{
gl_Position = inVertex;
}
0 : mov ft0, vi3
mov ft0.e0.e1.e2.e3,
ft0
uvsw.write ft0, 3;
FITR code example:
in vec2 textureCoordinate;
out vec4 fragColor;
void main()
{
fragColor = vec4(textureCoordinate, 0.0, 1.0);
}
0 : fitr.pixel r0,
drc0, cf4,
cf0, 2;
SMP code example:
in vec2 textureCoordinate;
out vec4 fragColor;
void main()
{
fragColor = texelFetch(sampler,ivec2(gl_FragCoord.xy), 0);
}
3 : smp2d.fcnorm.replace.integer drc0, sh4, r1, sh0, sh11, r0, 4;