• Jason Ekstrand's avatar
    intel/fs: Use a pure vertical stride for large register strides · e8c9e651
    Jason Ekstrand authored
    Register strides higher than 4 are uncommon but they can happen.  For
    instance, if you have a 64-bit extract_u8 operation, we turn that into
    UB -> UQ MOV with a source stride of 8.  Our previous calculation would
    try to generate a stride of <32;8,8>:ub which is invalid because the
    maximum horizontal stride is 4.  To solve this problem, we instead use a
    stride of <8;1,0>.  As noted in the comment, this does not work as a
    destination but that's ok as very few things actually generate that
    stride.
    Reviewed-by: Samuel Iglesias Gonsálvez's avatarSamuel Iglesias Gonsálvez <siglesias@igalia.com>
    Cc: mesa-stable@lists.freedesktop.org
    e8c9e651
brw_fs_generator.cpp 77.9 KB