Skip to content
  • Kenneth Graunke's avatar
    iris: Replace buffer backing storage and rebind to update addresses. · 5ad0c88d
    Kenneth Graunke authored
    This implements PIPE_CAP_INVALIDATE_BUFFER and invalidate_resource(),
    as well as the PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE flag.  When either
    of these happen, we swap out the backing storage of the buffer for a
    new idle BO, allowing us to write to it immediately without stalling
    or queueing a blit.
    
    On my Skylake GT4e at 1920x1080, this improves performance in games:
    
       -----------------------------------------------
       | DiRT Rally        | +25% (avg) | +17% (max) |
       | Bioshock Infinite | +22% (avg) | +11% (max) |
       | Shadow of Mordor  | +27% (avg) | +83% (max) |
       -----------------------------------------------
    5ad0c88d