From a54f7f7dc5e23b925881b004f2f1e4f5dc996bb0 Mon Sep 17 00:00:00 2001 From: "Juan A. Suarez Romero" Date: Fri, 10 May 2024 23:12:42 +0200 Subject: [PATCH] v3d,v3dv: add compatibility revision in GPU name So the version matches exactly the same as reported by the kernel in `/sys/kernel/debug/dri/128/v3d_ident`, or the version used in the simulator. Reviewed-by: Iago Toral Quiroga Signed-off-by: Juan A. Suarez Romero Part-of: --- src/broadcom/common/v3d_device_info.c | 1 + src/broadcom/common/v3d_device_info.h | 3 +++ src/broadcom/vulkan/v3dv_device.c | 5 +++-- src/gallium/drivers/v3d/v3d_screen.c | 5 +++-- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/broadcom/common/v3d_device_info.c b/src/broadcom/common/v3d_device_info.c index ef62a550243..3ad75df4e6b 100644 --- a/src/broadcom/common/v3d_device_info.c +++ b/src/broadcom/common/v3d_device_info.c @@ -90,6 +90,7 @@ v3d_get_device_info(int fd, struct v3d_device_info* devinfo, v3d_ioctl_fun drm_i } devinfo->rev = (hub_ident3.value >> 8) & 0xff; + devinfo->compat_rev = (hub_ident3.value >> 16) & 0xff; ret = drm_ioctl(fd, DRM_IOCTL_V3D_GET_PARAM, &max_perfcnt); if (ret != 0) { diff --git a/src/broadcom/common/v3d_device_info.h b/src/broadcom/common/v3d_device_info.h index 69b55a9e1eb..c37067b984f 100644 --- a/src/broadcom/common/v3d_device_info.h +++ b/src/broadcom/common/v3d_device_info.h @@ -37,6 +37,9 @@ struct v3d_device_info { /** V3D revision number */ uint8_t rev; + /** V3D compatitiblity revision number */ + uint8_t compat_rev; + /** Maximum number of performance counters for a given V3D version **/ uint8_t max_perfcnt; diff --git a/src/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c index c1e424f49b8..c4182e017ce 100644 --- a/src/broadcom/vulkan/v3dv_device.c +++ b/src/broadcom/vulkan/v3dv_device.c @@ -1382,10 +1382,11 @@ create_physical_device(struct v3dv_instance *instance, device->next_program_id = 0; ASSERTED int len = - asprintf(&device->name, "V3D %d.%d.%d", + asprintf(&device->name, "V3D %d.%d.%d.%d", device->devinfo.ver / 10, device->devinfo.ver % 10, - device->devinfo.rev); + device->devinfo.rev, + device->devinfo.compat_rev); assert(len != -1); v3dv_physical_device_init_disk_cache(device); diff --git a/src/gallium/drivers/v3d/v3d_screen.c b/src/gallium/drivers/v3d/v3d_screen.c index 1ebccfcfcaf..9ad64a988b0 100644 --- a/src/gallium/drivers/v3d/v3d_screen.c +++ b/src/gallium/drivers/v3d/v3d_screen.c @@ -54,10 +54,11 @@ v3d_screen_get_name(struct pipe_screen *pscreen) if (!screen->name) { screen->name = ralloc_asprintf(screen, - "V3D %d.%d.%d", + "V3D %d.%d.%d.%d", screen->devinfo.ver / 10, screen->devinfo.ver % 10, - screen->devinfo.rev); + screen->devinfo.rev, + screen->devinfo.compat_rev); } return screen->name;