mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-06 01:50:38 +00:00
Add support for simple vulkan extensions
* VK_EXT_post_depth_coverage * VK_EXT_queue_family_foreign * VK_KHR_8bit_storage * VK_KHR_get_display_properties2 * VK_KHR_vulkan_memory_model
This commit is contained in:
@@ -620,6 +620,12 @@ static const VkExtensionProperties supportedExtensions[] = {
|
||||
{
|
||||
VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME, VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME, VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME, VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME, VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION,
|
||||
},
|
||||
@@ -650,6 +656,9 @@ static const VkExtensionProperties supportedExtensions[] = {
|
||||
{
|
||||
VK_KHR_16BIT_STORAGE_EXTENSION_NAME, VK_KHR_16BIT_STORAGE_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION,
|
||||
},
|
||||
#ifdef VK_KHR_android_surface
|
||||
{
|
||||
VK_KHR_ANDROID_SURFACE_EXTENSION_NAME, VK_KHR_ANDROID_SURFACE_SPEC_VERSION,
|
||||
@@ -726,6 +735,9 @@ static const VkExtensionProperties supportedExtensions[] = {
|
||||
VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME, VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION,
|
||||
},
|
||||
#endif
|
||||
{
|
||||
VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME, VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME, VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION,
|
||||
},
|
||||
@@ -781,6 +793,9 @@ static const VkExtensionProperties supportedExtensions[] = {
|
||||
{
|
||||
VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME, VK_KHR_VARIABLE_POINTERS_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME, VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION,
|
||||
},
|
||||
#ifdef VK_KHR_win32_keyed_mutex
|
||||
{
|
||||
VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME, VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION,
|
||||
|
||||
@@ -1838,4 +1838,21 @@ public:
|
||||
const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo,
|
||||
uint32_t *pSurfaceFormatCount,
|
||||
VkSurfaceFormat2KHR *pSurfaceFormats);
|
||||
|
||||
// VK_KHR_get_display_properties2
|
||||
VkResult vkGetPhysicalDeviceDisplayProperties2KHR(VkPhysicalDevice physicalDevice,
|
||||
uint32_t *pPropertyCount,
|
||||
VkDisplayProperties2KHR *pProperties);
|
||||
|
||||
VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR(VkPhysicalDevice physicalDevice,
|
||||
uint32_t *pPropertyCount,
|
||||
VkDisplayPlaneProperties2KHR *pProperties);
|
||||
|
||||
VkResult vkGetDisplayModeProperties2KHR(VkPhysicalDevice physicalDevice, VkDisplayKHR display,
|
||||
uint32_t *pPropertyCount,
|
||||
VkDisplayModeProperties2KHR *pProperties);
|
||||
|
||||
VkResult vkGetDisplayPlaneCapabilities2KHR(VkPhysicalDevice physicalDevice,
|
||||
const VkDisplayPlaneInfo2KHR *pDisplayPlaneInfo,
|
||||
VkDisplayPlaneCapabilities2KHR *pCapabilities);
|
||||
};
|
||||
|
||||
@@ -312,7 +312,8 @@
|
||||
CheckExt(EXT_debug_utils, VKXX); \
|
||||
CheckExt(KHR_device_group_creation, VK11); \
|
||||
CheckExt(protected_memory, VK11); \
|
||||
CheckExt(KHR_get_surface_capabilities2, VKXX);
|
||||
CheckExt(KHR_get_surface_capabilities2, VKXX); \
|
||||
CheckExt(KHR_get_display_properties2, VKXX);
|
||||
|
||||
#define CheckDeviceExts() \
|
||||
CheckExt(EXT_debug_marker, VKXX); \
|
||||
@@ -396,6 +397,10 @@
|
||||
HookInitExtension(KHR_device_group_creation &&KHR_surface, GetPhysicalDevicePresentRectanglesKHR); \
|
||||
HookInitExtension(KHR_get_surface_capabilities2, GetPhysicalDeviceSurfaceFormats2KHR); \
|
||||
HookInitExtension(KHR_get_surface_capabilities2, GetPhysicalDeviceSurfaceCapabilities2KHR); \
|
||||
HookInitExtension(KHR_get_display_properties2, GetPhysicalDeviceDisplayProperties2KHR); \
|
||||
HookInitExtension(KHR_get_display_properties2, GetPhysicalDeviceDisplayPlaneProperties2KHR); \
|
||||
HookInitExtension(KHR_get_display_properties2, GetDisplayModeProperties2KHR); \
|
||||
HookInitExtension(KHR_get_display_properties2, GetDisplayPlaneCapabilities2KHR); \
|
||||
HookInitInstance_PlatformSpecific()
|
||||
|
||||
#define HookInitVulkanDeviceExts() \
|
||||
@@ -951,6 +956,17 @@
|
||||
HookDefine4(VkResult, vkGetPhysicalDeviceSurfaceFormats2KHR, VkPhysicalDevice, physicalDevice, \
|
||||
const VkPhysicalDeviceSurfaceInfo2KHR *, pSurfaceInfo, uint32_t *, \
|
||||
pSurfaceFormatCount, VkSurfaceFormat2KHR *, pSurfaceFormats); \
|
||||
HookDefine3(VkResult, vkGetPhysicalDeviceDisplayProperties2KHR, VkPhysicalDevice, \
|
||||
physicalDevice, uint32_t *, pPropertyCount, VkDisplayProperties2KHR *, pProperties); \
|
||||
HookDefine3(VkResult, vkGetPhysicalDeviceDisplayPlaneProperties2KHR, VkPhysicalDevice, \
|
||||
physicalDevice, uint32_t *, pPropertyCount, VkDisplayPlaneProperties2KHR *, \
|
||||
pProperties); \
|
||||
HookDefine4(VkResult, vkGetDisplayModeProperties2KHR, VkPhysicalDevice, physicalDevice, \
|
||||
VkDisplayKHR, display, uint32_t *, pPropertyCount, VkDisplayModeProperties2KHR *, \
|
||||
pProperties); \
|
||||
HookDefine3(VkResult, vkGetDisplayPlaneCapabilities2KHR, VkPhysicalDevice, physicalDevice, \
|
||||
const VkDisplayPlaneInfo2KHR *, pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR *, \
|
||||
pCapabilities); \
|
||||
HookDefine_PlatformSpecific()
|
||||
|
||||
struct VkLayerInstanceDispatchTableExtended : VkLayerInstanceDispatchTable
|
||||
|
||||
@@ -73,7 +73,8 @@
|
||||
|
||||
void WrappedVulkan::RemapQueueFamilyIndices(uint32_t &srcQueueFamily, uint32_t &dstQueueFamily)
|
||||
{
|
||||
if(srcQueueFamily == VK_QUEUE_FAMILY_EXTERNAL || dstQueueFamily == VK_QUEUE_FAMILY_EXTERNAL)
|
||||
if(srcQueueFamily == VK_QUEUE_FAMILY_EXTERNAL || dstQueueFamily == VK_QUEUE_FAMILY_EXTERNAL ||
|
||||
srcQueueFamily == VK_QUEUE_FAMILY_FOREIGN_EXT || dstQueueFamily == VK_QUEUE_FAMILY_FOREIGN_EXT)
|
||||
{
|
||||
// we should ignore this family transition since we're not synchronising with an
|
||||
// external access.
|
||||
|
||||
@@ -1002,6 +1002,40 @@ VkResult WrappedVulkan::vkGetPhysicalDeviceSurfaceFormats2KHR(
|
||||
pSurfaceFormats);
|
||||
}
|
||||
|
||||
VkResult WrappedVulkan::vkGetPhysicalDeviceDisplayProperties2KHR(VkPhysicalDevice physicalDevice,
|
||||
uint32_t *pPropertyCount,
|
||||
VkDisplayProperties2KHR *pProperties)
|
||||
{
|
||||
return ObjDisp(physicalDevice)
|
||||
->GetPhysicalDeviceDisplayProperties2KHR(Unwrap(physicalDevice), pPropertyCount, pProperties);
|
||||
}
|
||||
|
||||
VkResult WrappedVulkan::vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
|
||||
VkPhysicalDevice physicalDevice, uint32_t *pPropertyCount,
|
||||
VkDisplayPlaneProperties2KHR *pProperties)
|
||||
{
|
||||
return ObjDisp(physicalDevice)
|
||||
->GetPhysicalDeviceDisplayPlaneProperties2KHR(Unwrap(physicalDevice), pPropertyCount,
|
||||
pProperties);
|
||||
}
|
||||
|
||||
VkResult WrappedVulkan::vkGetDisplayModeProperties2KHR(VkPhysicalDevice physicalDevice,
|
||||
VkDisplayKHR display, uint32_t *pPropertyCount,
|
||||
VkDisplayModeProperties2KHR *pProperties)
|
||||
{
|
||||
// displays are not wrapped
|
||||
return ObjDisp(physicalDevice)
|
||||
->GetDisplayModeProperties2KHR(Unwrap(physicalDevice), display, pPropertyCount, pProperties);
|
||||
}
|
||||
|
||||
VkResult WrappedVulkan::vkGetDisplayPlaneCapabilities2KHR(
|
||||
VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR *pDisplayPlaneInfo,
|
||||
VkDisplayPlaneCapabilities2KHR *pCapabilities)
|
||||
{
|
||||
return ObjDisp(physicalDevice)
|
||||
->GetDisplayPlaneCapabilities2KHR(Unwrap(physicalDevice), pDisplayPlaneInfo, pCapabilities);
|
||||
}
|
||||
|
||||
INSTANTIATE_FUNCTION_SERIALISED(VkResult, vkCreateSwapchainKHR, VkDevice device,
|
||||
const VkSwapchainCreateInfoKHR *pCreateInfo,
|
||||
const VkAllocationCallbacks *pAllocator, VkSwapchainKHR *pSwapchain);
|
||||
|
||||
Reference in New Issue
Block a user