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];