mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 02:38:04 +02:00
radv: Add LLVM version to the device name string
Allows apps to determine the LLVM version so that they can decide
whether or not to enable workarounds for LLVM issues.
Signed-off-by: Alex Smith <asmith@feralinteractive.com>
Cc: "17.2 17.3" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
(cherry picked from commit 8fda98c4f1)
This commit is contained in:
parent
7254a74ff2
commit
0c8d5a8c1f
2 changed files with 36 additions and 25 deletions
|
|
@ -76,32 +76,43 @@ radv_get_device_uuid(struct radeon_info *info, void *uuid)
|
|||
ac_compute_device_uuid(info, uuid, VK_UUID_SIZE);
|
||||
}
|
||||
|
||||
static const char *
|
||||
get_chip_name(enum radeon_family family)
|
||||
static void
|
||||
radv_get_device_name(enum radeon_family family, char *name, size_t name_len)
|
||||
{
|
||||
const char *chip_string;
|
||||
char llvm_string[32] = {};
|
||||
|
||||
switch (family) {
|
||||
case CHIP_TAHITI: return "AMD RADV TAHITI";
|
||||
case CHIP_PITCAIRN: return "AMD RADV PITCAIRN";
|
||||
case CHIP_VERDE: return "AMD RADV CAPE VERDE";
|
||||
case CHIP_OLAND: return "AMD RADV OLAND";
|
||||
case CHIP_HAINAN: return "AMD RADV HAINAN";
|
||||
case CHIP_BONAIRE: return "AMD RADV BONAIRE";
|
||||
case CHIP_KAVERI: return "AMD RADV KAVERI";
|
||||
case CHIP_KABINI: return "AMD RADV KABINI";
|
||||
case CHIP_HAWAII: return "AMD RADV HAWAII";
|
||||
case CHIP_MULLINS: return "AMD RADV MULLINS";
|
||||
case CHIP_TONGA: return "AMD RADV TONGA";
|
||||
case CHIP_ICELAND: return "AMD RADV ICELAND";
|
||||
case CHIP_CARRIZO: return "AMD RADV CARRIZO";
|
||||
case CHIP_FIJI: return "AMD RADV FIJI";
|
||||
case CHIP_POLARIS10: return "AMD RADV POLARIS10";
|
||||
case CHIP_POLARIS11: return "AMD RADV POLARIS11";
|
||||
case CHIP_POLARIS12: return "AMD RADV POLARIS12";
|
||||
case CHIP_STONEY: return "AMD RADV STONEY";
|
||||
case CHIP_VEGA10: return "AMD RADV VEGA";
|
||||
case CHIP_RAVEN: return "AMD RADV RAVEN";
|
||||
default: return "AMD RADV unknown";
|
||||
case CHIP_TAHITI: chip_string = "AMD RADV TAHITI"; break;
|
||||
case CHIP_PITCAIRN: chip_string = "AMD RADV PITCAIRN"; break;
|
||||
case CHIP_VERDE: chip_string = "AMD RADV CAPE VERDE"; break;
|
||||
case CHIP_OLAND: chip_string = "AMD RADV OLAND"; break;
|
||||
case CHIP_HAINAN: chip_string = "AMD RADV HAINAN"; break;
|
||||
case CHIP_BONAIRE: chip_string = "AMD RADV BONAIRE"; break;
|
||||
case CHIP_KAVERI: chip_string = "AMD RADV KAVERI"; break;
|
||||
case CHIP_KABINI: chip_string = "AMD RADV KABINI"; break;
|
||||
case CHIP_HAWAII: chip_string = "AMD RADV HAWAII"; break;
|
||||
case CHIP_MULLINS: chip_string = "AMD RADV MULLINS"; break;
|
||||
case CHIP_TONGA: chip_string = "AMD RADV TONGA"; break;
|
||||
case CHIP_ICELAND: chip_string = "AMD RADV ICELAND"; break;
|
||||
case CHIP_CARRIZO: chip_string = "AMD RADV CARRIZO"; break;
|
||||
case CHIP_FIJI: chip_string = "AMD RADV FIJI"; break;
|
||||
case CHIP_POLARIS10: chip_string = "AMD RADV POLARIS10"; break;
|
||||
case CHIP_POLARIS11: chip_string = "AMD RADV POLARIS11"; break;
|
||||
case CHIP_POLARIS12: chip_string = "AMD RADV POLARIS12"; break;
|
||||
case CHIP_STONEY: chip_string = "AMD RADV STONEY"; break;
|
||||
case CHIP_VEGA10: chip_string = "AMD RADV VEGA"; break;
|
||||
case CHIP_RAVEN: chip_string = "AMD RADV RAVEN"; break;
|
||||
default: chip_string = "AMD RADV unknown"; break;
|
||||
}
|
||||
|
||||
if (HAVE_LLVM > 0) {
|
||||
snprintf(llvm_string, sizeof(llvm_string),
|
||||
" (LLVM %i.%i.%i)", (HAVE_LLVM >> 8) & 0xff,
|
||||
HAVE_LLVM & 0xff, MESA_LLVM_VERSION_PATCH);
|
||||
}
|
||||
|
||||
snprintf(name, name_len, "%s%s", chip_string, llvm_string);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -221,7 +232,7 @@ radv_physical_device_init(struct radv_physical_device *device,
|
|||
goto fail;
|
||||
}
|
||||
|
||||
device->name = get_chip_name(device->rad_info.family);
|
||||
radv_get_device_name(device->rad_info.family, device->name, sizeof(device->name));
|
||||
|
||||
if (radv_device_get_cache_uuid(device->rad_info.family, device->cache_uuid)) {
|
||||
radv_finish_wsi(device);
|
||||
|
|
|
|||
|
|
@ -266,7 +266,7 @@ struct radv_physical_device {
|
|||
struct radeon_winsys *ws;
|
||||
struct radeon_info rad_info;
|
||||
char path[20];
|
||||
const char * name;
|
||||
char name[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
|
||||
uint8_t driver_uuid[VK_UUID_SIZE];
|
||||
uint8_t device_uuid[VK_UUID_SIZE];
|
||||
uint8_t cache_uuid[VK_UUID_SIZE];
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue