Add IsDebugToolAttached to GPUDevice for detecting gpu debugger tools attached and auto-enable GPU profiler in that case
This commit is contained in:
@@ -200,6 +200,16 @@ static bool ListContains(const Array<const char*>& list, const char* name)
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool ListContains(const Array<StringAnsi>& list, const char* name)
|
||||
{
|
||||
for (const StringAnsi& element : list)
|
||||
{
|
||||
if (element == name)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void GPUDeviceVulkan::GetInstanceLayersAndExtensions(Array<const char*>& outInstanceExtensions, Array<const char*>& outInstanceLayers, bool& outDebugUtils)
|
||||
{
|
||||
VkResult result;
|
||||
@@ -473,6 +483,10 @@ void GPUDeviceVulkan::GetDeviceExtensionsAndLayers(VkPhysicalDevice gpu, Array<c
|
||||
}
|
||||
|
||||
// Add device layers for debugging
|
||||
if (ListContains(foundUniqueExtensions, "VK_EXT_tooling_info"))
|
||||
{
|
||||
IsDebugToolAttached = true;
|
||||
}
|
||||
#if VULKAN_USE_DEBUG_LAYER
|
||||
bool hasKhronosStandardValidationLayer = false, hasLunargStandardValidationLayer = false;
|
||||
#if VULKAN_USE_KHRONOS_STANDARD_VALIDATION
|
||||
|
||||
@@ -187,8 +187,10 @@ struct RenderTargetLayoutVulkan
|
||||
uint32 WriteStencil : 1;
|
||||
uint32 BlendEnable : 1;
|
||||
};
|
||||
|
||||
uint32 Flags;
|
||||
};
|
||||
|
||||
MSAALevel MSAA;
|
||||
PixelFormat DepthFormat;
|
||||
PixelFormat RTVsFormats[GPU_MAX_RT_BINDED];
|
||||
@@ -405,12 +407,13 @@ public:
|
||||
#endif
|
||||
};
|
||||
|
||||
static void GetInstanceLayersAndExtensions(Array<const char*>& outInstanceExtensions, Array<const char*>& outInstanceLayers, bool& outDebugUtils);
|
||||
static void GetDeviceExtensionsAndLayers(VkPhysicalDevice gpu, Array<const char*>& outDeviceExtensions, Array<const char*>& outDeviceLayers);
|
||||
|
||||
void ParseOptionalDeviceExtensions(const Array<const char*>& deviceExtensions);
|
||||
static OptionalVulkanDeviceExtensions OptionalDeviceExtensions;
|
||||
|
||||
private:
|
||||
static void GetInstanceLayersAndExtensions(Array<const char*>& outInstanceExtensions, Array<const char*>& outInstanceLayers, bool& outDebugUtils);
|
||||
void GetDeviceExtensionsAndLayers(VkPhysicalDevice gpu, Array<const char*>& outDeviceExtensions, Array<const char*>& outDeviceLayers);
|
||||
static void ParseOptionalDeviceExtensions(const Array<const char*>& deviceExtensions);
|
||||
|
||||
public:
|
||||
/// <summary>
|
||||
/// The Vulkan instance.
|
||||
|
||||
Reference in New Issue
Block a user