From 899cbf5cd2bfc63c01fab9d71f7a6ec529091845 Mon Sep 17 00:00:00 2001 From: joshqti <127994991+joshqti@users.noreply.github.com> Date: Tue, 22 Oct 2024 10:14:57 -0700 Subject: [PATCH] vulkan: accept device selection (#2113) - read CL_DEVICE_TYPE_ when specified like other conformance tests - reject non-GPU device types Co-authored-by: dcrawley --- test_conformance/vulkan/main.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/test_conformance/vulkan/main.cpp b/test_conformance/vulkan/main.cpp index 4f560f96..7b1cf01c 100644 --- a/test_conformance/vulkan/main.cpp +++ b/test_conformance/vulkan/main.cpp @@ -205,6 +205,18 @@ static void printUsage(const char *execName) log_info("\t--non_dedicated - Choose dedicated Vs. non_dedicated \n"); } +bool isDeviceSelection(const char *arg) +{ + + return strcmp(arg, "gpu") == 0 || strcmp(arg, "CL_DEVICE_TYPE_GPU") == 0 + || strcmp(arg, "cpu") == 0 || strcmp(arg, "CL_DEVICE_TYPE_CPU") == 0 + || strcmp(arg, "accelerator") == 0 + || strcmp(arg, "CL_DEVICE_TYPE_ACCELERATOR") == 0 + || strcmp(arg, "custom") == 0 + || strcmp(arg, "CL_DEVICE_TYPE_CUSTOM") == 0 + || strcmp(arg, "CL_DEVICE_TYPE_DEFAULT") == 0; +} + size_t parseParams(int argc, const char *argv[], const char **argList) { size_t argCount = 1; @@ -236,6 +248,16 @@ size_t parseParams(int argc, const char *argv[], const char **argList) break; } } + else if (isDeviceSelection(argv[i])) + { + if (strcmp(argv[i], "gpu") != 0 + && strcmp(argv[i], "CL_DEVICE_TYPE_GPU") != 0 + && strcmp(argv[i], "CL_DEVICE_TYPE_DEFAULT") != 0) + { + log_info("Vulkan tests can only run on a GPU device.\n"); + return 0; + } + } else { argList[argCount] = argv[i];