uint32_t vk_get_driver_version(void)
{
- const char *minor_string = strchr(VERSION, '.');
+ const char *minor_string = strchr(PACKAGE_VERSION, '.');
const char *patch_string = minor_string ? strchr(minor_string + 1, '.') : NULL;
- int major = atoi(VERSION);
+ int major = atoi(PACKAGE_VERSION);
int minor = minor_string ? atoi(minor_string + 1) : 0;
int patch = patch_string ? atoi(patch_string + 1) : 0;
- if (strstr(VERSION, "devel")) {
+ if (strstr(PACKAGE_VERSION, "devel")) {
if (patch == 0) {
patch = 99;
if (minor == 0) {
}
return VK_MAKE_VERSION(major, minor, patch);
}
+
+uint32_t vk_get_version_override(void)
+{
+ const char *str = getenv("MESA_VK_VERSION_OVERRIDE");
+ if (str == NULL)
+ return 0;
+
+ const char *minor_str = strchr(str, '.');
+ const char *patch_str = minor_str ? strchr(minor_str + 1, '.') : NULL;
+
+ int major = atoi(str);
+ int minor = minor_str ? atoi(minor_str + 1) : 0;
+ int patch = patch_str ? atoi(patch_str + 1) : 0;
+
+ /* Do some basic version sanity checking */
+ if (major < 1 || minor < 0 || patch < 0 || minor > 1023 || patch > 4095)
+ return 0;
+
+ return VK_MAKE_VERSION(major, minor, patch);
+}