mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 11:08:03 +02: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:
|
case DRM_IOCTL_V3D_PERFMON_GET_VALUES:
|
||||||
return v3d_simulator_perfmon_get_values_ioctl(fd, args);
|
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_OPEN:
|
||||||
case DRM_IOCTL_GEM_FLINK:
|
case DRM_IOCTL_GEM_FLINK:
|
||||||
return drmIoctl(fd, request, args);
|
return drmIoctl(fd, request, args);
|
||||||
|
|
|
||||||
|
|
@ -302,6 +302,30 @@ v3dX(simulator_get_param_ioctl)(struct v3d_hw *v3d,
|
||||||
abort();
|
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;
|
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_cl;
|
||||||
struct drm_v3d_submit_tfu;
|
struct drm_v3d_submit_tfu;
|
||||||
struct drm_v3d_submit_csd;
|
struct drm_v3d_submit_csd;
|
||||||
|
struct drm_v3d_perfmon_get_counter;
|
||||||
|
|
||||||
void v3dX(simulator_init_regs)(struct v3d_hw *v3d);
|
void v3dX(simulator_init_regs)(struct v3d_hw *v3d);
|
||||||
int v3dX(simulator_get_param_ioctl)(struct v3d_hw *v3d,
|
int v3dX(simulator_get_param_ioctl)(struct v3d_hw *v3d,
|
||||||
uint32_t perfcnt_total,
|
uint32_t perfcnt_total,
|
||||||
struct drm_v3d_get_param *args);
|
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,
|
void v3dX(simulator_submit_cl_ioctl)(struct v3d_hw *v3d,
|
||||||
struct drm_v3d_submit_cl *args,
|
struct drm_v3d_submit_cl *args,
|
||||||
uint32_t gmp_offset);
|
uint32_t gmp_offset);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue