summaryrefslogtreecommitdiffstats
path: root/src/amd
diff options
context:
space:
mode:
authorBas Nieuwenhuizen <[email protected]>2017-03-14 22:57:55 +0100
committerBas Nieuwenhuizen <[email protected]>2017-03-15 00:37:56 +0100
commit407fa776698e768c9cf47612343502f271960548 (patch)
treea231a3f097583e7fd5e1eaf9a241028841c4dc0e /src/amd
parented28ae71f523fac3f1b18a17b4c1538502657a17 (diff)
radv: Set driver version to mesa version;
I couldn't really find an encoding in the spec. I'm not sure it prescribes VK_MAKE_VERSION format, but vulkan.gpuinfo.org interprets it that way by default. vulkaninfo gives the raw number, so we could alternatively do something like 17001000, but that doesn't show up right on vulkan.gpuinfo.org again. Looking at that site, the -pro driver also uses VK_MAKE_VERSION, so keeping consistency is probably best. Signed-off-by: Bas Nieuwenhuizen <[email protected]> Acked-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/amd')
-rw-r--r--src/amd/vulkan/radv_device.c24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index 09ae4c9faab..d1fd58d77b9 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -477,6 +477,28 @@ void radv_GetPhysicalDeviceFeatures2KHR(
return radv_GetPhysicalDeviceFeatures(physicalDevice, &pFeatures->features);
}
+static uint32_t radv_get_driver_version()
+{
+ const char *minor_string = strchr(VERSION, '.');
+ const char *patch_string = minor_string ? strchr(minor_string + 1, ','): NULL;
+ int major = atoi(VERSION);
+ int minor = minor_string ? atoi(minor_string + 1) : 0;
+ int patch = patch_string ? atoi(patch_string + 1) : 0;
+ if (strstr(VERSION, "devel")) {
+ if (patch == 0) {
+ patch = 99;
+ if (minor == 0) {
+ minor = 99;
+ --major;
+ } else
+ --minor;
+ } else
+ --patch;
+ }
+ uint32_t version = VK_MAKE_VERSION(major, minor, patch);
+ return version;
+}
+
void radv_GetPhysicalDeviceProperties(
VkPhysicalDevice physicalDevice,
VkPhysicalDeviceProperties* pProperties)
@@ -598,7 +620,7 @@ void radv_GetPhysicalDeviceProperties(
*pProperties = (VkPhysicalDeviceProperties) {
.apiVersion = VK_MAKE_VERSION(1, 0, 42),
- .driverVersion = 1,
+ .driverVersion = radv_get_driver_version(),
.vendorID = 0x1002,
.deviceID = pdevice->rad_info.pci_id,
.deviceType = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,