SPA 5.0:
{@{!}Pg}
TXQ{.B}{.NODEP}{.phase}
Rd, Ra, #query, #tsPtrIdxU13 {, #wmskU04}
{&req_6}
{&rdN}
{&wrN}
{?sched}
;
.B: Bindless mode, where the texture header pointer and sampler pointer is packed into a 32 bit register as: samplerPtr[31:20] | headerPtr[19:0] Data is sent via register Ra. .NODEP: Indicates that there is no subsequent quad derivatives to be calculated. Threads that have been "killed" will be disabled to stop unnecessary texture fetches. .phase: Allows control on the current warps texture hash, used for scheduling. < NONE > .T - postfix increment of the 3 bit texture component of the hash. .P - postfix increment of the 5 bit phase component, and zero out the 3 bit texture component of the hash. The following 3 queries are supported as part of SPA 3.0: - TEX_HEADER_DIMENSION Input is one coordinate containing a u32 LOD level Output is:
{@{!}Pg}
TXQ{.B}{.NODEP}{.phase}
Rd, Ra, #query, #tidU08, #smpU05, #wmskU04
{&req_6}
{&rdN}
{&wrN}
{?sched}
;
Texture Type | R | G | B | A |
---|---|---|---|---|
ONE_D | width | zero | zero | # of mip-map Levels |
TWO_D | width | height | zero/one* | # of mip-map Levels |
THREE_D | width | height | depth | # of mip-map Levels |
CUBEMAP | width | height | zero | # of mip-map Levels |
ONE_D_ARRAY | width | length | zero | # of mip-map Levels |
TWO_D_ARRAY | width | height | length | # of mip-map Levels |
ONE_D_BUFFER | width | zero | zero | one |
TWO_D_NO_MIPMAP | width | height | zero/depth* | one |
CUBEMAP_ARRAY | width | height | length | # of mip-map Levels |
Query of texture information.
Reg | parameter | format |
---|---|---|
Ra+0 | SamplerPtr[31:20] | HeaderPtr[19:0] | u32 |
Ra+1 | LOD or Sample Position | u32 |
Each query returns a 4-vector of data (thought of as R,G,B,A), similar to TEX.
The alignement restrictions on Rd,Ra are as follows:Corresponds to these DX ops:
resinfo = TXQ //
TXQ R0, R6, TEX_HEADER_DIMENSION, 0, 0xf;