added VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME support

This commit is contained in:
hyzboy 2022-01-24 19:48:54 +08:00
parent b2e52cb9fe
commit fc219fb8b4
4 changed files with 13 additions and 2 deletions

View File

@ -179,6 +179,8 @@ public: //draw
void NextSubpass(){vkCmdNextSubpass(cmd_buf,VK_SUBPASS_CONTENTS_INLINE);} void NextSubpass(){vkCmdNextSubpass(cmd_buf,VK_SUBPASS_CONTENTS_INLINE);}
void EndRenderPass(){vkCmdEndRenderPass(cmd_buf);} void EndRenderPass(){vkCmdEndRenderPass(cmd_buf);}
public: //dynamic state
};//class RenderCmdBuffer:public GPUCmdBuffer };//class RenderCmdBuffer:public GPUCmdBuffer
class TextureCmdBuffer:public GPUCmdBuffer class TextureCmdBuffer:public GPUCmdBuffer

View File

@ -23,6 +23,10 @@ class GPUPhysicalDevice
List<VkExtensionProperties> extension_properties; List<VkExtensionProperties> extension_properties;
List<VkQueueFamilyProperties> queue_family_properties; List<VkQueueFamilyProperties> queue_family_properties;
private:
bool dynamic_state=false;
public: public:
GPUPhysicalDevice(VkInstance,VkPhysicalDevice); GPUPhysicalDevice(VkInstance,VkPhysicalDevice);
@ -146,18 +150,20 @@ public:
const VkBool32 SupportYcbcrConversion ()const{return features11.samplerYcbcrConversion;} const VkBool32 SupportYcbcrConversion ()const{return features11.samplerYcbcrConversion;}
const VkBool32 SupportClampMirrorToEdge ()const{return features12.samplerMirrorClampToEdge;} const VkBool32 SupportClampMirrorToEdge ()const{return features12.samplerMirrorClampToEdge;}
const void GetPointSize(float &granularity,float &min_size,float &max_size) const void GetPointSize(float &granularity,float &min_size,float &max_size) const
{ {
granularity =properties.limits.pointSizeGranularity; granularity =properties.limits.pointSizeGranularity;
min_size =properties.limits.pointSizeRange[0]; min_size =properties.limits.pointSizeRange[0];
max_size =properties.limits.pointSizeRange[1]; max_size =properties.limits.pointSizeRange[1];
} }
const void GetLineWidth(float &granularity,float &min_width,float &max_width) const void GetLineWidth(float &granularity,float &min_width,float &max_width) const
{ {
granularity =properties.limits.lineWidthGranularity; granularity =properties.limits.lineWidthGranularity;
min_width =properties.limits.lineWidthRange[0]; min_width =properties.limits.lineWidthRange[0];
max_width =properties.limits.lineWidthRange[1]; max_width =properties.limits.lineWidthRange[1];
} }
const bool SupportDynamicState() const {return dynamic_state;}
};//class GPUPhysicalDevice };//class GPUPhysicalDevice
VK_NAMESPACE_END VK_NAMESPACE_END

View File

@ -30,6 +30,7 @@ namespace
#ifdef _DEBUG #ifdef _DEBUG
VK_EXT_DEBUG_MARKER_EXTENSION_NAME, VK_EXT_DEBUG_MARKER_EXTENSION_NAME,
#endif//_DEBUG #endif//_DEBUG
VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME,
// VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, // VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME,
// VK_EXT_HDR_METADATA_EXTENSION_NAME, // VK_EXT_HDR_METADATA_EXTENSION_NAME,
// VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME, // VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME,

View File

@ -153,6 +153,8 @@ GPUPhysicalDevice::GPUPhysicalDevice(VkInstance inst,VkPhysicalDevice pd)
debug_queue_family_properties_out(debug_front.c_str(),queue_family_properties); debug_queue_family_properties_out(debug_front.c_str(),queue_family_properties);
} }
dynamic_state=CheckExtensionSupport(VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME);
} }
const bool GPUPhysicalDevice::GetLayerVersion(const AnsiString &name,uint32_t &spec,uint32_t &impl)const const bool GPUPhysicalDevice::GetLayerVersion(const AnsiString &name,uint32_t &spec,uint32_t &impl)const