Instance,PhysicsDevice增加LAYER属性和扩展属性获取以及调试输出
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
@@ -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;
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
|
@@ -13,6 +13,7 @@ VK_NAMESPACE_BEGIN
|
||||
VkInstance inst;
|
||||
|
||||
List<VkLayerProperties> layer_properties;
|
||||
List<VkExtensionProperties> extension_properties;
|
||||
|
||||
VkDebugUtilsMessengerEXT debug_messenger;
|
||||
VkDebugReportCallbackEXT debug_report_callback;
|
||||
|
Reference in New Issue
Block a user