增加新的CheckInstanceLayer函数
This commit is contained in:
parent
c6b6773101
commit
dc50f1e0d3
@ -10,6 +10,8 @@
|
|||||||
|
|
||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
|
|
||||||
|
using CharPointerList=hgl::List<const char *>;
|
||||||
|
|
||||||
class Instance;
|
class Instance;
|
||||||
class PhysicalDevice;
|
class PhysicalDevice;
|
||||||
class Device;
|
class Device;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
Device *CreateRenderDevice(VkInstance,const PhysicalDevice *,Window *);
|
Device *CreateRenderDevice(VkInstance,const PhysicalDevice *,Window *);
|
||||||
|
|
||||||
using CharPointerList=hgl::List<const char *>;
|
void CheckInstanceLayer(CharPointerList &layer_list,CreateInstanceLayerInfo *layer_info);
|
||||||
|
|
||||||
Instance *CreateInstance(const UTF8String &app_name,VKDebugOut *out,CreateInstanceLayerInfo *layer_info)
|
Instance *CreateInstance(const UTF8String &app_name,VKDebugOut *out,CreateInstanceLayerInfo *layer_info)
|
||||||
{
|
{
|
||||||
@ -33,37 +33,7 @@ Instance *CreateInstance(const UTF8String &app_name,VKDebugOut *out,CreateInstan
|
|||||||
#endif//_DEBUG
|
#endif//_DEBUG
|
||||||
|
|
||||||
if(layer_info)
|
if(layer_info)
|
||||||
{
|
CheckInstanceLayer(layer_list,layer_info);
|
||||||
#define VK_LAYER_LUNARG_ADD(name) if(layer_info->lunarg.name)layer_list.Add("VK_LAYER_LUNARG_" #name);
|
|
||||||
|
|
||||||
VK_LAYER_LUNARG_ADD(api_dump)
|
|
||||||
VK_LAYER_LUNARG_ADD(device_simulation)
|
|
||||||
VK_LAYER_LUNARG_ADD(monitor)
|
|
||||||
VK_LAYER_LUNARG_ADD(screenshot)
|
|
||||||
VK_LAYER_LUNARG_ADD(standard_validation)
|
|
||||||
VK_LAYER_LUNARG_ADD(vktrace)
|
|
||||||
|
|
||||||
#define VK_LAYER_KHRONOS_ADD(name) if(layer_info->khronos.name)layer_list.Add("VK_LAYER_KHRONOS_" #name);
|
|
||||||
|
|
||||||
VK_LAYER_KHRONOS_ADD(validation)
|
|
||||||
|
|
||||||
#define VK_LAYER_NV_ADD(name) if(layer_info->nv.name)layer_list.Add("VK_LAYER_NV_" #name);
|
|
||||||
|
|
||||||
VK_LAYER_NV_ADD(optimus)
|
|
||||||
|
|
||||||
#define VK_LAYER_VALVE_ADD(name) if(layer_info->valve.name)layer_list.Add("VK_LAYER_VALVE_" #name);
|
|
||||||
|
|
||||||
VK_LAYER_VALVE_ADD(steam_overlay)
|
|
||||||
VK_LAYER_VALVE_ADD(steam_fossilize)
|
|
||||||
|
|
||||||
#define VK_LAYER_RENDERDOC_ADD(name) if(layer_info->RenderDoc.name)layer_list.Add("VK_LAYER_RENDERDOC_" #name);
|
|
||||||
|
|
||||||
VK_LAYER_RENDERDOC_ADD(Capture)
|
|
||||||
|
|
||||||
#define VK_LAYER_BANDICAM_ADD(name) if(layer_info->bandicam.name)layer_list.Add("VK_LAYER_bandicam_" #name);
|
|
||||||
|
|
||||||
VK_LAYER_BANDICAM_ADD(helper)
|
|
||||||
}
|
|
||||||
|
|
||||||
inst_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
|
inst_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
|
||||||
inst_info.pNext = nullptr;
|
inst_info.pNext = nullptr;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#include<hgl/graph/vulkan/VK.h>
|
#include<hgl/graph/vulkan/VK.h>
|
||||||
|
#include<hgl/graph/vulkan/VKInstance.h>
|
||||||
|
|
||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
|
|
||||||
@ -55,4 +56,43 @@ const bool CheckLayerSupport(const char *layer_name)
|
|||||||
|
|
||||||
return(false);
|
return(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CheckInstanceLayer(CharPointerList &layer_list,CreateInstanceLayerInfo *layer_info)
|
||||||
|
{
|
||||||
|
#define VK_LAYER_CHECK(sname,lname,name) if(layer_info->sname.name) \
|
||||||
|
{ \
|
||||||
|
if(CheckLayerSupport("VK_LAYER_" lname "_" #name)) \
|
||||||
|
layer_list.Add("VK_LAYER_" lname "_" #name); \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define VK_LAYER_LUNARG_ADD(name) VK_LAYER_CHECK(lunarg,"LUNARG",name)
|
||||||
|
|
||||||
|
VK_LAYER_LUNARG_ADD(api_dump)
|
||||||
|
VK_LAYER_LUNARG_ADD(device_simulation)
|
||||||
|
VK_LAYER_LUNARG_ADD(monitor)
|
||||||
|
VK_LAYER_LUNARG_ADD(screenshot)
|
||||||
|
VK_LAYER_LUNARG_ADD(standard_validation)
|
||||||
|
VK_LAYER_LUNARG_ADD(vktrace)
|
||||||
|
|
||||||
|
#define VK_LAYER_KHRONOS_ADD(name) VK_LAYER_CHECK(khronos,"KHRONOS",name)
|
||||||
|
|
||||||
|
VK_LAYER_KHRONOS_ADD(validation)
|
||||||
|
|
||||||
|
#define VK_LAYER_NV_ADD(name) VK_LAYER_CHECK(nv,"NV",name)
|
||||||
|
|
||||||
|
VK_LAYER_NV_ADD(optimus)
|
||||||
|
|
||||||
|
#define VK_LAYER_VALVE_ADD(name) VK_LAYER_CHECK(valve,"VALVE",name)
|
||||||
|
|
||||||
|
VK_LAYER_VALVE_ADD(steam_overlay)
|
||||||
|
VK_LAYER_VALVE_ADD(steam_fossilize)
|
||||||
|
|
||||||
|
#define VK_LAYER_RENDERDOC_ADD(name) VK_LAYER_CHECK(RenderDoc,"RENDERDOC",name)
|
||||||
|
|
||||||
|
VK_LAYER_RENDERDOC_ADD(Capture)
|
||||||
|
|
||||||
|
#define VK_LAYER_BANDICAM_ADD(name) VK_LAYER_CHECK(bandicam,"bandicam",name)
|
||||||
|
|
||||||
|
VK_LAYER_BANDICAM_ADD(helper)
|
||||||
|
}
|
||||||
VK_NAMESPACE_END
|
VK_NAMESPACE_END
|
||||||
|
Loading…
x
Reference in New Issue
Block a user