// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved. #pragma once #include "Engine/Core/Collections/Array.h" #include "IncludeVulkanHeaders.h" #if GRAPHICS_API_VULKAN enum class VulkanValidationLevel { Disabled = 0, ErrorsOnly = 1, ErrorsAndWarnings = 2, ErrorsAndWarningsPerf = 3, ErrorsAndWarningsPerfInfo = 4, All = 5, }; /// /// The base implementation for the Vulkan API platform support. /// class VulkanPlatformBase { public: static void GetInstanceExtensions(Array& extensions, Array& layers) { } static void GetDeviceExtensions(Array& extensions, Array& layers) { } static void CreateSurface(VkSurfaceKHR* outSurface) { } static void RestrictEnabledPhysicalDeviceFeatures(const VkPhysicalDeviceFeatures& deviceFeatures, VkPhysicalDeviceFeatures& featuresToEnable) { featuresToEnable = deviceFeatures; featuresToEnable.shaderResourceResidency = VK_FALSE; featuresToEnable.shaderResourceMinLod = VK_FALSE; featuresToEnable.sparseBinding = VK_FALSE; featuresToEnable.sparseResidencyBuffer = VK_FALSE; featuresToEnable.sparseResidencyImage2D = VK_FALSE; featuresToEnable.sparseResidencyImage3D = VK_FALSE; featuresToEnable.sparseResidency2Samples = VK_FALSE; featuresToEnable.sparseResidency4Samples = VK_FALSE; featuresToEnable.sparseResidency8Samples = VK_FALSE; featuresToEnable.sparseResidencyAliased = VK_FALSE; } }; #endif