Skip to content
  • Neil Roberts's avatar
    i965: Program 16x MSAA sample positions. · 20250e85
    Neil Roberts authored
    This is the standard pattern used by the other 3D graphics API.
    
    BDW has slots for these values, but they aren't actually used until
    SKL. Even though the documentation for BDW says they must be zero, it
    doesn't seem to cause any harm to program them anyway.
    
    The comment above for the 8x sample positions says that the hardware
    implements centroid interpolation by picking the centre-most sample
    that is inside the primitive. That implies that it might be worthwhile
    to pick a pattern that includes 0.5,0.5. However by experimentation
    this doesn't seem to actually be the case. With the sample positions
    in this patch, if I modify the piglit test below so that it instead
    reports the centroid position, it reports 0.492188,0.421875 which
    doesn't match any of the positions. If I modify the sample positions
    so that they include one at exactly 0.5,0.5 it doesn't help and it
    reports another position which is even further from the center for
    some reason.
    
    arb_gpu_shader5-interpolateAtSample-different
    
    Kenneth Graunke experimented with some other patterns that have a
    higher standard deviation but I think after some discussion it was
    decided that it would be better to pick the same pattern as the other
    graphics API in case there are games that rely on this pattern.
    
    (Based on a patch by Kenneth Graunke)
    
    Cc: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Ben Widawsky <ben at bwidawsk.net>
    20250e85