mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-14 05:50:51 +00:00
Add support for VK_EXT_acquire_drm_display. Closes #2664
This commit is contained in:
@@ -24,6 +24,7 @@ Maintainers can update this file by updating vk.xml in this folder and running `
|
||||
* `VK_AMD_texture_gather_bias_lod`
|
||||
* `VK_ANDROID_external_memory_android_hardware_buffer`
|
||||
* `VK_EXT_4444_formats`
|
||||
* `VK_EXT_acquire_drm_display`
|
||||
* `VK_EXT_acquire_xlib_display`
|
||||
* `VK_EXT_astc_decode_mode`
|
||||
* `VK_EXT_attachment_feedback_loop_layout`
|
||||
@@ -238,7 +239,6 @@ Ray tracing extensions are now standard and will likely be supported at some poi
|
||||
|
||||
## EXT Extensions
|
||||
|
||||
* `VK_EXT_acquire_drm_display`
|
||||
* `VK_EXT_blend_operation_advanced`
|
||||
* `VK_EXT_border_color_swizzle`
|
||||
* `VK_EXT_depth_clamp_zero_one`
|
||||
|
||||
@@ -888,6 +888,9 @@ static const VkExtensionProperties supportedExtensions[] = {
|
||||
{
|
||||
VK_EXT_4444_FORMATS_EXTENSION_NAME, VK_EXT_4444_FORMATS_SPEC_VERSION,
|
||||
},
|
||||
{
|
||||
VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME, VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION,
|
||||
},
|
||||
#ifdef VK_EXT_acquire_xlib_display
|
||||
{
|
||||
VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME, VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION,
|
||||
|
||||
@@ -2601,4 +2601,11 @@ public:
|
||||
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, vkSetDeviceMemoryPriorityEXT, VkDevice device,
|
||||
VkDeviceMemory memory, float priority);
|
||||
|
||||
// VK_EXT_acquire_drm_display
|
||||
VkResult vkAcquireDrmDisplayEXT(VkPhysicalDevice physicalDevice, int32_t drmFd,
|
||||
VkDisplayKHR display);
|
||||
|
||||
VkResult vkGetDrmDisplayEXT(VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId,
|
||||
VkDisplayKHR *display);
|
||||
};
|
||||
|
||||
@@ -464,6 +464,7 @@
|
||||
DeclExt(EXT_headless_surface); \
|
||||
DeclExt(EXT_metal_surface); \
|
||||
DeclExt(KHR_wayland_surface); \
|
||||
DeclExt(EXT_acquire_drm_display); \
|
||||
/* device extensions */ \
|
||||
DeclExt(EXT_debug_marker); \
|
||||
DeclExt(GGP_frame_token); \
|
||||
@@ -578,7 +579,8 @@
|
||||
CheckExt(EXT_metal_surface, VKXX); \
|
||||
CheckExt(KHR_wayland_surface, VKXX); \
|
||||
CheckExt(KHR_performance_query, VKXX); \
|
||||
CheckExt(KHR_fragment_shading_rate, VKXX);
|
||||
CheckExt(KHR_fragment_shading_rate, VKXX); \
|
||||
CheckExt(EXT_acquire_drm_display, VKXX);
|
||||
|
||||
#define CheckDeviceExts() \
|
||||
CheckExt(EXT_debug_marker, VKXX); \
|
||||
@@ -706,6 +708,8 @@
|
||||
HookInitExtension(KHR_performance_query, GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR); \
|
||||
HookInitPromotedExtension(EXT_tooling_info, GetPhysicalDeviceToolProperties, EXT); \
|
||||
HookInitExtension(KHR_fragment_shading_rate, GetPhysicalDeviceFragmentShadingRatesKHR); \
|
||||
HookInitExtension(EXT_acquire_drm_display, AcquireDrmDisplayEXT); \
|
||||
HookInitExtension(EXT_acquire_drm_display, GetDrmDisplayEXT); \
|
||||
HookInitExtension_PhysDev_Win32(); \
|
||||
HookInitExtension_PhysDev_Linux(); \
|
||||
HookInitExtension_PhysDev_GGP(); \
|
||||
@@ -1638,6 +1642,10 @@
|
||||
VkPhysicalDeviceFragmentShadingRateKHR *, pFragmentShadingRates); \
|
||||
HookDefine3(void, vkSetDeviceMemoryPriorityEXT, VkDevice, device, VkDeviceMemory, memory, float, \
|
||||
priority); \
|
||||
HookDefine3(VkResult, vkAcquireDrmDisplayEXT, VkPhysicalDevice, physicalDevice, int32_t, drmFd, \
|
||||
VkDisplayKHR, display); \
|
||||
HookDefine4(VkResult, vkGetDrmDisplayEXT, VkPhysicalDevice, physicalDevice, int32_t, drmFd, \
|
||||
uint32_t, connectorId, VkDisplayKHR *, display); \
|
||||
HookDefine_Win32(); \
|
||||
HookDefine_Linux(); \
|
||||
HookDefine_GGP(); \
|
||||
|
||||
@@ -162,7 +162,8 @@ static void StripUnwantedExtensions(rdcarray<rdcstr> &Extensions)
|
||||
|
||||
// remove direct display extensions
|
||||
if(ext == "VK_KHR_display" || ext == "VK_EXT_direct_mode_display" ||
|
||||
ext == "VK_EXT_acquire_xlib_display" || ext == "VK_EXT_display_surface_counter")
|
||||
ext == "VK_EXT_acquire_xlib_display" || ext == "VK_EXT_display_surface_counter" ||
|
||||
ext == "VK_EXT_acquire_drm_display")
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1286,6 +1286,19 @@ VkResult WrappedVulkan::vkReleaseDisplayEXT(VkPhysicalDevice physicalDevice, VkD
|
||||
return ObjDisp(physicalDevice)->ReleaseDisplayEXT(Unwrap(physicalDevice), display);
|
||||
}
|
||||
|
||||
VkResult WrappedVulkan::vkAcquireDrmDisplayEXT(VkPhysicalDevice physicalDevice, int32_t drmFd,
|
||||
VkDisplayKHR display)
|
||||
{
|
||||
return ObjDisp(physicalDevice)->AcquireDrmDisplayEXT(Unwrap(physicalDevice), drmFd, display);
|
||||
}
|
||||
|
||||
VkResult WrappedVulkan::vkGetDrmDisplayEXT(VkPhysicalDevice physicalDevice, int32_t drmFd,
|
||||
uint32_t connectorId, VkDisplayKHR *display)
|
||||
{
|
||||
// displays are not wrapped
|
||||
return ObjDisp(physicalDevice)->GetDrmDisplayEXT(Unwrap(physicalDevice), drmFd, connectorId, display);
|
||||
}
|
||||
|
||||
VkResult WrappedVulkan::vkGetDeviceGroupPresentCapabilitiesKHR(
|
||||
VkDevice device, VkDeviceGroupPresentCapabilitiesKHR *pDeviceGroupPresentCapabilities)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user