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 EndRenderPass(){vkCmdEndRenderPass(cmd_buf);}
public: //dynamic state
};//class RenderCmdBuffer:public GPUCmdBuffer
class TextureCmdBuffer:public GPUCmdBuffer

View File

@ -23,6 +23,10 @@ class GPUPhysicalDevice
List<VkExtensionProperties> extension_properties;
List<VkQueueFamilyProperties> queue_family_properties;
private:
bool dynamic_state=false;
public:
GPUPhysicalDevice(VkInstance,VkPhysicalDevice);
@ -146,18 +150,20 @@ public:
const VkBool32 SupportYcbcrConversion ()const{return features11.samplerYcbcrConversion;}
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;
min_size =properties.limits.pointSizeRange[0];
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;
min_width =properties.limits.lineWidthRange[0];
max_width =properties.limits.lineWidthRange[1];
}
const bool SupportDynamicState() const {return dynamic_state;}
};//class GPUPhysicalDevice
VK_NAMESPACE_END

View File

@ -30,6 +30,7 @@ namespace
#ifdef _DEBUG
VK_EXT_DEBUG_MARKER_EXTENSION_NAME,
#endif//_DEBUG
VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME,
// VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME,
// VK_EXT_HDR_METADATA_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);
}
dynamic_state=CheckExtensionSupport(VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME);
}
const bool GPUPhysicalDevice::GetLayerVersion(const AnsiString &name,uint32_t &spec,uint32_t &impl)const