blob: 976ec7678bf703ab858b0e2ec307ca0a701f3b02 [file] [log] [blame]
/*
* Copyright 2024 Intel Corporation
* SPDX-License-Identifier: MIT
*/
#pragma once
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
struct intel_bind_timeline;
struct intel_perf_config;
struct intel_perf_registers;
struct intel_perf_query_eustall_result;
uint64_t xe_perf_get_oa_format(struct intel_perf_config *perf);
bool xe_oa_metrics_available(struct intel_perf_config *perf, int fd, bool use_register_snapshots);
uint64_t xe_add_config(struct intel_perf_config *perf, int fd, const struct intel_perf_registers *config, const char *guid);
void xe_remove_config(struct intel_perf_config *perf, int fd, uint64_t config_id);
int xe_perf_stream_open(struct intel_perf_config *perf_config, int drm_fd,
uint32_t exec_id, uint64_t metrics_set_id,
uint64_t report_format, uint64_t period_exponent,
bool hold_preemption, bool enable,
struct intel_bind_timeline *timeline);
int xe_perf_stream_set_state(int perf_stream_fd, bool enable);
int xe_perf_stream_set_metrics_id(int perf_stream_fd, int drm_fd,
uint32_t exec_queue, uint64_t metrics_set_id,
struct intel_bind_timeline *timeline);
int xe_perf_stream_read_samples(struct intel_perf_config *perf_config, int perf_stream_fd,
uint8_t *buffer, size_t buffer_len);
int xe_perf_eustall_stream_open(int drm_fd, uint32_t sample_rate,
uint32_t min_event_count);
int xe_perf_eustall_stream_record_size(int drm_fd);
int xe_perf_eustall_stream_sample_rate(int drm_fd);
int xe_perf_eustall_stream_read_samples(int perf_stream_fd, uint8_t *buffer,
size_t buffer_len, bool *overflow);
void xe_perf_eustall_accumulate_results(struct intel_perf_query_eustall_result *result,
const uint8_t *start, const uint8_t *end,
size_t record_size);