Instance,PhysicsDevice增加LAYER属性和扩展属性获取以及调试输出
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
#include"RenderSurfaceAttribute.h"
|
#include"RenderSurfaceAttribute.h"
|
||||||
|
#include<iostream>
|
||||||
|
|
||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
RenderSurfaceAttribute::RenderSurfaceAttribute(VkInstance inst,VkPhysicalDevice pd,VkSurfaceKHR s)
|
RenderSurfaceAttribute::RenderSurfaceAttribute(VkInstance inst,VkPhysicalDevice pd,VkSurfaceKHR s)
|
||||||
@@ -13,6 +14,28 @@ RenderSurfaceAttribute::RenderSurfaceAttribute(VkInstance inst,VkPhysicalDevice
|
|||||||
vkGetPhysicalDeviceProperties(physical_device,&properties);
|
vkGetPhysicalDeviceProperties(physical_device,&properties);
|
||||||
vkGetPhysicalDeviceMemoryProperties(physical_device,&memory_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)
|
if(surface_caps.supportedTransforms&VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR)
|
||||||
{
|
{
|
||||||
|
@@ -23,6 +23,8 @@ struct RenderSurfaceAttribute
|
|||||||
VkPhysicalDeviceFeatures features;
|
VkPhysicalDeviceFeatures features;
|
||||||
VkPhysicalDeviceProperties properties;
|
VkPhysicalDeviceProperties properties;
|
||||||
VkPhysicalDeviceMemoryProperties memory_properties;
|
VkPhysicalDeviceMemoryProperties memory_properties;
|
||||||
|
List<VkLayerProperties> layer_properties;
|
||||||
|
List<VkExtensionProperties> extension_properties;
|
||||||
|
|
||||||
List<VkSurfaceFormatKHR> surface_formts;
|
List<VkSurfaceFormatKHR> surface_formts;
|
||||||
VkFormat format;
|
VkFormat format;
|
||||||
|
@@ -3,10 +3,40 @@
|
|||||||
|
|
||||||
#include<hgl/type/List.h>
|
#include<hgl/type/List.h>
|
||||||
#include<vulkan/vulkan.h>
|
#include<vulkan/vulkan.h>
|
||||||
|
#include<iostream>
|
||||||
|
|
||||||
#define VK_NAMESPACE_BEGIN namespace hgl{namespace graph{namespace vulkan{
|
#define VK_NAMESPACE_BEGIN namespace hgl{namespace graph{namespace vulkan{
|
||||||
#define VK_NAMESPACE_END }}}
|
#define VK_NAMESPACE_END }}}
|
||||||
|
|
||||||
using CharPointerList=hgl::List<const char *>;
|
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
|
#endif//HGL_GRAPH_VULKAN_INCLUDE
|
||||||
|
@@ -159,6 +159,18 @@ Instance::Instance(VkInstance i,CharPointerList &el)
|
|||||||
|
|
||||||
layer_properties.SetCount(layerCount);
|
layer_properties.SetCount(layerCount);
|
||||||
vkEnumerateInstanceLayerProperties(&layerCount,layer_properties.GetData());
|
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;
|
debug_report_callback=nullptr;
|
||||||
|
@@ -13,6 +13,7 @@ VK_NAMESPACE_BEGIN
|
|||||||
VkInstance inst;
|
VkInstance inst;
|
||||||
|
|
||||||
List<VkLayerProperties> layer_properties;
|
List<VkLayerProperties> layer_properties;
|
||||||
|
List<VkExtensionProperties> extension_properties;
|
||||||
|
|
||||||
VkDebugUtilsMessengerEXT debug_messenger;
|
VkDebugUtilsMessengerEXT debug_messenger;
|
||||||
VkDebugReportCallbackEXT debug_report_callback;
|
VkDebugReportCallbackEXT debug_report_callback;
|
||||||
|
Reference in New Issue
Block a user