Add: KHR_calibrated_timestamp
This commit is contained in:
parent
3cabd30719
commit
6e94ff0bcc
@ -314,6 +314,8 @@ In addition to core *Vulkan* functionality, **MoltenVK** also supports the foll
|
|||||||
- `VK_KHR_bind_memory2`
|
- `VK_KHR_bind_memory2`
|
||||||
- `VK_KHR_buffer_device_address`
|
- `VK_KHR_buffer_device_address`
|
||||||
- *Requires GPU Tier 2 argument buffers support.*
|
- *Requires GPU Tier 2 argument buffers support.*
|
||||||
|
- `VK_KHR_calibrated_timestamp`
|
||||||
|
- *Requires Metal 2.2.*
|
||||||
- `VK_KHR_copy_commands2`
|
- `VK_KHR_copy_commands2`
|
||||||
- `VK_KHR_create_renderpass2`
|
- `VK_KHR_create_renderpass2`
|
||||||
- `VK_KHR_dedicated_allocation`
|
- `VK_KHR_dedicated_allocation`
|
||||||
|
@ -705,6 +705,8 @@ void MVKInstance::initProcAddrs() {
|
|||||||
ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkSetPrivateData, EXT, EXT_PRIVATE_DATA);
|
ADD_DVC_1_3_PROMOTED_ENTRY_POINT(vkSetPrivateData, EXT, EXT_PRIVATE_DATA);
|
||||||
|
|
||||||
// Device extension functions.
|
// Device extension functions.
|
||||||
|
ADD_DVC_EXT_ENTRY_POINT(vkGetCalibratedTimestampsKHR, KHR_CALIBRATED_TIMESTAMPS);
|
||||||
|
ADD_DVC_EXT_ENTRY_POINT(vkGetPhysicalDeviceCalibrateableTimeDomainsKHR, KHR_CALIBRATED_TIMESTAMPS);
|
||||||
ADD_DVC_EXT_ENTRY_POINT(vkCreateDeferredOperationKHR, KHR_DEFERRED_HOST_OPERATIONS);
|
ADD_DVC_EXT_ENTRY_POINT(vkCreateDeferredOperationKHR, KHR_DEFERRED_HOST_OPERATIONS);
|
||||||
ADD_DVC_EXT_ENTRY_POINT(vkDeferredOperationJoinKHR, KHR_DEFERRED_HOST_OPERATIONS);
|
ADD_DVC_EXT_ENTRY_POINT(vkDeferredOperationJoinKHR, KHR_DEFERRED_HOST_OPERATIONS);
|
||||||
ADD_DVC_EXT_ENTRY_POINT(vkDestroyDeferredOperationKHR, KHR_DEFERRED_HOST_OPERATIONS);
|
ADD_DVC_EXT_ENTRY_POINT(vkDestroyDeferredOperationKHR, KHR_DEFERRED_HOST_OPERATIONS);
|
||||||
|
@ -45,6 +45,7 @@ MVK_EXTENSION(KHR_16bit_storage, KHR_16BIT_STORAGE,
|
|||||||
MVK_EXTENSION(KHR_8bit_storage, KHR_8BIT_STORAGE, DEVICE, 10.11, 8.0, 1.0)
|
MVK_EXTENSION(KHR_8bit_storage, KHR_8BIT_STORAGE, DEVICE, 10.11, 8.0, 1.0)
|
||||||
MVK_EXTENSION(KHR_bind_memory2, KHR_BIND_MEMORY_2, DEVICE, 10.11, 8.0, 1.0)
|
MVK_EXTENSION(KHR_bind_memory2, KHR_BIND_MEMORY_2, DEVICE, 10.11, 8.0, 1.0)
|
||||||
MVK_EXTENSION(KHR_buffer_device_address, KHR_BUFFER_DEVICE_ADDRESS, DEVICE, 13.0, 16.0, 1.0)
|
MVK_EXTENSION(KHR_buffer_device_address, KHR_BUFFER_DEVICE_ADDRESS, DEVICE, 13.0, 16.0, 1.0)
|
||||||
|
MVK_EXTENSION(KHR_calibrated_timestamps, KHR_CALIBRATED_TIMESTAMPS, DEVICE, 10.15, 14.0, 1.0)
|
||||||
MVK_EXTENSION(KHR_copy_commands2, KHR_COPY_COMMANDS_2, DEVICE, 10.11, 8.0, 1.0)
|
MVK_EXTENSION(KHR_copy_commands2, KHR_COPY_COMMANDS_2, DEVICE, 10.11, 8.0, 1.0)
|
||||||
MVK_EXTENSION(KHR_create_renderpass2, KHR_CREATE_RENDERPASS_2, DEVICE, 10.11, 8.0, 1.0)
|
MVK_EXTENSION(KHR_create_renderpass2, KHR_CREATE_RENDERPASS_2, DEVICE, 10.11, 8.0, 1.0)
|
||||||
MVK_EXTENSION(KHR_dedicated_allocation, KHR_DEDICATED_ALLOCATION, DEVICE, 10.11, 8.0, 1.0)
|
MVK_EXTENSION(KHR_dedicated_allocation, KHR_DEDICATED_ALLOCATION, DEVICE, 10.11, 8.0, 1.0)
|
||||||
|
@ -2875,6 +2875,33 @@ MVK_PUBLIC_VULKAN_CORE_ALIAS(vkGetBufferOpaqueCaptureAddress, KHR);
|
|||||||
MVK_PUBLIC_VULKAN_CORE_ALIAS(vkGetDeviceMemoryOpaqueCaptureAddress, KHR);
|
MVK_PUBLIC_VULKAN_CORE_ALIAS(vkGetDeviceMemoryOpaqueCaptureAddress, KHR);
|
||||||
|
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
#pragma mark VK_KHR_calibrated_timestamps
|
||||||
|
|
||||||
|
MVK_PUBLIC_VULKAN_SYMBOL VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(
|
||||||
|
VkPhysicalDevice physicalDevice,
|
||||||
|
uint32_t* pTimeDomainCount,
|
||||||
|
VkTimeDomainEXT* pTimeDomains) {
|
||||||
|
MVKTraceVulkanCallStart();
|
||||||
|
MVKPhysicalDevice* mvkPD = MVKPhysicalDevice::getMVKPhysicalDevice(physicalDevice);
|
||||||
|
mvkPD->getCalibrateableTimeDomains(pTimeDomainCount, pTimeDomains);
|
||||||
|
MVKTraceVulkanCallEnd();
|
||||||
|
return VK_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
MVK_PUBLIC_VULKAN_SYMBOL VkResult vkGetCalibratedTimestampsKHR(
|
||||||
|
VkDevice device,
|
||||||
|
uint32_t timestampCount,
|
||||||
|
const VkCalibratedTimestampInfoEXT* pTimestampInfos,
|
||||||
|
uint64_t* pTimestamps,
|
||||||
|
uint64_t* pMaxDeviation) {
|
||||||
|
MVKTraceVulkanCallStart();
|
||||||
|
MVKDevice* mvkDev = MVKDevice::getMVKDevice(device);
|
||||||
|
mvkDev->getCalibratedTimestamps(timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation);
|
||||||
|
MVKTraceVulkanCallEnd();
|
||||||
|
return VK_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
#pragma mark -
|
#pragma mark -
|
||||||
#pragma mark VK_KHR_copy_commands2 extension
|
#pragma mark VK_KHR_copy_commands2 extension
|
||||||
|
|
||||||
@ -3371,29 +3398,9 @@ MVK_PUBLIC_VULKAN_CORE_ALIAS(vkGetBufferDeviceAddress, EXT);
|
|||||||
#pragma mark -
|
#pragma mark -
|
||||||
#pragma mark VK_EXT_calibrated_timestamps extension
|
#pragma mark VK_EXT_calibrated_timestamps extension
|
||||||
|
|
||||||
MVK_PUBLIC_VULKAN_SYMBOL VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
|
|
||||||
VkPhysicalDevice physicalDevice,
|
|
||||||
uint32_t* pTimeDomainCount,
|
|
||||||
VkTimeDomainEXT* pTimeDomains) {
|
|
||||||
MVKTraceVulkanCallStart();
|
|
||||||
MVKPhysicalDevice* mvkPD = MVKPhysicalDevice::getMVKPhysicalDevice(physicalDevice);
|
|
||||||
mvkPD->getCalibrateableTimeDomains(pTimeDomainCount, pTimeDomains);
|
|
||||||
MVKTraceVulkanCallEnd();
|
|
||||||
return VK_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
MVK_PUBLIC_VULKAN_SYMBOL VkResult vkGetCalibratedTimestampsEXT(
|
MVK_PUBLIC_VULKAN_ALIAS(vkGetCalibratedTimestampsEXT, vkGetCalibratedTimestampsKHR);
|
||||||
VkDevice device,
|
MVK_PUBLIC_VULKAN_ALIAS(vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, vkGetPhysicalDeviceCalibrateableTimeDomainsKHR);
|
||||||
uint32_t timestampCount,
|
|
||||||
const VkCalibratedTimestampInfoEXT* pTimestampInfos,
|
|
||||||
uint64_t* pTimestamps,
|
|
||||||
uint64_t* pMaxDeviation) {
|
|
||||||
MVKTraceVulkanCallStart();
|
|
||||||
MVKDevice* mvkDev = MVKDevice::getMVKDevice(device);
|
|
||||||
mvkDev->getCalibratedTimestamps(timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation);
|
|
||||||
MVKTraceVulkanCallEnd();
|
|
||||||
return VK_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark -
|
#pragma mark -
|
||||||
|
Loading…
x
Reference in New Issue
Block a user