[vulkan] Query custom border color properties based on device report
This commit is contained in:
parent
b4ea751a2c
commit
090f0318ce
|
|
@ -1103,6 +1103,20 @@ bool Device::GetSuitability(bool requires_swapchain) {
|
|||
// Unload extensions if feature support is insufficient.
|
||||
RemoveUnsuitableExtensions();
|
||||
|
||||
// Query VK_EXT_custom_border_color properties if the extension is enabled.
|
||||
if (extensions.custom_border_color) {
|
||||
const auto fp = reinterpret_cast<PFN_vkGetPhysicalDeviceCustomBorderColorPropertiesEXT>(
|
||||
dld.vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceCustomBorderColorPropertiesEXT"));
|
||||
if (fp != nullptr) {
|
||||
custom_border_color_properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT;
|
||||
custom_border_color_properties.pNext = nullptr;
|
||||
fp(physical, &custom_border_color_properties);
|
||||
has_custom_border_color_properties = true;
|
||||
} else {
|
||||
has_custom_border_color_properties = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Check limits.
|
||||
struct Limit {
|
||||
u32 minimum;
|
||||
|
|
|
|||
|
|
@ -595,6 +595,16 @@ public:
|
|||
return features.custom_border_color.customBorderColorWithoutFormat;
|
||||
}
|
||||
|
||||
/// Returns true if physical device custom border color properties were queried.
|
||||
bool HasCustomBorderColorProperties() const {
|
||||
return has_custom_border_color_properties;
|
||||
}
|
||||
|
||||
/// Returns the queried VkPhysicalDeviceCustomBorderColorPropertiesEXT.
|
||||
const VkPhysicalDeviceCustomBorderColorPropertiesEXT& GetCustomBorderColorProperties() const {
|
||||
return custom_border_color_properties;
|
||||
}
|
||||
|
||||
/// Returns true if the device supports VK_EXT_extended_dynamic_state.
|
||||
bool IsExtExtendedDynamicStateSupported() const {
|
||||
return extensions.extended_dynamic_state;
|
||||
|
|
@ -619,6 +629,10 @@ public:
|
|||
return extensions.filter_cubic;
|
||||
}
|
||||
|
||||
/// Custom border color properties retrieved from the physical device (if available).
|
||||
VkPhysicalDeviceCustomBorderColorPropertiesEXT custom_border_color_properties{};
|
||||
bool has_custom_border_color_properties = false;
|
||||
|
||||
/// Returns true if the device supports VK_QCOM_filter_cubic_weights.
|
||||
bool IsQcomFilterCubicWeightsSupported() const {
|
||||
return extensions.filter_cubic_weights;
|
||||
|
|
|
|||
Loading…
Reference in New Issue