mesa/src/intel
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
..
blorp isl/blorp: handle failing 96bpp linear blit case 2025-08-13 16:09:12 +00:00
ci anv: temporary disable KHR_maintenance8 2025-08-29 06:29:13 +00:00
common intel/gem: Add an intel_gem_supports_dma_buf_sync_file() helper 2025-08-16 00:04:46 -04:00
compiler Revert "brw: move texture offset packing to NIR" 2025-08-29 06:29:14 +00:00
decoder intel/genxml: Remove support for start/end atttributes 2025-07-23 16:02:14 +00:00
dev intel/dev: provide a helper to detect bmg g31 device 2025-08-26 19:35:33 +00:00
ds intel/ds: Skip expensive timestamp query until necessary 2025-08-29 21:34:43 +00:00
executor build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
genxml intel/genxml: update CACHE_MODE_0 register for gfx200 2025-08-26 19:35:33 +00:00
isl isl/blorp: handle failing 96bpp linear blit case 2025-08-13 16:09:12 +00:00
nullhw-layer build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
perf intel: fork exec_node/list -> brw_exec_node/list as a private Intel utility 2025-07-31 20:23:02 +00:00
shaders intel: use common CL args 2025-03-06 00:43:59 +00:00
tools build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
vulkan anv: Apply pipe flushes for outstanding PC bits 2025-08-29 20:19:45 +00:00
vulkan_hasvk hasvk: Remove special CROS_GRALLOC path from format logic 2025-08-22 23:40:32 +00:00
meson.build intel: Add meson option -Dintel-elk 2025-01-30 00:45:59 +00:00