58 lines
1.7 KiB
C++
58 lines
1.7 KiB
C++
// Copyright (c) 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,
|
|
};
|
|
|
|
/// <summary>
|
|
/// The base implementation for the Vulkan API platform support.
|
|
/// </summary>
|
|
class VulkanPlatformBase
|
|
{
|
|
public:
|
|
static void GetInstanceExtensions(Array<const char*>& extensions, Array<const char*>& layers)
|
|
{
|
|
}
|
|
|
|
static void GetDeviceExtensions(Array<const char*>& extensions, Array<const char*>& 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;
|
|
}
|
|
|
|
static bool LoadCache(const String& folder, const Char* filename, Array<byte>& data);
|
|
static bool SaveCache(const String& folder, const Char* filename, const Array<byte>& data);
|
|
};
|
|
|
|
#endif
|