added BlendOpAdvanced support, but no test.

This commit is contained in:
2024-10-29 01:48:59 +08:00
parent e99b669ef3
commit 6bc9352c80
5 changed files with 35 additions and 4 deletions

View File

@@ -39,6 +39,8 @@ struct GPUDeviceAttribute
VkSurfaceTransformFlagBitsKHR preTransform;
VkCompositeAlphaFlagBitsKHR compositeAlpha =VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR;
bool blendOpAdvance =false;
bool uint8_index_type=false;
bool uint32_index_type=false;

View File

@@ -98,6 +98,8 @@ struct VulkanHardwareRequirement
uint32_t descriptor_pool; ///<描述符池大小(默认1024)
SupportLevel blendOperationAdvanced; ///<要求支持高级混合
public:
VulkanHardwareRequirement()
@@ -110,6 +112,8 @@ public:
fullDrawIndexUint8=SupportLevel::Want;
fullDrawIndexUint32=SupportLevel::Want;
blendOperationAdvanced=SupportLevel::Want;
}
};

View File

@@ -19,6 +19,7 @@ class GPUPhysicalDevice
VkPhysicalDeviceVulkan11Properties properties11;
VkPhysicalDeviceVulkan12Properties properties12;
VkPhysicalDeviceVulkan13Properties properties13;
VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT blendOpAdvProperties;
VkPhysicalDeviceMemoryProperties memory_properties;
List<VkLayerProperties> layer_properties;
@@ -29,8 +30,10 @@ private:
bool support_u8_index=false;
bool dynamic_state=false;
public:
bool blendOpAdvanced=false;
public:
const VkPhysicalDeviceFeatures & GetFeatures10 ()const{return features;}
const VkPhysicalDeviceVulkan11Features &GetFeatures11 ()const{return features11;}
@@ -149,6 +152,13 @@ public:
const VkBool32 SupportU32Index ()const{return features.fullDrawIndexUint32;}
const VkBool32 SupportU8Index ()const{return support_u8_index;}
const VkBool32 SupportBlendOpAdvanced ()const{return blendOpAdvanced;}
const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT *GetBlendOpAdvancedProperties()const
{
return blendOpAdvanced?&blendOpAdvProperties:nullptr;
}
// support != open, so please don't direct use GetFeatures().
// open any features in CreateDevice()&SetDeviceFeatures() functions.
const bool SupportMDI ()const