PIXLD : Pixel Load

Format:

SPA 5.0:
        {@{!}Pg}   PIXLD.MSCOUNT           Rd                         {&req_6}   {&rdN}   {&wrN}   {?sched}   ;   
        {@{!}Pg}   PIXLD.COVMASK           Rd                         {&req_6}   {&rdN}   {&wrN}   {?sched}   ;   
        {@{!}Pg}   PIXLD.COVERED           Rd{, Pd}{, [#ImmU08]}      {&req_6}   {&rdN}   {&wrN}   {?sched}   ;   
        {@{!}Pg}   PIXLD.COVERED           Rd{, Pd}{, [Ra+#ImmS08]}   {&req_6}   {&rdN}   {&wrN}   {?sched}   ;   
        {@{!}Pg}   PIXLD.OFFSET            Rd{, [#ImmU08]}            {&req_6}   {&rdN}   {&wrN}   {?sched}   ;   
        {@{!}Pg}   PIXLD.OFFSET            Rd{, [Ra+#ImmS08]}         {&req_6}   {&rdN}   {&wrN}   {?sched}   ;   
        {@{!}Pg}   PIXLD.CENTROID_OFFSET   Rd                         {&req_6}   {&rdN}   {&wrN}   {?sched}   ;   
        {@{!}Pg}   PIXLD.MY_INDEX          Rd{, Pd}                   {&req_6}   {&rdN}   {&wrN}   {?sched}   ;   

        {@{!}Pg}   PIXLD{.mode}            Rd{, Pd}{, [#ImmU08]}      {&req_6}   {&rdN}   {&wrN}   {?sched}   ;   
        {@{!}Pg}   PIXLD{.mode}            Rd{, Pd}{, [Ra+#ImmS08]}   {&req_6}   {&rdN}   {&wrN}   {?sched}   ;   

 .mode:   { .MSCOUNT, .COVMASK, .COVERED, .OFFSET, .CENTROID_OFFSET, .MY_INDEX, INVALID[2] } 
          .MSCOUNT
                Query number of raster multisample locations (RasterMultiSampleCont).
                Note that in target independent rasterization, this can be different from render target multisample count.
          .COVMASK
                Returns a 32b boolean coverage mask, lsb aligned. Number of valid bits is
                RasterMultiSampleCount which depends on current raster multisample mode.
                support upto 16 bits coverage mask corresponding (upto 16xAA mode).
          .COVERED
                Address contains the sample index (if not specified, a zero is inserted).
                Returns a boolean TRUE/FALSE in Rd after checking if the specified sample index 
                is covered. It can also write the result to predicate Pd.  The sample index is 
                valid from 0 to  RasterMultiSampleCount-1, an out of bounds request will return not 
                covered (FALSE).  This is mostly a utility function since combining COVMASK with 
                BFE and some predicate tests would achieve the same result. 
          .OFFSET
                Address contains the sample index (if not specified, a zero is inserted).
                Returns the sample (dx,dy) offset. The samples are on a 16*16 pixel grid, 
                and are returned as a pair of 16b signed integers in the range (-8,+7). 
                dx starts at bit position 0, dy starts at bit position 16. Sample index is
                valid from 0 to RasterMultiSampleCount-1. IPA accepts the same offset format.
                 Note: PIXLD.OFFSET is deprecated  and supports only upto 8xMSAA with fixed sample positions. 
                It does not support 16xAA and/or porgrammabale sample positions. 
                .OFFSET functionality is expected to be replaced by LDC lookup.
          .CENTROID_OFFSET
                Returns the offset of the centroid.  IPA accepts the same offset format.
                This is defined to be the center if the pixel is fully covered, or the first sample (See also "Additional Information" below).
                Feeding the output of this query to IPA.OFFSET will produce the same result as IPA.CENTROID.
          .MY_INDEX
                If in SSAA mode, returns the sample index for the current invocation of the shader and 
                sets Pd to true.  If not in SSAA mode, it will return 0 and set Pd to false.

Description:

Pixel load. Allows input of pixel coverage mask and sample position (dx,dy).

An optional destination predicate can be specified for the .COVERED and .MY_INDEX modes. If not specified, it will default to P7 (the true predicate), which will suppress the write. No predicate write is ever performed for any PIXLD mode other than .COVERED and .MY_INDEX.

Examples:

PIXLD.COVMASK R0;

Back to Index of Instructions