mesa/src/intel/vulkan
Paulo Zanoni 04bfe828db anv/sparse: allow sparse resouces to use TR-TT as its backend
TR-TT is a hardware feature supported by both i915.ko and xe.ko, which
means we can now finally have Sparse Resources on i915.ko and we also
have 2 options for xe.ko (and whatever is the best should be the
default).

In this patch we use batch commands to write the page tables and
forever keep them in device memory. We maintain a mirror of both the
L3 and and L2 tables because that helps us never having to read the
tables that are in device memory.

We still have some things to improve, but with this commit, workloads
that didn't work at all due to the lack of sparse resources should
at least run.

This is still all disabled by default in i915.ko, you can turn it on
by exporting ANV_SPARSE=1 before launching the applications. For
xe.ko, switch the default with ANV_SPARSE_USE_TRTT=1.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25512>
2023-11-17 17:58:28 +00:00
..
grl meson: Remove unnecessary inc_compiler mentions 2023-09-22 14:52:50 +00:00
i915 anv/sparse: allow sparse resouces to use TR-TT as its backend 2023-11-17 17:58:28 +00:00
layers anv: handle missing astc for gfx125 in CreateImageView 2023-05-12 06:59:34 +00:00
shaders anv/xehp+: Enable TBIMR in generated draw calls. 2023-10-27 14:50:42 -07:00
tests anv: fail pool allocation when over the maximal size 2023-10-30 14:47:18 +00:00
xe anv/sparse: allow sparse resouces to use TR-TT as its backend 2023-11-17 17:58:28 +00:00
anv_allocator.c anv: handle protected memory allocation 2023-11-14 05:55:54 +00:00
anv_android.c anv: Add missing ANV_BO_ALLOC_EXTERNAL flags when calling anv_device_import_bo() 2023-11-08 01:20:42 +00:00
anv_android.h anv: Use the new vk_device_memory base struct 2023-03-31 14:57:03 +00:00
anv_android_stubs.c anv,hasvk: android ahb is not always exportable 2023-05-11 22:18:03 +00:00
anv_astc_emu.c anv: add gen9 astc workaround 2023-10-25 00:06:04 +00:00
anv_batch_chain.c anv/sparse: allow sparse resouces to use TR-TT as its backend 2023-11-17 17:58:28 +00:00
anv_blorp.c anv: Flush data cache while clearing depth using HIZ_CCS_WT 2023-11-14 08:30:59 +00:00
anv_bo_sync.c anv: Add a tracepoint for the fallback implicit sync wait path. 2023-01-12 20:21:03 +00:00
anv_cmd_buffer.c anv: get rid of the duplicate pipeline fields in command buffer state 2023-11-17 10:17:51 +00:00
anv_descriptor_set.c anv: Remove anv_bo flags that can be inferred from alloc_flags 2023-11-08 01:20:42 +00:00
anv_device.c anv/sparse: allow sparse resouces to use TR-TT as its backend 2023-11-17 17:58:28 +00:00
anv_formats.c anv: advertise emulated formats 2023-10-14 02:36:40 +00:00
anv_gem.c anv: Calculate mmap mode based on alloc_flags 2023-11-08 01:20:42 +00:00
anv_gem_stubs.c anv/sparse: allow sparse resouces to use TR-TT as its backend 2023-11-17 17:58:28 +00:00
anv_genX.h anv/sparse: allow sparse resouces to use TR-TT as its backend 2023-11-17 17:58:28 +00:00
anv_image.c anv/drirc: add option to disable FCV optimization 2023-11-15 18:16:56 +00:00
anv_internal_kernels.c intel/compiler: Remove unused parameter from brw_nir_analyze_ubo_ranges() 2023-11-08 18:10:31 +00:00
anv_internal_kernels.h anv: fixup 32bit build of internal shaders 2023-10-25 11:47:40 +00:00
anv_kmd_backend.c anv: Add gem VM bind and unbind to backend 2023-03-11 17:56:01 +00:00
anv_kmd_backend.h anv/sparse: allow sparse resouces to use TR-TT as its backend 2023-11-17 17:58:28 +00:00
anv_measure.c anv: get rid of the duplicate pipeline fields in command buffer state 2023-11-17 10:17:51 +00:00
anv_measure.h anv: add a custom AcquireNextImage2KHR func 2022-02-17 22:15:23 +00:00
anv_mesh_perprim_wa.c treewide: Merge num_mesh_vertices_per_primitive and u_vertices_per_prim into mesa_vertices_per_prim 2023-10-26 09:35:04 +00:00
anv_nir.h anv/hasvk: track robustness per pipeline stage 2023-08-09 09:00:12 +03:00
anv_nir_apply_pipeline_layout.c anv: Bring back the non optimized version of build_load_render_surface_state_address() 2023-11-13 18:11:39 +00:00
anv_nir_compute_push_layout.c intel/compiler: Remove unused parameter from brw_nir_analyze_ubo_ranges() 2023-11-08 18:10:31 +00:00
anv_nir_lower_load_patch_vertices_in.c treewide: Use nir_shader_intrinsic_pass sometimes 2023-08-24 15:48:02 +00:00
anv_nir_lower_multiview.c treewide: Use nir_before/after_impl for more elaborate cases 2023-08-30 19:30:58 +00:00
anv_nir_lower_resource_intel.c treewide: Use nir_shader_intrinsic_pass sometimes 2023-08-24 15:48:02 +00:00
anv_nir_lower_ubo_loads.c treewide: Use nir_shader_intrinsic_pass sometimes 2023-08-24 15:48:02 +00:00
anv_nir_push_descriptor_analysis.c nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
anv_perf.c anv/iris: report counter symbols with debug option 2023-03-08 12:45:43 +00:00
anv_pipeline.c anv: fix source_hash propagation with libraries 2023-11-17 10:17:51 +00:00
anv_pipeline_cache.c anv: make shader cache content deterministic 2023-11-02 02:53:41 +00:00
anv_private.h anv/sparse: allow sparse resouces to use TR-TT as its backend 2023-11-17 17:58:28 +00:00
anv_queue.c anv: Execute an empty batch to sync main and companion RCS batch 2023-09-07 06:39:06 +00:00
anv_sparse.c anv/sparse: allow sparse resouces to use TR-TT as its backend 2023-11-17 17:58:28 +00:00
anv_util.c anv: fix missing naming for dirty bit 2023-11-17 10:17:51 +00:00
anv_utrace.c anv: dynamically allocate utrace batch buffers 2023-11-07 17:48:11 +00:00
anv_va.c anv: setup the TR-TT vma heap 2023-11-04 02:06:53 +00:00
anv_video.c anv/video: use correct enum value for max level IDC 2023-09-06 05:10:33 +00:00
anv_wsi.c anvil,hasvk: Replace intel_clflush_range with intel_flush_range 2023-09-06 01:39:53 +00:00
genX_acceleration_structure.c intel/ds: track acceleration RT commands 2023-10-06 11:10:12 +00:00
genX_blorp_exec.c anv/blorp: move helper function about BTI changes to blorp 2023-11-17 10:17:51 +00:00
genX_cmd_buffer.c anv/sparse: allow sparse resouces to use TR-TT as its backend 2023-11-17 17:58:28 +00:00
genX_cmd_draw_generated_indirect.h anv: get rid of the duplicate pipeline fields in command buffer state 2023-11-17 10:17:51 +00:00
genX_cmd_draw_helpers.h anv: get rid of the duplicate pipeline fields in command buffer state 2023-11-17 10:17:51 +00:00
genX_gfx_state.c anv: get rid of the duplicate pipeline fields in command buffer state 2023-11-17 10:17:51 +00:00
genX_gpu_memcpy.c anv: WA 16014538804 for DG2, MTL A0 2023-11-08 11:00:55 +00:00
genX_init_state.c anv/sparse: allow sparse resouces to use TR-TT as its backend 2023-11-17 17:58:28 +00:00
genX_pipeline.c anv: get rid of the duplicate pipeline fields in command buffer state 2023-11-17 10:17:51 +00:00
genX_query.c anv: Write timestamp using MI_FLUSH_DW on blitter 2023-11-13 23:43:27 +00:00
genX_simple_shader.c anv: fix CC_VIEWPORT pointer dirty after blorp/simple-shaders 2023-11-17 10:17:51 +00:00
genX_video.c anv: Calculate mmap mode based on alloc_flags 2023-11-08 01:20:42 +00:00
meson.build anv: fail pool allocation when over the maximal size 2023-10-30 14:47:18 +00:00