Mesa (master): radv: Set driver version to mesa version;

Bas Nieuwenhuizen bnieuwenhuizen at kemper.freedesktop.org
Tue Mar 14 23:38:36 UTC 2017


Module: Mesa
Branch: master
Commit: 407fa776698e768c9cf47612343502f271960548
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=407fa776698e768c9cf47612343502f271960548

Author: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Date:   Tue Mar 14 22:57:55 2017 +0100

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 <basni at google.com>
Acked-by: Dave Airlie <airlied at redhat.com>

---

 src/amd/vulkan/radv_device.c | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index 09ae4c9..d1fd58d 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,




More information about the mesa-commit mailing list