mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-12 01:20:17 +01:00
broadcom/simulator: Add DRM_IOCTL_V3D_GET_COUNTER to simulator
As this new IOCTL was introduced in the kernel, mirror the change in the simulator. Signed-off-by: Maíra Canal <mcanal@igalia.com> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29154>
This commit is contained in:
parent
e630812b43
commit
3e8b2fe053
3 changed files with 31 additions and 0 deletions
|
|
@ -1099,6 +1099,10 @@ v3d_simulator_ioctl(int fd, unsigned long request, void *args)
|
|||
case DRM_IOCTL_V3D_PERFMON_GET_VALUES:
|
||||
return v3d_simulator_perfmon_get_values_ioctl(fd, args);
|
||||
|
||||
case DRM_IOCTL_V3D_PERFMON_GET_COUNTER:
|
||||
return v3d_X_simulator(perfmon_get_counter_ioctl)(sim_state.perfcnt_total,
|
||||
args);
|
||||
|
||||
case DRM_IOCTL_GEM_OPEN:
|
||||
case DRM_IOCTL_GEM_FLINK:
|
||||
return drmIoctl(fd, request, args);
|
||||
|
|
|
|||
|
|
@ -302,6 +302,30 @@ v3dX(simulator_get_param_ioctl)(struct v3d_hw *v3d,
|
|||
abort();
|
||||
}
|
||||
|
||||
int
|
||||
v3dX(simulator_perfmon_get_counter_ioctl)(uint32_t perfcnt_total,
|
||||
struct drm_v3d_perfmon_get_counter *args)
|
||||
{
|
||||
const char **counter = NULL;
|
||||
|
||||
/* Make sure that the counter ID is valid */
|
||||
if (args->counter >= perfcnt_total)
|
||||
return -1;
|
||||
|
||||
counter = v3d_performance_counters[args->counter];
|
||||
|
||||
memcpy(args->name, counter[V3D_PERFCNT_NAME],
|
||||
DRM_V3D_PERFCNT_MAX_NAME);
|
||||
|
||||
memcpy(args->category, counter[V3D_PERFCNT_CATEGORY],
|
||||
DRM_V3D_PERFCNT_MAX_CATEGORY);
|
||||
|
||||
memcpy(args->description, counter[V3D_PERFCNT_DESCRIPTION],
|
||||
DRM_V3D_PERFCNT_MAX_DESCRIPTION);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct v3d_hw *v3d_isr_hw;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -32,11 +32,14 @@ struct drm_v3d_get_param;
|
|||
struct drm_v3d_submit_cl;
|
||||
struct drm_v3d_submit_tfu;
|
||||
struct drm_v3d_submit_csd;
|
||||
struct drm_v3d_perfmon_get_counter;
|
||||
|
||||
void v3dX(simulator_init_regs)(struct v3d_hw *v3d);
|
||||
int v3dX(simulator_get_param_ioctl)(struct v3d_hw *v3d,
|
||||
uint32_t perfcnt_total,
|
||||
struct drm_v3d_get_param *args);
|
||||
int v3dX(simulator_perfmon_get_counter_ioctl)(uint32_t perfcnt_total,
|
||||
struct drm_v3d_perfmon_get_counter *args);
|
||||
void v3dX(simulator_submit_cl_ioctl)(struct v3d_hw *v3d,
|
||||
struct drm_v3d_submit_cl *args,
|
||||
uint32_t gmp_offset);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue