[vk] Test to see if local building is busted
All checks were successful
eden-license / license-header (pull_request) Successful in 24s
All checks were successful
eden-license / license-header (pull_request) Successful in 24s
This commit is contained in:
parent
71a87b2c55
commit
261d87934f
1 changed files with 29 additions and 7 deletions
|
@ -445,7 +445,7 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
|
||||||
|
|
||||||
// GetSuitability has already configured the linked list of features for us.
|
// GetSuitability has already configured the linked list of features for us.
|
||||||
// Reuse it here.
|
// Reuse it here.
|
||||||
const void* first_next = &features2;
|
const VkBaseInStructure* first_next = reinterpret_cast<const VkBaseInStructure*>(&features2);
|
||||||
|
|
||||||
VkDeviceDiagnosticsConfigCreateInfoNV diagnostics_nv{};
|
VkDeviceDiagnosticsConfigCreateInfoNV diagnostics_nv{};
|
||||||
const bool use_diagnostics_nv = Settings::values.enable_nsight_aftermath && extensions.device_diagnostics_config;
|
const bool use_diagnostics_nv = Settings::values.enable_nsight_aftermath && extensions.device_diagnostics_config;
|
||||||
|
@ -454,24 +454,24 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
|
||||||
|
|
||||||
diagnostics_nv = {
|
diagnostics_nv = {
|
||||||
.sType = VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,
|
.sType = VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,
|
||||||
.pNext = &features2,
|
.pNext = static_cast<const void*>(first_next),
|
||||||
.flags = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV |
|
.flags = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV |
|
||||||
VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV |
|
VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV |
|
||||||
VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV,
|
VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV,
|
||||||
};
|
};
|
||||||
first_next = &diagnostics_nv;
|
first_next = reinterpret_cast<const VkBaseInStructure*>(&diagnostics_nv);
|
||||||
}
|
}
|
||||||
|
|
||||||
VkPhysicalDeviceDescriptorIndexingFeaturesEXT descriptor_indexing{
|
VkPhysicalDeviceDescriptorIndexingFeaturesEXT descriptor_indexing{
|
||||||
.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
|
.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
|
||||||
.pNext = use_diagnostics_nv ? static_cast<void*>(&diagnostics_nv) : static_cast<void*>(&features2),
|
.pNext = const_cast<void*>(static_cast<const void*>(first_next)),
|
||||||
.shaderSampledImageArrayNonUniformIndexing = VK_TRUE,
|
.shaderSampledImageArrayNonUniformIndexing = VK_TRUE,
|
||||||
.descriptorBindingPartiallyBound = VK_TRUE,
|
.descriptorBindingPartiallyBound = VK_TRUE,
|
||||||
.descriptorBindingVariableDescriptorCount = VK_TRUE,
|
.descriptorBindingVariableDescriptorCount = VK_TRUE,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (extensions.descriptor_indexing && Settings::values.descriptor_indexing.GetValue()) {
|
if (extensions.descriptor_indexing && Settings::values.descriptor_indexing.GetValue()) {
|
||||||
first_next = &descriptor_indexing;
|
first_next = reinterpret_cast<const VkBaseInStructure*>(&descriptor_indexing);
|
||||||
}
|
}
|
||||||
|
|
||||||
is_blit_depth24_stencil8_supported = TestDepthStencilBlits(VK_FORMAT_D24_UNORM_S8_UINT);
|
is_blit_depth24_stencil8_supported = TestDepthStencilBlits(VK_FORMAT_D24_UNORM_S8_UINT);
|
||||||
|
@ -501,6 +501,29 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
|
||||||
//VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME);
|
//VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (is_qualcomm) {
|
||||||
|
if (extensions.shader_float_controls) {
|
||||||
|
LOG_WARNING(Render_Vulkan,
|
||||||
|
"Disabling VK_KHR_shader_float_controls on Qualcomm proprietary drivers");
|
||||||
|
RemoveExtension(extensions.shader_float_controls,
|
||||||
|
VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME);
|
||||||
|
properties.float_controls = {};
|
||||||
|
properties.float_controls.sType =
|
||||||
|
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES;
|
||||||
|
}
|
||||||
|
if (extensions.shader_atomic_int64) {
|
||||||
|
LOG_WARNING(Render_Vulkan,
|
||||||
|
"Disabling VK_KHR_shader_atomic_int64 on Qualcomm proprietary drivers");
|
||||||
|
RemoveExtensionFeature(extensions.shader_atomic_int64, features.shader_atomic_int64,
|
||||||
|
VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME);
|
||||||
|
}
|
||||||
|
if (features.features.shaderInt64) {
|
||||||
|
LOG_WARNING(Render_Vulkan, "Disabling shaderInt64 on Qualcomm proprietary drivers");
|
||||||
|
features.features.shaderInt64 = VK_FALSE;
|
||||||
|
features2.features.shaderInt64 = VK_FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (is_qualcomm) {
|
if (is_qualcomm) {
|
||||||
LOG_WARNING(Render_Vulkan,
|
LOG_WARNING(Render_Vulkan,
|
||||||
"Qualcomm drivers have a slow VK_KHR_push_descriptor implementation");
|
"Qualcomm drivers have a slow VK_KHR_push_descriptor implementation");
|
||||||
|
@ -528,7 +551,6 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_nvidia) {
|
if (is_nvidia) {
|
||||||
const u32 nv_major_version = (properties.properties.driverVersion >> 22) & 0x3ff;
|
const u32 nv_major_version = (properties.properties.driverVersion >> 22) & 0x3ff;
|
||||||
const auto arch = GetNvidiaArch();
|
const auto arch = GetNvidiaArch();
|
||||||
|
@ -749,7 +771,7 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
|
||||||
LOG_INFO(Render_Vulkan, "Dynamic state is enabled (dyna_state = 1-3), disabling scaled format emulation");
|
LOG_INFO(Render_Vulkan, "Dynamic state is enabled (dyna_state = 1-3), disabling scaled format emulation");
|
||||||
}
|
}
|
||||||
|
|
||||||
logical = vk::Device::Create(physical, queue_cis, ExtensionListForVulkan(loaded_extensions), first_next, dld);
|
logical = vk::Device::Create(physical, queue_cis, ExtensionListForVulkan(loaded_extensions), static_cast<const void*>(first_next), dld);
|
||||||
|
|
||||||
graphics_queue = logical.GetQueue(graphics_family);
|
graphics_queue = logical.GetQueue(graphics_family);
|
||||||
present_queue = logical.GetQueue(present_family);
|
present_queue = logical.GetQueue(present_family);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue