diff --git a/base/VulkanTools.cpp b/base/VulkanTools.cpp index 9376d5d0..7fbb520b 100644 --- a/base/VulkanTools.cpp +++ b/base/VulkanTools.cpp @@ -260,15 +260,16 @@ namespace vks 1, &imageMemoryBarrier); } - void exitFatal(std::string message, std::string caption) + void exitFatal(std::string message, std::string caption, bool silent) { #if defined(_WIN32) - MessageBox(NULL, message.c_str(), caption.c_str(), MB_OK | MB_ICONERROR); + if (!silent) { + MessageBox(NULL, message.c_str(), caption.c_str(), MB_OK | MB_ICONERROR); + } #elif defined(__ANDROID__) LOGE("Fatal error: %s", message.c_str()); -#else - std::cerr << message << "\n"; #endif + std::cerr << message << "\n"; exit(1); } diff --git a/base/VulkanTools.h b/base/VulkanTools.h index 09f7e931..510c8963 100644 --- a/base/VulkanTools.h +++ b/base/VulkanTools.h @@ -111,7 +111,7 @@ namespace vks VkImageSubresourceRange subresourceRange); // Display error message and exit on fatal error - void exitFatal(std::string message, std::string caption); + void exitFatal(std::string message, std::string caption, bool silent = false); // Load a SPIR-V shader (binary) #if defined(__ANDROID__) diff --git a/base/vulkanexamplebase.cpp b/base/vulkanexamplebase.cpp index 55dee6bc..cc654e4f 100644 --- a/base/vulkanexamplebase.cpp +++ b/base/vulkanexamplebase.cpp @@ -772,9 +772,8 @@ void VulkanExampleBase::initVulkan() // Vulkan instance err = createInstance(settings.validation); - if (err) - { - vks::tools::exitFatal("Could not create Vulkan instance : \n" + vks::tools::errorString(err), "Fatal error"); + if (err) { + vks::tools::exitFatal("Could not create Vulkan instance : \n" + vks::tools::errorString(err), "Fatal error", !benchmark.active); } #if defined(VK_USE_PLATFORM_ANDROID_KHR) @@ -799,9 +798,8 @@ void VulkanExampleBase::initVulkan() // Enumerate devices std::vector physicalDevices(gpuCount); err = vkEnumeratePhysicalDevices(instance, &gpuCount, physicalDevices.data()); - if (err) - { - vks::tools::exitFatal("Could not enumerate physical devices : \n" + vks::tools::errorString(err), "Fatal error"); + if (err) { + vks::tools::exitFatal("Could not enumerate physical devices : \n" + vks::tools::errorString(err), "Fatal error", !benchmark.active); } // GPU selection @@ -876,7 +874,7 @@ void VulkanExampleBase::initVulkan() vulkanDevice = new vks::VulkanDevice(physicalDevice); VkResult res = vulkanDevice->createLogicalDevice(enabledFeatures, enabledExtensions); if (res != VK_SUCCESS) { - vks::tools::exitFatal("Could not create Vulkan device: \n" + vks::tools::errorString(res), "Fatal error"); + vks::tools::exitFatal("Could not create Vulkan device: \n" + vks::tools::errorString(res), "Fatal error", !benchmark.active); } device = vulkanDevice->logicalDevice;