mesa/src/intel/vulkan
Jason Ekstrand 7a89a0d9ed 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>
2018-10-03 09:03:03 -05:00
..
tests anv: Soft-pin state pools 2018-06-01 13:49:22 -07:00
.gitignore anv,nir: add generated files to .gitignore(s) 2018-05-12 20:14:49 -07:00
anv_allocator.c anv: Use separate MOCS settings for external BOs 2018-10-03 09:03:03 -05:00
anv_android.c anv: add more swapchain formats 2018-08-06 09:25:11 +03:00
anv_batch_chain.c anv: Use separate MOCS settings for external BOs 2018-10-03 09:03:03 -05:00
anv_blorp.c anv: Use separate MOCS settings for external BOs 2018-10-03 09:03:03 -05:00
anv_cmd_buffer.c anv: fix assert in anv_CmdBindDescriptorSets() 2018-07-18 08:54:23 +02:00
anv_descriptor_set.c anv/apply_pipeline_layout: Add to the bind map instead of replacing it 2018-08-17 10:50:28 -05:00
anv_device.c anv: Use separate MOCS settings for external BOs 2018-10-03 09:03:03 -05:00
anv_dump.c anv: enable multiple planes per image/imageView 2017-10-06 16:32:20 +01:00
anv_entrypoints_gen.py anv: cleanup python imports 2018-07-25 20:55:35 +01:00
anv_extensions.py anv: Implement VK_KHR_driver_properties 2018-10-01 13:21:12 -05:00
anv_extensions_gen.py anv: Add EXT_acquire_xlib_display to anv driver [v3] 2018-06-19 14:17:46 -07:00
anv_formats.c anv: add VK_EXT_sampler_filter_minmax support 2018-08-22 11:56:19 +01:00
anv_gem.c anv: remove unnecessary runtime copy of static string 2018-07-23 17:56:08 +01:00
anv_gem_stubs.c intel: fix check for 48b ppgtt support 2018-04-30 11:34:19 -07:00
anv_genX.h anv: Add a mi_memset and use it for zeroing queries 2018-09-17 02:57:21 -05:00
anv_icd.py anv: fix python whitespace warning 2018-07-25 20:55:35 +01:00
anv_image.c anv: Use separate MOCS settings for external BOs 2018-10-03 09:03:03 -05:00
anv_intel.c anv: Use separate MOCS settings for external BOs 2018-10-03 09:03:03 -05:00
anv_nir.h anv: Implement vkCmdDispatchBase 2018-03-07 12:13:47 -08:00
anv_nir_add_base_work_group_id.c anv: Implement vkCmdDispatchBase 2018-03-07 12:13:47 -08:00
anv_nir_apply_pipeline_layout.c anv: Silence a couple compiler warnings 2018-09-12 21:20:27 -05:00
anv_nir_lower_input_attachments.c anv/pipeline: Remove dead image loads in lower_input_attacnments 2018-08-29 14:04:02 -05:00
anv_nir_lower_multiview.c Replace uses of _mesa_bitcount with util_bitcount 2018-09-07 10:21:26 -07:00
anv_nir_lower_push_constants.c spirv/i965/anv: Relax push constant offset assertions being 32-bit aligned 2018-02-28 21:37:40 -08:00
anv_nir_lower_ycbcr_textures.c anv/lower_ycbcr: Use the binding array size for bounds checks 2018-08-17 10:50:28 -05:00
anv_pass.c anv: Add support for VK_KHR_create_renderpass2 2018-07-09 10:11:53 -07:00
anv_pipeline.c Replace uses of _mesa_bitcount with util_bitcount 2018-09-07 10:21:26 -07:00
anv_pipeline_cache.c anv/pipeline: honor the pipeline_cache_enabled run-time flag 2018-07-09 08:40:26 +02:00
anv_private.h anv: Use separate MOCS settings for external BOs 2018-10-03 09:03:03 -05:00
anv_queue.c anv: add VK_EXT_display_control to anv driver [v5] 2018-06-23 07:59:00 -07:00
anv_util.c anv: give more room to debug report 2018-07-18 08:29:51 -07:00
anv_wsi.c anv,radv: Implement vkAcquireNextImage2 2018-09-21 07:02:35 -05:00
anv_wsi_display.c anv,radv: Add support for VK_KHR_get_display_properties2 2018-07-09 17:09:41 -07:00
anv_wsi_wayland.c anv/wsi: Don't include wayland headers 2017-03-13 11:16:30 +00:00
anv_wsi_x11.c vulkan/wsi/radv: add initial prime support (v1.1) 2017-02-27 05:42:16 +10:00
gen7_cmd_buffer.c anv: Use separate MOCS settings for external BOs 2018-10-03 09:03:03 -05:00
gen8_cmd_buffer.c anv: Use separate MOCS settings for external BOs 2018-10-03 09:03:03 -05:00
genX_blorp_exec.c intel/blorp: Emit VF cache invalidates for 48-bit bugs with softpin. 2018-06-06 19:45:09 -07:00
genX_cmd_buffer.c anv: Use separate MOCS settings for external BOs 2018-10-03 09:03:03 -05:00
genX_gpu_memcpy.c anv: Use separate MOCS settings for external BOs 2018-10-03 09:03:03 -05:00
genX_pipeline.c anv: Disable the vertex cache when tessellating on SKL GT4 2018-09-07 15:19:02 -05:00
genX_query.c anv/query: Add an emit_srm helper 2018-09-17 02:57:21 -05:00
genX_state.c anv: Use separate MOCS settings for external BOs 2018-10-03 09:03:03 -05:00
meson.build intel: compiler option msse2 and mstackrealign 2018-09-07 13:45:46 +01:00
TODO anv: Implement pipeline statistics queries 2017-03-17 12:12:50 -07:00
vk_format_info.h Get rid of a bunch of KHR suffixes 2018-03-07 12:13:47 -08:00