mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-08-28 09:41:36 +00:00
oops, fixup
This commit is contained in:
@@ -1004,13 +1004,13 @@ bool Device::GetSuitability(bool requires_swapchain) {
|
||||
|
||||
#define EXTENSION(prefix, macro_name, var_name) \
|
||||
if (supported_extensions.contains(VK_##prefix##_##macro_name##_EXTENSION_NAME)) { \
|
||||
loaded_extensions.insert(VK_##prefix##_##macro_name##_EXTENSION_NAME); \
|
||||
extensions.var_name = true; \
|
||||
loaded_extensions.insert(VK_##prefix##_##macro_name##_EXTENSION_NAME); \
|
||||
extensions.var_name = true; \
|
||||
}
|
||||
#define FEATURE_EXTENSION(prefix, struct_name, macro_name, var_name) \
|
||||
if (supported_extensions.contains(VK_##prefix##_##macro_name##_EXTENSION_NAME)) { \
|
||||
loaded_extensions.insert(VK_##prefix##_##macro_name##_EXTENSION_NAME); \
|
||||
extensions.var_name = true; \
|
||||
loaded_extensions.insert(VK_##prefix##_##macro_name##_EXTENSION_NAME); \
|
||||
extensions.var_name = true; \
|
||||
}
|
||||
|
||||
if (instance_version < VK_API_VERSION_1_2) {
|
||||
@@ -1034,19 +1034,24 @@ bool Device::GetSuitability(bool requires_swapchain) {
|
||||
extensions.robustness_2 = false;
|
||||
}
|
||||
|
||||
// different namings
|
||||
if (supported_extensions.contains(VK_EXT_DEVICE_FAULT_EXTENSION_NAME)) {
|
||||
loaded_extensions.insert(VK_EXT_DEVICE_FAULT_EXTENSION_NAME);
|
||||
extensions.device_fault = true;
|
||||
}
|
||||
#undef FEATURE_EXTENSION
|
||||
#undef EXTENSION
|
||||
|
||||
// Some extensions are mandatory. Check those.
|
||||
#define CHECK_EXTENSION(extension_name) \
|
||||
if (!loaded_extensions.contains(extension_name)) { \
|
||||
LOG_ERROR(Render_Vulkan, "Missing required extension {}", extension_name); \
|
||||
suitable = false; \
|
||||
LOG_ERROR(Render_Vulkan, "Missing required extension {}", extension_name); \
|
||||
suitable = false; \
|
||||
}
|
||||
|
||||
#define LOG_EXTENSION(extension_name) \
|
||||
if (!loaded_extensions.contains(extension_name)) { \
|
||||
LOG_INFO(Render_Vulkan, "Device doesn't support extension {}", extension_name); \
|
||||
LOG_INFO(Render_Vulkan, "Device doesn't support extension {}", extension_name); \
|
||||
}
|
||||
|
||||
FOR_EACH_VK_RECOMMENDED_EXTENSION(LOG_EXTENSION);
|
||||
@@ -1088,9 +1093,9 @@ bool Device::GetSuitability(bool requires_swapchain) {
|
||||
|
||||
#define EXT_FEATURE(prefix, struct_name, macro_name, var_name) \
|
||||
if (extensions.var_name) { \
|
||||
features.var_name.sType = \
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_##macro_name##_FEATURES_##prefix; \
|
||||
SetNext(next, features.var_name); \
|
||||
features.var_name.sType = \
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_##macro_name##_FEATURES_##prefix; \
|
||||
SetNext(next, features.var_name); \
|
||||
}
|
||||
|
||||
FOR_EACH_VK_FEATURE_1_1(FEATURE);
|
||||
@@ -1105,7 +1110,10 @@ bool Device::GetSuitability(bool requires_swapchain) {
|
||||
} else {
|
||||
FOR_EACH_VK_FEATURE_1_3(EXT_FEATURE);
|
||||
}
|
||||
|
||||
if (extensions.device_fault) {
|
||||
features.device_fault.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT;
|
||||
SetNext(next, features.device_fault);
|
||||
}
|
||||
#undef EXT_FEATURE
|
||||
#undef FEATURE
|
||||
|
||||
@@ -1190,10 +1198,6 @@ bool Device::GetSuitability(bool requires_swapchain) {
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR;
|
||||
SetNext(next, properties.maintenance5);
|
||||
}
|
||||
if (extensions.device_fault) {
|
||||
properties.device_fault.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT;
|
||||
SetNext(next, properties.device_fault);
|
||||
}
|
||||
|
||||
// Perform the property fetch.
|
||||
physical.GetProperties2(properties2);
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
#include "common/logging.h"
|
||||
#include "common/settings.h"
|
||||
#include "video_core/vulkan_common/vulkan_wrapper.h"
|
||||
#include "vulkan/vulkan_core.h"
|
||||
|
||||
VK_DEFINE_HANDLE(VmaAllocator)
|
||||
|
||||
@@ -91,7 +92,6 @@ VK_DEFINE_HANDLE(VmaAllocator)
|
||||
EXTENSION(EXT, SHADER_VIEWPORT_INDEX_LAYER, shader_viewport_index_layer) \
|
||||
EXTENSION(EXT, TOOLING_INFO, tooling_info) \
|
||||
EXTENSION(EXT, VERTEX_ATTRIBUTE_DIVISOR, vertex_attribute_divisor) \
|
||||
EXTENSION(EXT, DEVICE_FAULT, device_fault) \
|
||||
EXTENSION(KHR, DRAW_INDIRECT_COUNT, draw_indirect_count) \
|
||||
EXTENSION(KHR, DRIVER_PROPERTIES, driver_properties) \
|
||||
EXTENSION(KHR, PUSH_DESCRIPTOR, push_descriptor) \
|
||||
@@ -1110,33 +1110,28 @@ private:
|
||||
struct Extensions {
|
||||
#define EXTENSION(prefix, macro_name, var_name) bool var_name{};
|
||||
#define FEATURE(prefix, struct_name, macro_name, var_name) bool var_name{};
|
||||
|
||||
FOR_EACH_VK_FEATURE_1_1(FEATURE);
|
||||
FOR_EACH_VK_FEATURE_1_2(FEATURE);
|
||||
FOR_EACH_VK_FEATURE_1_3(FEATURE);
|
||||
FOR_EACH_VK_FEATURE_1_4(FEATURE);
|
||||
FOR_EACH_VK_FEATURE_EXT(FEATURE);
|
||||
FOR_EACH_VK_EXTENSION(EXTENSION);
|
||||
|
||||
#undef EXTENSION
|
||||
#undef FEATURE
|
||||
bool device_fault;
|
||||
};
|
||||
|
||||
struct Features {
|
||||
#define FEATURE_CORE(prefix, struct_name, macro_name, var_name) \
|
||||
VkPhysicalDevice##struct_name##Features var_name{};
|
||||
#define FEATURE_EXT(prefix, struct_name, macro_name, var_name) \
|
||||
VkPhysicalDevice##struct_name##Features##prefix var_name{};
|
||||
|
||||
#define FEATURE_CORE(prefix, struct_name, macro_name, var_name) VkPhysicalDevice##struct_name##Features var_name{};
|
||||
#define FEATURE_EXT(prefix, struct_name, macro_name, var_name) VkPhysicalDevice##struct_name##Features##prefix var_name{};
|
||||
FOR_EACH_VK_FEATURE_1_1(FEATURE_CORE);
|
||||
FOR_EACH_VK_FEATURE_1_2(FEATURE_CORE);
|
||||
FOR_EACH_VK_FEATURE_1_3(FEATURE_CORE);
|
||||
FOR_EACH_VK_FEATURE_1_4(FEATURE_CORE);
|
||||
FOR_EACH_VK_FEATURE_EXT(FEATURE_EXT);
|
||||
|
||||
#undef FEATURE_CORE
|
||||
#undef FEATURE_EXT
|
||||
|
||||
VkPhysicalDeviceFaultFeaturesEXT device_fault{};
|
||||
VkPhysicalDeviceFeatures features{};
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user