Yes, please! On 6 June 2017 at 16:12, Jason Ekstrand <ja...@jlekstrand.net> wrote:
> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> > > Alex, do you need someone to push these for you? > > On Tue, Jun 6, 2017 at 8:09 AM, Alex Smith <asm...@feralinteractive.com> > wrote: > >> 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 <asm...@feralinteractive.com> >> --- >> src/amd/vulkan/radv_device.c | 24 +--------------------- >> src/vulkan/Makefile.sources | 1 + >> src/vulkan/util/vk_util.c | 49 ++++++++++++++++++++++++++++++ >> ++++++++++++++ >> src/vulkan/util/vk_util.h | 2 ++ >> 4 files changed, 53 insertions(+), 23 deletions(-) >> create mode 100644 src/vulkan/util/vk_util.c >> >> diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c >> index a812527..5fdb894 100644 >> --- a/src/amd/vulkan/radv_device.c >> +++ b/src/amd/vulkan/radv_device.c >> @@ -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_INTEGR >> ATED_GPU, >> diff --git a/src/vulkan/Makefile.sources b/src/vulkan/Makefile.sources >> index 9962c1b..2cf7218 100644 >> --- a/src/vulkan/Makefile.sources >> +++ b/src/vulkan/Makefile.sources >> @@ -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 := \ >> diff --git a/src/vulkan/util/vk_util.c b/src/vulkan/util/vk_util.c >> new file mode 100644 >> index 0000000..769e690 >> --- /dev/null >> +++ b/src/vulkan/util/vk_util.c >> @@ -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); >> +} >> diff --git a/src/vulkan/util/vk_util.h b/src/vulkan/util/vk_util.h >> index 5ff1f00..2ed601f 100644 >> --- a/src/vulkan/util/vk_util.h >> +++ b/src/vulkan/util/vk_util.h >> @@ -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 */ >> -- >> 2.9.4 >> >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev >> > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev