anv: Use separate MOCS settings for external BOs
On Broadwell and above, we have to use different MOCS settings to allow the kernel to take over and disable caching when needed for external buffers. On Broadwell, this is especially important because the kernel can't disable eLLC so we have to do it in userspace. We very badly don't want to do that on everything so we need separate MOCS for external and internal BOs. In order to do this, we add an anv-specific BO flag for "external" and use that to distinguish between buffers which may be shared with other processes and/or display and those which are entirely internal. That, together with an anv_mocs_for_bo helper lets us choose the right MOCS settings for each BO use. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99507 Cc: mesa-stable@lists.freedesktop.org Reviewed-by:Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Showing
- src/intel/vulkan/anv_allocator.c 10 additions, 2 deletionssrc/intel/vulkan/anv_allocator.c
- src/intel/vulkan/anv_batch_chain.c 1 addition, 1 deletionsrc/intel/vulkan/anv_batch_chain.c
- src/intel/vulkan/anv_blorp.c 8 additions, 7 deletionssrc/intel/vulkan/anv_blorp.c
- src/intel/vulkan/anv_device.c 7 additions, 2 deletionssrc/intel/vulkan/anv_device.c
- src/intel/vulkan/anv_image.c 3 additions, 2 deletionssrc/intel/vulkan/anv_image.c
- src/intel/vulkan/anv_intel.c 1 addition, 1 deletionsrc/intel/vulkan/anv_intel.c
- src/intel/vulkan/anv_private.h 29 additions, 9 deletionssrc/intel/vulkan/anv_private.h
- src/intel/vulkan/gen7_cmd_buffer.c 2 additions, 1 deletionsrc/intel/vulkan/gen7_cmd_buffer.c
- src/intel/vulkan/gen8_cmd_buffer.c 2 additions, 1 deletionsrc/intel/vulkan/gen8_cmd_buffer.c
- src/intel/vulkan/genX_cmd_buffer.c 9 additions, 9 deletionssrc/intel/vulkan/genX_cmd_buffer.c
- src/intel/vulkan/genX_gpu_memcpy.c 2 additions, 3 deletionssrc/intel/vulkan/genX_gpu_memcpy.c
- src/intel/vulkan/genX_state.c 6 additions, 0 deletionssrc/intel/vulkan/genX_state.c
Loading
Please register or sign in to comment