Skip to content
  • Faith Ekstrand's avatar
    anv: Add support for 48-bit addresses · 651ec926
    Faith Ekstrand authored
    
    
    This commit adds support for using the full 48-bit address space on
    Broadwell and newer hardware.  Thanks to certain limitations, not all
    objects can be placed above the 32-bit boundary.  In particular, general
    and state base address need to live within 32 bits.  (See also
    Wa32bitGeneralStateOffset and Wa32bitInstructionBaseOffset.)  In order
    to handle this, we add a supports_48bit_address field to anv_bo and only
    set EXEC_OBJECT_SUPPORTS_48B_ADDRESS if that bit is set.  We set the bit
    for all client-allocated memory objects but leave it false for
    driver-allocated objects.  While this is more conservative than needed,
    all driver allocations should easily fit in the first 32 bits of address
    space and keeps things simple because we don't have to think about
    whether or not any given one of our allocation data structures will be
    used in a 48-bit-unsafe way.
    
    Reviewed-by: default avatarKristian H. Kristensen <krh@bitplanet.net>
    651ec926