From 31921d69c67ac4d589a83ad3d2e2bb7cb3ea5bfe Mon Sep 17 00:00:00 2001 From: HuYingzhuo Date: Sat, 13 Apr 2019 15:34:34 +0800 Subject: [PATCH] =?UTF-8?q?Instance,PhysicsDevice=E5=A2=9E=E5=8A=A0LAYER?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E5=92=8C=E6=89=A9=E5=B1=95=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E4=BB=A5=E5=8F=8A=E8=B0=83=E8=AF=95=E8=BE=93?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/Vulkan/RenderSurfaceAttribute.cpp | 23 +++++++++++++++++ example/Vulkan/RenderSurfaceAttribute.h | 2 ++ example/Vulkan/VK.h | 30 +++++++++++++++++++++++ example/Vulkan/VKInstance.cpp | 12 +++++++++ example/Vulkan/VKInstance.h | 1 + 5 files changed, 68 insertions(+) diff --git a/example/Vulkan/RenderSurfaceAttribute.cpp b/example/Vulkan/RenderSurfaceAttribute.cpp index 446e85dd..933a5051 100644 --- a/example/Vulkan/RenderSurfaceAttribute.cpp +++ b/example/Vulkan/RenderSurfaceAttribute.cpp @@ -1,4 +1,5 @@ #include"RenderSurfaceAttribute.h" +#include 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) { diff --git a/example/Vulkan/RenderSurfaceAttribute.h b/example/Vulkan/RenderSurfaceAttribute.h index d8736165..2cf38a43 100644 --- a/example/Vulkan/RenderSurfaceAttribute.h +++ b/example/Vulkan/RenderSurfaceAttribute.h @@ -23,6 +23,8 @@ struct RenderSurfaceAttribute VkPhysicalDeviceFeatures features; VkPhysicalDeviceProperties properties; VkPhysicalDeviceMemoryProperties memory_properties; + List layer_properties; + List extension_properties; List surface_formts; VkFormat format; diff --git a/example/Vulkan/VK.h b/example/Vulkan/VK.h index f977f02f..be3f3836 100644 --- a/example/Vulkan/VK.h +++ b/example/Vulkan/VK.h @@ -3,10 +3,40 @@ #include #include +#include #define VK_NAMESPACE_BEGIN namespace hgl{namespace graph{namespace vulkan{ #define VK_NAMESPACE_END }}} using CharPointerList=hgl::List; +inline void debug_out(const hgl::List &layer_properties) +{ + const int property_count=layer_properties.GetCount(); + + if(property_count<=0)return; + + const VkLayerProperties *lp=layer_properties.GetData(); + + for(int i=0;ilayerName<<" desc: "<description< &extension_properties) +{ + const int extension_count=extension_properties.GetCount(); + + if(extension_count<=0)return; + + VkExtensionProperties *ep=extension_properties.GetData(); + for(int i=0;iextensionName<<" ver: "<specVersion< layer_properties; + List extension_properties; VkDebugUtilsMessengerEXT debug_messenger; VkDebugReportCallbackEXT debug_report_callback;