Instance,PhysicsDevice增加LAYER属性和扩展属性获取以及调试输出

This commit is contained in:
2019-04-13 15:34:34 +08:00
parent d8e96dc8c1
commit 31921d69c6
5 changed files with 68 additions and 0 deletions

View File

@@ -1,4 +1,5 @@
#include"RenderSurfaceAttribute.h"
#include<iostream>
VK_NAMESPACE_BEGIN
RenderSurfaceAttribute::RenderSurfaceAttribute(VkInstance inst,VkPhysicalDevice pd,VkSurfaceKHR s)
@@ -13,6 +14,28 @@ RenderSurfaceAttribute::RenderSurfaceAttribute(VkInstance inst,VkPhysicalDevice
vkGetPhysicalDeviceProperties(physical_device,&properties);
vkGetPhysicalDeviceMemoryProperties(physical_device,&memory_properties);
{
uint32_t property_count;
vkEnumerateDeviceLayerProperties(physical_device,&property_count,nullptr);
layer_properties.SetCount(property_count);
vkEnumerateDeviceLayerProperties(physical_device,&property_count,layer_properties.GetData());
debug_out(layer_properties);
}
{
uint32_t exten_count;
vkEnumerateDeviceExtensionProperties(physical_device,nullptr,&exten_count,nullptr);
extension_properties.SetCount(exten_count);
vkEnumerateDeviceExtensionProperties(physical_device,nullptr,&exten_count,extension_properties.GetData());
debug_out(extension_properties);
}
{
if(surface_caps.supportedTransforms&VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR)
{

View File

@@ -23,6 +23,8 @@ struct RenderSurfaceAttribute
VkPhysicalDeviceFeatures features;
VkPhysicalDeviceProperties properties;
VkPhysicalDeviceMemoryProperties memory_properties;
List<VkLayerProperties> layer_properties;
List<VkExtensionProperties> extension_properties;
List<VkSurfaceFormatKHR> surface_formts;
VkFormat format;

View File

@@ -3,10 +3,40 @@
#include<hgl/type/List.h>
#include<vulkan/vulkan.h>
#include<iostream>
#define VK_NAMESPACE_BEGIN namespace hgl{namespace graph{namespace vulkan{
#define VK_NAMESPACE_END }}}
using CharPointerList=hgl::List<const char *>;
inline void debug_out(const hgl::List<VkLayerProperties> &layer_properties)
{
const int property_count=layer_properties.GetCount();
if(property_count<=0)return;
const VkLayerProperties *lp=layer_properties.GetData();
for(int i=0;i<property_count;i++)
{
std::cout<<"Layer Propertyes ["<<i<<"] : "<<lp->layerName<<" desc: "<<lp->description<<std::endl;
++lp;
}
}
inline void debug_out(const hgl::List<VkExtensionProperties> &extension_properties)
{
const int extension_count=extension_properties.GetCount();
if(extension_count<=0)return;
VkExtensionProperties *ep=extension_properties.GetData();
for(int i=0;i<extension_count;i++)
{
std::cout<<"Extension Propertyes ["<<i<<"] : "<<ep->extensionName<<" ver: "<<ep->specVersion<<std::endl;
++ep;
}
}
#endif//HGL_GRAPH_VULKAN_INCLUDE

View File

@@ -159,6 +159,18 @@ Instance::Instance(VkInstance i,CharPointerList &el)
layer_properties.SetCount(layerCount);
vkEnumerateInstanceLayerProperties(&layerCount,layer_properties.GetData());
debug_out(layer_properties);
}
{
uint32_t prop_count;
vkEnumerateInstanceExtensionProperties(nullptr,&prop_count,nullptr);
extension_properties.SetCount(prop_count);
vkEnumerateInstanceExtensionProperties(nullptr,&prop_count,extension_properties.GetData());
debug_out(extension_properties);
}
debug_report_callback=nullptr;

View File

@@ -13,6 +13,7 @@ VK_NAMESPACE_BEGIN
VkInstance inst;
List<VkLayerProperties> layer_properties;
List<VkExtensionProperties> extension_properties;
VkDebugUtilsMessengerEXT debug_messenger;
VkDebugReportCallbackEXT debug_report_callback;