mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-10 01:40:14 +01:00
radv/vulkan: Move radv_get_driver_version to src/vulkan/util
This means it can be reused for other Vulkan drivers. Also fix up a typo, need to search for '.' in the version string rather than ','. v2: Remove unneeded temporary version variable (Emil, Eric) Signed-off-by: Alex Smith <asmith@feralinteractive.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
621b3410f5
commit
dc6182fa3f
4 changed files with 53 additions and 23 deletions
|
|
@ -574,28 +574,6 @@ 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)
|
||||
|
|
@ -731,7 +709,7 @@ void radv_GetPhysicalDeviceProperties(
|
|||
|
||||
*pProperties = (VkPhysicalDeviceProperties) {
|
||||
.apiVersion = VK_MAKE_VERSION(1, 0, 42),
|
||||
.driverVersion = radv_get_driver_version(),
|
||||
.driverVersion = vk_get_driver_version(),
|
||||
.vendorID = 0x1002,
|
||||
.deviceID = pdevice->rad_info.pci_id,
|
||||
.deviceType = pdevice->rad_info.has_dedicated_vram ? VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU : VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ VULKAN_WSI_X11_FILES := \
|
|||
|
||||
VULKAN_UTIL_FILES := \
|
||||
util/vk_alloc.h \
|
||||
util/vk_util.c \
|
||||
util/vk_util.h
|
||||
|
||||
VULKAN_UTIL_GENERATED_FILES := \
|
||||
|
|
|
|||
49
src/vulkan/util/vk_util.c
Normal file
49
src/vulkan/util/vk_util.c
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
/*
|
||||
* Copyright © 2016 Red Hat.
|
||||
* Copyright © 2016 Bas Nieuwenhuizen
|
||||
* Copyright © 2017 Intel Corporation
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the next
|
||||
* paragraph) shall be included in all copies or substantial portions of the
|
||||
* Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
* IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "vk_util.h"
|
||||
|
||||
uint32_t vk_get_driver_version(void)
|
||||
{
|
||||
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;
|
||||
}
|
||||
return VK_MAKE_VERSION(major, minor, patch);
|
||||
}
|
||||
|
|
@ -197,4 +197,6 @@ __vk_find_struct(void *start, VkStructureType sType)
|
|||
#define vk_find_struct_const(__start, __sType) \
|
||||
(const void *)__vk_find_struct((void *)(__start), VK_STRUCTURE_TYPE_##__sType)
|
||||
|
||||
uint32_t vk_get_driver_version(void);
|
||||
|
||||
#endif /* VK_UTIL_H */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue