mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-10-05 21:48:55 +00:00
[vulkan] Extending conversative rasterization detection and handling
This commit is contained in:
@@ -1027,6 +1027,11 @@ bool Device::GetSuitability(bool requires_swapchain) {
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR;
|
||||
SetNext(next, properties.push_descriptor);
|
||||
}
|
||||
if (extensions.conservative_rasterization) {
|
||||
properties.conservative_rasterization.sType =
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT;
|
||||
SetNext(next, properties.conservative_rasterization);
|
||||
}
|
||||
if (extensions.subgroup_size_control || features.subgroup_size_control.subgroupSizeControl) {
|
||||
properties.subgroup_size_control.sType =
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES;
|
||||
|
||||
@@ -441,7 +441,7 @@ public:
|
||||
return extensions.viewport_array2;
|
||||
}
|
||||
|
||||
/// Returns true if the device supporst VK_EXT_DESCRIPTOR_INDEXING
|
||||
/// Returns true if the device supporst VK_EXT_DESCRIPTOR_INDEXING.
|
||||
bool isExtDescriptorIndexingSupported() const {
|
||||
return extensions.descriptor_indexing;
|
||||
}
|
||||
@@ -621,12 +621,12 @@ public:
|
||||
return features.format_a4b4g4r4.formatA4B4G4R4;
|
||||
}
|
||||
|
||||
/// Returns true if the device supports VK_EXT_filter_cubic
|
||||
/// Returns true if the device supports VK_EXT_filter_cubic.
|
||||
bool IsExtFilterCubicSupported() const {
|
||||
return extensions.filter_cubic;
|
||||
}
|
||||
|
||||
/// Returns true if the device supports VK_QCOM_filter_cubic_weights
|
||||
/// Returns true if the device supports VK_QCOM_filter_cubic_weights.
|
||||
bool IsQcomFilterCubicWeightsSupported() const {
|
||||
return extensions.filter_cubic_weights;
|
||||
}
|
||||
@@ -653,7 +653,7 @@ public:
|
||||
}
|
||||
|
||||
|
||||
/// Returns true if the device supports VK_EXT_shader_demote_to_helper_invocation
|
||||
/// Returns true if the device supports VK_EXT_shader_demote_to_helper_invocation.
|
||||
bool IsExtShaderDemoteToHelperInvocationSupported() const {
|
||||
return extensions.shader_demote_to_helper_invocation;
|
||||
}
|
||||
@@ -662,6 +662,12 @@ public:
|
||||
bool IsExtConservativeRasterizationSupported() const {
|
||||
return extensions.conservative_rasterization;
|
||||
}
|
||||
|
||||
/// Returns true if the device supports conservative rasterization for points and lines.
|
||||
bool SupportsConservativePointAndLineRasterization() const {
|
||||
return extensions.conservative_rasterization &&
|
||||
properties.conservative_rasterization.conservativePointAndLineRasterization;
|
||||
}
|
||||
|
||||
/// Returns true if the device supports VK_EXT_provoking_vertex.
|
||||
bool IsExtProvokingVertexSupported() const {
|
||||
@@ -673,7 +679,8 @@ public:
|
||||
return extensions.shader_atomic_int64;
|
||||
}
|
||||
|
||||
bool IsExtConditionalRendering() const {
|
||||
/// Returns true if the device supports VK_EXT_conditional_rendering.
|
||||
bool IsExtConditionalRenderingSupported() const {
|
||||
return extensions.conditional_rendering;
|
||||
}
|
||||
|
||||
@@ -971,6 +978,7 @@ private:
|
||||
VkPhysicalDeviceSubgroupProperties subgroup_properties{};
|
||||
VkPhysicalDeviceFloatControlsProperties float_controls{};
|
||||
VkPhysicalDevicePushDescriptorPropertiesKHR push_descriptor{};
|
||||
VkPhysicalDeviceConservativeRasterizationPropertiesEXT conservative_rasterization{};
|
||||
VkPhysicalDeviceSubgroupSizeControlProperties subgroup_size_control{};
|
||||
VkPhysicalDeviceTransformFeedbackPropertiesEXT transform_feedback{};
|
||||
VkPhysicalDeviceMaintenance5PropertiesKHR maintenance5{};
|
||||
|
||||
Reference in New Issue
Block a user