• Juan Suárez Romero's avatar
    i965/fs: double regioning parameters and execsize for DF in IVB/BYT · 0f1316d4
    Juan Suárez Romero authored
    In IVB and BYT, both regioning parameters and execution sizes are measured as
    32-bits element size.
    
    So when we have something like:
    
    mov(8) g2<1>DF g3<4,4,1>DF
    
    We are not actually moving 8 doubles (our intention), but 4 doubles.
    
    We need to double the parameters to cope with this issue. However,
    horizontal strides don't behave as they're supposed to on IVB
    for DF regions, they will cause each 32-bit half of DF sources to be
    strided individually, and doubling the value won't make any difference.
    
    v2:
    - Use devinfo directly (Matt).
    - Use Baytrail instead of Valleview (Matt).
    - Use IvyBridge instead of Ivy (Matt)
    - Double the exec_size in code emission (Curro)
    
    v3:
    - Change hstride doubling by an assert and fix commit log (Curro).
    - Substitute remaining compiler->devinfo by devinfo (Curro).
    
    v4:
    - Fix comment (Curro).
    Signed-off-by: Samuel Iglesias Gonsálvez's avatarSamuel Iglesias Gonsálvez <siglesias@igalia.com>
    Reviewed-by: Francisco Jerez's avatarFrancisco Jerez <currojerez@riseup.net>
    0f1316d4
brw_fs_generator.cpp 74.8 KB