Add support for VK_KHR_maintenance1

* We can silently support 3D slice rendering and copies to 2D, this is
  just a driver-side change.
* Ditto for supporting vkCmdFillBuffer on transfer queues.
* We don't have anything to do with format queries or error returns.
* We already support negative viewport height for
  VK_AMD_negative_viewport_height.
* So it's only the new command for trimming command pools that we need
  to support - and that is just passthrough/non-recorded.
This commit is contained in:
baldurk
2017-01-30 15:43:56 +00:00
parent 8f84564d46
commit e51a2d221f
4 changed files with 18 additions and 1 deletions
+3
View File
@@ -724,6 +724,9 @@ static const VkExtensionProperties supportedExtensions[] = {
VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME, VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION,
},
#endif
{
VK_KHR_MAINTENANCE1_EXTENSION_NAME, VK_KHR_MAINTENANCE1_SPEC_VERSION,
},
{
VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME,
VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION,
+4
View File
@@ -1403,4 +1403,8 @@ public:
VkImageUsageFlags usage, VkImageCreateFlags flags,
VkExternalMemoryHandleTypeFlagsNV externalHandleType,
VkExternalImageFormatPropertiesNV *pExternalImageFormatProperties);
// VK_KHR_maintenance1
void vkTrimCommandPoolKHR(VkDevice device, VkCommandPool commandPool,
VkCommandPoolTrimFlagsKHR flags);
};
+5 -1
View File
@@ -265,7 +265,8 @@
CheckExt(VK_KHR_display_swapchain); \
CheckExt(VK_NV_external_memory); \
CheckExt(VK_NV_external_memory_win32); \
CheckExt(VK_NV_win32_keyed_mutex);
CheckExt(VK_NV_win32_keyed_mutex); \
CheckExt(VK_KHR_maintenance1);
#define HookInitVulkanInstanceExts() \
HookInitExtension(VK_KHR_surface, DestroySurfaceKHR); \
@@ -299,6 +300,7 @@
HookInitExtension(VK_KHR_swapchain, AcquireNextImageKHR); \
HookInitExtension(VK_KHR_swapchain, QueuePresentKHR); \
HookInitExtension(VK_KHR_display_swapchain, CreateSharedSwapchainsKHR); \
HookInitExtension(VK_KHR_maintenance1, TrimCommandPoolKHR); \
HookInitDevice_PlatformSpecific()
#define DefineHooks() \
@@ -651,6 +653,8 @@
VkImageUsageFlags, usage, VkImageCreateFlags, flags, \
VkExternalMemoryHandleTypeFlagsNV, externalHandleType, \
VkExternalImageFormatPropertiesNV *, pExternalImageFormatProperties); \
HookDefine3(void, vkTrimCommandPoolKHR, VkDevice, device, VkCommandPool, commandPool, \
VkCommandPoolTrimFlagsKHR, flags); \
HookDefine_PlatformSpecific()
struct VkLayerInstanceDispatchTableExtended : VkLayerInstanceDispatchTable
@@ -377,6 +377,12 @@ VkResult WrappedVulkan::vkResetCommandPool(VkDevice device, VkCommandPool cmdPoo
return ObjDisp(device)->ResetCommandPool(Unwrap(device), Unwrap(cmdPool), flags);
}
void WrappedVulkan::vkTrimCommandPoolKHR(VkDevice device, VkCommandPool commandPool,
VkCommandPoolTrimFlagsKHR flags)
{
return ObjDisp(device)->TrimCommandPoolKHR(Unwrap(device), Unwrap(commandPool), flags);
}
// Command buffer functions
VkResult WrappedVulkan::vkAllocateCommandBuffers(VkDevice device,