mesa/src/intel/ds
Tim Van Patten c585341552 intel/ds: Skip expensive timestamp query until necessary
The Xe ioctl DRM_XE_DEVICE_QUERY_ENGINE_CYCLES provides accurate
timestamps correlated between the CPU and GPU. However, it is slow and
impacts performance while collecting Perfetto traces.

Instead, use Perfetto's GetBootTimeNs() to track when to emit the
BUILTIN_CLOCK_BOOTTIME clock sync event so it only occurs every 1
second. This reduces the impact of recording gpu.renderstages from
-8% to -4%.

More concretely, FPS measurements when tracing Unity BoatAttack demo on
an Intel ADL device:

* gpu.renderstages disabled:            48.044293667
* gpu.renderstages enabled:             38.119778333 (-20.66%)
* gpu.renderstages enabeled + this fix: 42.641818333 (-11.24%)

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37095>
2025-08-29 21:34:43 +00:00
..
.clang-format
intel_driver_ds.cc intel/ds: Skip expensive timestamp query until necessary 2025-08-29 21:34:43 +00:00
intel_driver_ds.h anv/ds: Forward VkDebugUtilsObjectNameInfoEXT to perfetto. 2025-05-08 01:21:25 +00:00
intel_pps_driver.cc intel/perf: Implement intel_perf_query_result_accumulate() for gfx 20+ 2024-07-03 17:15:05 +00:00
intel_pps_driver.h intel/perf: Replace drm_i915_perf_record_header by intel_perf_record_header 2024-05-27 19:34:06 +00:00
intel_pps_perf.cc intel/ds: Nuke ralloc_ctx and ralloc_cfg 2024-05-07 21:44:34 +00:00
intel_pps_perf.h intel/ds: Nuke ralloc_ctx and ralloc_cfg 2024-05-07 21:44:34 +00:00
intel_pps_priv.h intel/ds: use a per GPU clock ID 2022-01-14 20:17:44 +00:00
intel_tracepoints.py anv/ds: Associate the VkCommandBuffer some anv-only renderstage events. 2025-05-08 01:21:25 +00:00
meson.build build: pass licensing information in SPDX form 2024-06-29 12:42:49 -07:00