mesa/src/intel/vulkan
Paulo Zanoni fda5163f34 anv/trtt: properly handle the lifetime of TR-TT batch BOs
We need to wait for the batches to complete before we return the BOs
to the pool. We were previously doing this completely synchronously,
which made the code unnecessarily wait. Now we have a timeline syncobj
that signals completion of the previous BOs, so sometimes we check
where we are in the timeline and then return the BOs that we know are
unused.

This, in addition to the previous patch that made us wait for the
other syncobjs through the execbuf ioctl instead of through the CPU,
makes TR-TT batches at least an order of magnitude faster. Still, I
don't think we'll notice any changes in games's FPS as they don't bind
sparse resources that often.

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:29 +00:00
..
grl meson: Remove unnecessary inc_compiler mentions 2023-09-22 14:52:50 +00:00
i915 anv/trtt: properly handle the lifetime of TR-TT batch BOs 2023-11-17 17:58:29 +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/trtt: properly handle the lifetime of TR-TT batch BOs 2023-11-17 17:58:29 +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/trtt: properly handle the lifetime of TR-TT batch BOs 2023-11-17 17:58:29 +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/trtt: properly handle the lifetime of TR-TT batch BOs 2023-11-17 17:58:29 +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/trtt: add struct anv_trtt_batch_bo and pass it around 2023-11-17 17:58:29 +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/trtt: add struct anv_trtt_batch_bo and pass it around 2023-11-17 17:58:29 +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/trtt: properly handle the lifetime of TR-TT batch BOs 2023-11-17 17:58:29 +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/trtt: properly handle the lifetime of TR-TT batch BOs 2023-11-17 17:58:29 +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/trtt: use 'queue' from anv_sparse_submission in the 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