mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-25 08:18:11 +02:00
Android CTS CtsGpuProfilingDataTest#testProfilingDataProducersAvailable intermittently fails with "Render stages reported before their VkQueueSubmit events". Root cause is in the Perfetto clock correlation: render-stage timestamps go through intel_device_info_timebase_scale() while VkQueueSubmit packets use BOOTTIME directly, so any drift in the scaler shows up as render stages preceding their submits. intel_device_info_timebase_scale() scales the upper and lower halves of the raw timestamp separately and recombines them, but silently drops the upper-half division's remainder. When the frequency doesn't evenly divide 1e9, every wrap past 2^32 loses a fixed number of ns and shows up as a step in Perfetto's GPU-vs-BOOTTIME snapshot offset. Carry the upper-half remainder into the lower-half numerator before dividing, so no precision is lost. All intermediates still fit in uint64_t. Cc: mesa-stable Signed-off-by: Nemallapudi, Jaikrishna <nemallapudi.jaikrishna@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41630> |
||
|---|---|---|
| .. | ||
| i915 | ||
| virtio | ||
| xe | ||
| gen_wa_helpers.py | ||
| intel_debug.c | ||
| intel_debug.h | ||
| intel_device_info.c | ||
| intel_device_info.h | ||
| intel_device_info.py | ||
| intel_device_info_gen_h.py | ||
| intel_device_info_override_test.c | ||
| intel_device_info_serialize.h | ||
| intel_device_info_serialize_gen_c.py | ||
| intel_device_info_test.c | ||
| intel_device_info_test.h | ||
| intel_hwconfig.c | ||
| intel_hwconfig.h | ||
| intel_hwconfig_types.h | ||
| intel_kmd.c | ||
| intel_kmd.h | ||
| mesa_defs.json | ||
| meson.build | ||